Subject Crystal Reports with JayBird
Author Andrew Andriychenko
Hello,
I am using JavaReporting Component (Crystal Reports 10) and seems that
it does not work with JayBird. Any data access gets an error
"com.crystaldecisions.report.web.viewer.CrystalReportViewer: String
index out of range: XX" (XX number depends on query). I have replaced
JayBird with Sun's JDBC-ODBC over Firebird ODBC v1.2 and all works fine
with any error. I have tested JayBird 1.0.1,1.5.1 and 1.5.2 today - any
difference, problem is in JayBird (maybe in tomcat's dbcp + JayBird
combo). Running on J2SDK 1.4.2_05, Tomcat 5.0.18, Firebird 1.5.1.
Stacktrace from logs:

11.10.2004 10:38:34 [http80-Processor22] ERROR
com.crystaldecisions.reports.reportengineinterface - Exception occured
while processing getPage request
java.lang.StringIndexOutOfBoundsException: String index out of range: 11
at java.lang.String.substring(String.java:1441)
at com.crystaldecisions.reports.queryengine.a.h.g.a(Unknown Source)
at com.crystaldecisions.reports.queryengine.a.h.g.a(Unknown Source)
at com.crystaldecisions.reports.queryengine.a.h.g.a(Unknown Source)
at com.crystaldecisions.reports.queryengine.a.h.g.a(Unknown Source)
at com.crystaldecisions.reports.queryengine.a.a.i.a(Unknown Source)
at com.crystaldecisions.reports.queryengine.a.e.a(Unknown Source)
at com.crystaldecisions.reports.queryengine.driver.l.if(Unknown Source)
at com.crystaldecisions.reports.queryengine.av.do(Unknown Source)
at com.crystaldecisions.reports.queryengine.ao.dZ(Unknown Source)
at com.crystaldecisions.reports.queryengine.ao.f(Unknown Source)
at com.crystaldecisions.reports.queryengine.ao.dK(Unknown Source)
at com.crystaldecisions.reports.queryengine.b0.dB(Unknown Source)
at com.crystaldecisions.reports.queryengine.bz.a6(Unknown Source)
at
com.crystaldecisions.reports.reportdefinition.datainterface.b.a(Unknown
Source)
at com.crystaldecisions.reports.dataengine.ap.case(Unknown Source)
at com.crystaldecisions.reports.dataengine.ap.jO(Unknown Source)
at com.crystaldecisions.reports.dataengine.ap.aC(Unknown Source)
at com.crystaldecisions.reports.dataengine.ap.aD(Unknown Source)
at com.crystaldecisions.reports.dataengine.ap.case(Unknown Source)
at com.crystaldecisions.reports.dataengine.au.a(Unknown Source)
at com.crystaldecisions.reports.dataengine.a0.a(Unknown Source)
at com.crystaldecisions.reports.dataengine.a0.aa(Unknown Source)
at com.crystaldecisions.reports.dataengine.a0.<init>(Unknown Source)
at com.crystaldecisions.reports.dataengine.a0.<init>(Unknown Source)
at com.crystaldecisions.reports.dataengine.a0.a(Unknown Source)
at
com.crystaldecisions.reports.formatter.formatter.objectformatter.bf.<init>(Unknown
Source)
at
com.crystaldecisions.reports.formatter.formatter.objectformatter.bf.a(Unknown
Source)
at
com.crystaldecisions.reports.formatter.formatter.d.j.<init>(Unknown Source)
at com.crystaldecisions.reports.formatter.formatter.d.j.if(Unknown
Source)
at
com.crystaldecisions.reports.reportengineinterface.Engine.getPage(Unknown
Source)
at
com.crystaldecisions.reports.reportengineinterface.JPEReportSource.getPage(Unknown
Source)
at com.crystaldecisions.report.web.viewer.ReportAgent.a(Unknown Source)
at
com.crystaldecisions.report.web.viewer.CrystalReportViewer.goto(Unknown
Source)
at com.crystaldecisions.report.web.ServerControl.a(Unknown Source)
at
com.crystaldecisions.report.web.ServerControl.processHttpRequest(Unknown
Source)
at
com.crystaldecisions.report.web.viewer.taglib.ServerControlTag.doEndTag(Unknown
Source)
at
com.crystaldecisions.report.web.viewer.taglib.ReportServerControlTag.doEndTag(Unknown
Source)
at
org.apache.jsp.crystalTest_jsp._jspx_meth_c_viewer_0(crystalTest_jsp.java:116)
at org.apache.jsp.crystalTest_jsp._jspService(crystalTest_jsp.java:63)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at
com.redalien.gitc.abiturient.web.SecurityFilter.doFilter(SecurityFilter.java:78)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:509)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:184)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)
at java.lang.Thread.run(Thread.java:534)

Any ideas?
Andrew Andriychenko