Skip to content

Commit 647d262

Browse files
committed
Address PR review
1 parent 9ba8203 commit 647d262

3 files changed

Lines changed: 8 additions & 20 deletions

File tree

core/src/main/java/com/datastax/oss/driver/internal/core/cql/CqlPrepareAsyncProcessor.java

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.datastax.oss.driver.internal.core.session.RequestProcessor;
3535
import com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures;
3636
import com.datastax.oss.driver.internal.core.util.concurrent.RunOrSchedule;
37-
import com.datastax.oss.driver.shaded.guava.common.base.Functions;
3837
import com.datastax.oss.driver.shaded.guava.common.cache.Cache;
3938
import com.datastax.oss.driver.shaded.guava.common.cache.CacheBuilder;
4039
import com.datastax.oss.driver.shaded.guava.common.collect.Iterables;
@@ -64,14 +63,17 @@ public CqlPrepareAsyncProcessor() {
6463
}
6564

6665
public CqlPrepareAsyncProcessor(@NonNull Optional<? extends DefaultDriverContext> context) {
67-
this(context, Functions.identity());
66+
this(context, CacheBuilder::weakValues);
6867
}
6968

7069
protected CqlPrepareAsyncProcessor(
7170
Optional<? extends DefaultDriverContext> context,
7271
Function<CacheBuilder<Object, Object>, CacheBuilder<Object, Object>> decorator) {
7372

74-
CacheBuilder<Object, Object> baseCache = CacheBuilder.newBuilder().weakValues();
73+
// CASSJAVA-104
74+
// Note that the base cache does NOT use weak values like the one-arg constructor it previously
75+
// does!
76+
CacheBuilder<Object, Object> baseCache = CacheBuilder.newBuilder();
7577
this.cache = decorator.apply(baseCache).build();
7678
context.ifPresent(
7779
(ctx) -> {
@@ -83,19 +85,6 @@ protected CqlPrepareAsyncProcessor(
8385
});
8486
}
8587

86-
protected CqlPrepareAsyncProcessor(
87-
Optional<? extends DefaultDriverContext> context, CacheBuilder<Object, Object> cacheBuilder) {
88-
this.cache = cacheBuilder.build();
89-
context.ifPresent(
90-
(ctx) -> {
91-
LOG.info("Adding handler to invalidate cached prepared statements on type changes");
92-
EventExecutor adminExecutor = ctx.getNettyOptions().adminEventExecutorGroup().next();
93-
ctx.getEventBus()
94-
.register(
95-
TypeChangeEvent.class, RunOrSchedule.on(adminExecutor, this::onTypeChanged));
96-
});
97-
}
98-
9988
private static boolean typeMatches(UserDefinedType oldType, DataType typeToCheck) {
10089

10190
switch (typeToCheck.getProtocolCode()) {

integration-tests/src/test/java/com/datastax/oss/driver/core/cql/PreparedStatementCachingIT.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import com.datastax.oss.driver.internal.core.session.BuiltInRequestProcessors;
4141
import com.datastax.oss.driver.internal.core.session.RequestProcessor;
4242
import com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry;
43-
import com.datastax.oss.driver.shaded.guava.common.cache.CacheBuilder;
4443
import com.datastax.oss.driver.shaded.guava.common.cache.RemovalListener;
4544
import com.datastax.oss.driver.shaded.guava.common.util.concurrent.Uninterruptibles;
4645
import com.google.common.collect.ImmutableList;
@@ -136,7 +135,7 @@ private static RemovalListener<Object, Object> buildCacheRemoveCallback(
136135
public TestCqlPrepareAsyncProcessor(@NonNull Optional<DefaultDriverContext> context) {
137136
// Default CqlPrepareAsyncProcessor uses weak values here as well. We avoid doing so
138137
// to prevent cache entries from unexpectedly disappearing mid-test.
139-
super(context, CacheBuilder.newBuilder().removalListener(buildCacheRemoveCallback(context)));
138+
super(context, builder -> builder.removalListener(buildCacheRemoveCallback(context)));
140139
}
141140
}
142141

integration-tests/src/test/java/com/datastax/oss/driver/core/cql/PreparedStatementCancellationIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@
3939
import com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry;
4040
import com.datastax.oss.driver.shaded.guava.common.base.Predicates;
4141
import com.datastax.oss.driver.shaded.guava.common.cache.Cache;
42-
import com.datastax.oss.driver.shaded.guava.common.cache.CacheBuilder;
4342
import com.datastax.oss.driver.shaded.guava.common.collect.Iterables;
4443
import edu.umd.cs.findbugs.annotations.NonNull;
4544
import java.util.List;
4645
import java.util.Optional;
4746
import java.util.concurrent.CompletableFuture;
47+
import java.util.function.Function;
4848
import org.junit.After;
4949
import org.junit.AfterClass;
5050
import org.junit.Before;
@@ -69,7 +69,7 @@ private static class TestCqlPrepareAsyncProcessor extends CqlPrepareAsyncProcess
6969
public TestCqlPrepareAsyncProcessor(@NonNull Optional<DefaultDriverContext> context) {
7070
// Default CqlPrepareAsyncProcessor uses weak values here as well. We avoid doing so
7171
// to prevent cache entries from unexpectedly disappearing mid-test.
72-
super(context, CacheBuilder.newBuilder());
72+
super(context, Function.identity());
7373
}
7474
}
7575

0 commit comments

Comments
 (0)