Jump to content
We've recently updated our Privacy Statement, available here ×

Jasper report interpretation of cassandra timestamp format


sigma420

Recommended Posts

Hi,

I am trying to integrate cassandra with Jaspersoft. Jaspersoft STudio ver 5.6 .  My Cassandra schema is as follows.

 

CREATE TABLE entity_measures (
entity_id           text,
event_time timestamp,
measure_name text,
measure_value float,
PRIMARY KEY (entity_id, event_time, measure_name)
);  
 
My jrxml file has the following.
 
<queryString language="CQL">
<![CDATA[select entity_id, event_time from entity_measures;]]>
</queryString>
<field name="entity_id" class="java.lang.String"/>
<field name="event_time" class="java.sql.Timestamp"/>
<field name="measure_name" class="java.lang.String"/>
 
My problem is as follows.
 
Even though I am specifying java.sql.TimeStamp as the Java mapping class, my report execution dies with the following stack dump. It appears that the report engine always interprets the event_time field as String. Is there anyway out of this?  When I take out the event_time field, it works fine. 
 
2014-04-01 12:24:55,675 ERROR errorPage_jsp,http-apr-8080-exec-5:573 - stack trace of exception that redirected to errorPage.jsp
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1911)
at org.apache.cassandra.cql.jdbc.CassandraResultSet.createColumn(CassandraResultSet.java:1159)
at org.apache.cassandra.cql.jdbc.CassandraResultSet.populateMetaData(CassandraResultSet.java:220)
at org.apache.cassandra.cql.jdbc.CassandraResultSet.<init>(CassandraResultSet.java:190)
at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.doExecute(CassandraPreparedStatement.java:170)
at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.executeQuery(CassandraPreparedStatement.java:226)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:233)
at com.jaspersoft.connectors.cassandra.query.CassandraQueryExecuter.createDatasource(CassandraQueryExecuter.java:34)
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1114)
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:691)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1288)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:907)
at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:120)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:880)
at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:165)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:836)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1702)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runWithDataSource(EngineServiceImpl.java:1057)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:991)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:902)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

 

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Days

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...