diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java index a0201c500a..f82ff3eb83 100644 --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@ -33,7 +33,6 @@ import java.util.stream.StreamSupport; import com.google.common.annotations.VisibleForTesting; -import com.datastax.driver.core.CodecUtils; import org.apache.cassandra.cql3.functions.types.LocalDate; import org.apache.cassandra.cql3.statements.SelectStatement; import org.apache.cassandra.db.Clustering; @@ -442,7 +441,13 @@ public abstract class UntypedResultSet implements Iterable return TimestampType.instance.compose(data.get(column)); } - public LocalDate getDate(String column) { return LocalDate.fromDaysSinceEpoch(CodecUtils.fromUnsignedToSignedInt(data.get(column).getInt()));} + public LocalDate getDate(String column) + { + // date type is stored as an unsigned byte; convert it back by adding MIN_VALUE. + int unsigned = data.get(column).getInt(); + int signed = unsigned + Integer.MIN_VALUE; + return LocalDate.fromDaysSinceEpoch(signed); + } public long getLong(String column) { diff --git a/src/java/org/apache/cassandra/cql3/functions/UDFunction.java b/src/java/org/apache/cassandra/cql3/functions/UDFunction.java index 39f8f9b7fa..ded2a1589e 100644 --- a/src/java/org/apache/cassandra/cql3/functions/UDFunction.java +++ b/src/java/org/apache/cassandra/cql3/functions/UDFunction.java @@ -134,12 +134,6 @@ public abstract class UDFunction extends UserFunction implements ScalarFunction // Only need to disallow a pattern, if it would otherwise be allowed via allowedPatterns private static final String[] disallowedPatterns = { - "com/datastax/driver/core/Cluster.class", - "com/datastax/driver/core/Metrics.class", - "com/datastax/driver/core/NettyOptions.class", - "com/datastax/driver/core/Session.class", - "com/datastax/driver/core/Statement.class", - "com/datastax/driver/core/TimestampGenerator.class", // indirectly covers ServerSideTimestampGenerator + ThreadLocalMonotonicTimestampGenerator "java/lang/Compiler.class", "java/lang/InheritableThreadLocal.class", "java/lang/Package.class", diff --git a/src/java/org/apache/cassandra/security/ThreadAwareSecurityManager.java b/src/java/org/apache/cassandra/security/ThreadAwareSecurityManager.java index 8f86831cc3..65793a63a1 100644 --- a/src/java/org/apache/cassandra/security/ThreadAwareSecurityManager.java +++ b/src/java/org/apache/cassandra/security/ThreadAwareSecurityManager.java @@ -41,8 +41,6 @@ import org.apache.cassandra.utils.logging.LoggingSupportFactory; * Custom {@link SecurityManager} and {@link Policy} implementation that only performs access checks * if explicitly enabled. *

- * This implementation gives no measurable performance penalty - * (see see cstar test). * This is better than the penalty of 1 to 3 percent using a standard {@code SecurityManager} with an allow all policy. *

*/ @@ -216,6 +214,7 @@ public final class ThreadAwareSecurityManager extends SecurityManager // required by JavaDriver 2.2.0-rc3 and 3.0.0-a2 or newer // code in com.datastax.driver.core.CodecUtils uses Guava stuff, which in turns requires this permission + // TODO: Evaluate removing this once the driver is removed as a dependency (see CASSANDRA-20326). if (CHECK_MEMBER_ACCESS_PERMISSION.equals(perm)) return; diff --git a/src/java/com/datastax/driver/core/PreparedStatementHelper.java b/test/unit/com/datastax/driver/core/PreparedStatementHelper.java similarity index 91% rename from src/java/com/datastax/driver/core/PreparedStatementHelper.java rename to test/unit/com/datastax/driver/core/PreparedStatementHelper.java index 3df33fb0ec..26e0408e9f 100644 --- a/src/java/com/datastax/driver/core/PreparedStatementHelper.java +++ b/test/unit/com/datastax/driver/core/PreparedStatementHelper.java @@ -41,16 +41,6 @@ public class PreparedStatementHelper return statement.getPreparedId().boundValuesMetadata.id; } - public static void assertStable(PreparedStatement first, PreparedStatement subsequent) - { - if (!id(first).equals(id(subsequent))) - { - throw new AssertionError(String.format("Subsequent id (%s) is different from the first one (%s)", - id(first), - id(subsequent))); - } - } - public static void assertHashWithoutKeyspace(PreparedStatement statement, String queryString, String ks) { MD5Digest returned = id(statement);