Hi everyone,
our project is using org.springframework.data.cassandra.mapping.Table
annotations to create tables in Cassandra automatically when the Java process
starts. Unfortunately, when we enable JaCoCo to measure code coverage this
table creation mechanism is omitted somehow and the tables are not created in
Cassandra DB. We end-up with exception like this while making insert statements:
java.lang.IllegalArgumentException: Invalid value [Z@7e4afb38 of type unknown
to the query builder
at
com.datastax.driver.core.querybuilder.Utils.appendStringIfValid(Utils.java:133)
~[cassandra-driver-core-2.1.4.jar:na]
at
com.datastax.driver.core.querybuilder.Utils.appendValue(Utils.java:113)
~[cassandra-driver-core-2.1.4.jar:na]
at
com.datastax.driver.core.querybuilder.Utils.appendValue(Utils.java:92)
~[cassandra-driver-core-2.1.4.jar:na]
at
com.datastax.driver.core.querybuilder.Utils.joinAndAppendValues(Utils.java:58)
~[cassandra-driver-core-2.1.4.jar:na]
at
com.datastax.driver.core.querybuilder.Insert.buildQueryString(Insert.java:59)
~[cassandra-driver-core-2.1.4.jar:na]
at
com.datastax.driver.core.querybuilder.Batch.buildQueryString(Batch.java:69)
~[cassandra-driver-core-2.1.4.jar:na]
at
com.datastax.driver.core.querybuilder.BuiltStatement.toString(BuiltStatement.java:186)
~[cassandra-driver-core-2.1.4.jar:na]
at
org.springframework.cassandra.core.CqlTemplate$12.doInSession(CqlTemplate.java:500)
~[spring-cql-1.4.1.RELEASE.jar:na]
at
org.springframework.cassandra.core.CqlTemplate$12.doInSession(CqlTemplate.java:494)
~[spring-cql-1.4.1.RELEASE.jar:na]
at
org.springframework.cassandra.core.CqlTemplate.doExecute(CqlTemplate.java:471)
~[spring-cql-1.4.1.RELEASE.jar:na]
at
org.springframework.cassandra.core.CqlTemplate.doExecute(CqlTemplate.java:494)
~[spring-cql-1.4.1.RELEASE.jar:na]
at
org.springframework.cassandra.core.CqlTemplate.execute(CqlTemplate.java:1219)
~[spring-cql-1.4.1.RELEASE.jar:na]
Since this exception doesn't give much info we executed the CQL statement
causing it from command line
When executing the same statement from cqlsh in Cassandra:
cqlsh> BEGIN BATCH INSERT INTO
keyspace.dbschemaversion(updatedTime,schemaVersion,vrmVersion) VALUES
(1487936595530,2,'');INSERT INTO keyspace.dbschemalatestversion(latestVersion)
VALUES (2);APPLY BATCH;
We get error:
InvalidRequest: code=2200 [Invalid query] message="unconfigured table
dbschemaversion"
Obviously the table is not created. But if we disable JaCoCo agent, the tables
are created. Here is how a table looks using this annotation:
@Table(value = DbSchemaVersion.tableName)
public class DbSchemaVersion {
@org.springframework.data.annotation.Transient
public static final String tableName = "dbschemaversion";
@PrimaryKey
private Integer schemaVersion;
private String vrmVersion;
private Date updatedTime;
.... getters/setters
}
Any ideas anyone?
--
You received this message because you are subscribed to the Google Groups
"JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jacoco/6428b4b1-58b5-4d32-a8c7-1dffbf75ec7a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.