6c48329199862215abc22170769fd1a165e80a15 | Author: Ammar Khaku <ammar.khaku@gmail.com>
| 2024-03-14 16:55:59-07:00
CASSANDRA-19468 Don't swallow exception during metadata refresh
If an exception was thrown while getting new metadata as
part of schema refresh it died on the admin executor instead
of being propagated to the CompletableFuture argument.
Instead, catch those exceptions and hand them off to the
CompletableFuture.
patch by Ammar Khaku; reviewed by Chris Lohfink, Bret McGuire for CASSANDRA-19468
7ca013fbd5f1ec589df52ef0e6441986f07c11ff | Author: Ammar Khaku <ammar.khaku@gmail.com>
| 2023-04-22 16:13:15-07:00
JAVA-3057 Allow decoding a UDT that has more fields than expected
patch by Ammar Khaku; reviewed by Andy Tolbert and Bret McGuire
reference: https://github.com/apache/cassandra-java-driver/pull/1635
0962794b2ec724d9939cd47380e68b979b46f693 | Author: Ammar Khaku <ammar.khaku@gmail.com>
| 2022-11-20 19:14:07-08:00
Don't return empty routing key when partition key is unbound
DefaultBoundStatement#getRoutingKey has logic to infer the
routing key when no one has explicitly called setRoutingKey
or otherwise set the routing key on the statement.
It however doesn't check for cases where nothing has been
bound yet on the statement.
This causes more problems if the user decides to get a
BoundStatementBuilder from the PreparedStatement, set some
fields on it, and then copy it by constructing new
BoundStatementBuilder objects with the BoundStatement as a
parameter, since the empty ByteBuffer gets copied to all
bound statements, resulting in all requests being targeted
to the same Cassandra node in a token-aware load balancing
policy.
patch by Ammar Khaku; reviewed by Andy Tolbert, and Bret McGuire
reference: https://github.com/apache/cassandra-java-driver/pull/1620
0a61884b7fcb62a839d15af94686eb1d9d4b440e | Author: Ammar Khaku <akhaku@users.noreply.github.com>
| 2022-10-07 12:43:48-07:00
Standardize on DataStax vs Datastax since that appears to be more common (#1608)
Updates to documentation only
306bf3744a3d24ad01700e4e1d3c14b9a696927f | Author: Ammar Khaku <ammar.khaku@gmail.com>
| 2022-09-30 15:36:36-07:00
Annotate BatchStatement, Statement, SimpleStatement methods with CheckReturnValue
Since the driver's default implementation is for
BatchStatement and SimpleStatement methods to be immutable,
we should annotate those methods with @CheckReturnValue.
Statement#setNowInSeconds implementations are immutable so
annotate that too.
patch by Ammar Khaku; reviewed by Andy Tolbert and Bret McGuire
reference: https://github.com/apache/cassandra-java-driver/pull/1607
ffcf0d560a58e3ed0faa2e7ea3adca91046c9152 | Author: Ammar Khaku <akhaku@users.noreply.github.com>
| 2022-07-13 12:09:38-07:00
JAVA-3005: Refresh entire node list when new node added (#1604)
Empirically, Cassandra does not appear to send
TopologyChangeType.REMOVED_NODE when a node in the ring
crashes hard and is eventually replaced, even though the
bad node is removed from the system tables. This results in
the driver holding on to that node until a restart.
The 3.x driver refreshes the entire node list when a node is
added, so when a new node comes up to replace the crashed
node, the crashed node is removed from the driver's state.
With this change we port that behavior to the 4.x driver and
refresh the entire node list when a new node is added.
This also fixes JAVA-3002.