https://bz.apache.org/bugzilla/show_bug.cgi?id=59110

            Bug ID: 59110
           Summary: Classloader generates string index out of bound
                    exception
           Product: Tomcat 8
           Version: 8.0.32
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: tfilt...@flexgroup.com

Created attachment 33620
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=33620&action=edit
File to reproduce the bug illustrated above

I'm running BIRT reports using the BIRT webviewer and everything worked fine
until I decided to upgrade from Tomcat 8.0.28 to Tomcat 8.0.32 where some of my
reports failed with the error "String index out of bound exception". The
reports were those that included the "importPackage" statement. Here's how to
reproduce the bug:

1) Have Tomcat 8.0.32 properly installed and running
2) Download the latest BIRT runtime
3) Take the birt.war file inside what you just downloaded and put it in the
webapps directory of Tomcat so that it'll get deployed.
4) The deployment should have created a "birt" folder inside the webapps
directory. Go inside and replace the test.rptdesign with the one I attached to
this bug report.
5) Navigate to localhost:8080/birt and click the "View example" at the bottom
of the page which should trigger the bug.

Just to be sure, here is the stack trace that's displayed:

org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating
script
"importPackage(Packages.org.eclipse.birt.report.item.crosstab.core.de);":
String index out of range: 3
   at
org.eclipse.birt.report.engine.script.internal.ScriptExecutor.addException(ScriptExecutor.java:249)
   at
org.eclipse.birt.report.engine.script.internal.ReportScriptExecutor.handleInitialize(ReportScriptExecutor.java:93)
   at
org.eclipse.birt.report.engine.api.impl.EngineTask.loadDesign(EngineTask.java:1971)
   at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:219)
   at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:89)
   at
org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1325)
   at
org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:159)
   at
org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
   at
org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)
   at
org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:118)
   at
org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:103)
   at
org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
   at
org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
   at
org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
   at
org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at
org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
   at
org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
   at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
   at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
   at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
   at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
   at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
   at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
   at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
   at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
   at
org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
   at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at
org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at
org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
   at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
   at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
   at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
   at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
   at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
   at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
   at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
   at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
   at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
   at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2500)
   at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2489)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
   at java.lang.Thread.run(Unknown Source)
Caused by: org.eclipse.birt.core.exception.CoreException: There are errors
evaluating script
"importPackage(Packages.org.eclipse.birt.report.item.crosstab.core.de);":
String index out of range: 3
   at
org.eclipse.birt.report.engine.javascript.JavascriptEngine.evaluate(JavascriptEngine.java:295)
   at
org.eclipse.birt.core.script.ScriptContext.evaluate(ScriptContext.java:159)
   at
org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:789)
   at
org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:718)
   at
org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleScriptInternal(ScriptExecutor.java:118)
   at
org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleScript(ScriptExecutor.java:105)
   at
org.eclipse.birt.report.engine.script.internal.ReportScriptExecutor.handleInitialize(ReportScriptExecutor.java:84)
... 61 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
range: 3
   at java.lang.String.charAt(Unknown Source)
   at
org.apache.catalina.loader.WebappClassLoaderBase.filter(WebappClassLoaderBase.java:2780)
   at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at
org.eclipse.birt.report.engine.executor.ApplicationClassLoader.loadClass(ApplicationClassLoader.java:89)
   at org.mozilla.javascript.Kit.classOrNull(Kit.java:60)
   at
org.mozilla.javascript.NativeJavaPackage.getPkgProperty(NativeJavaPackage.java:127)
   at org.mozilla.javascript.NativeJavaPackage.get(NativeJavaPackage.java:82)
   at
org.mozilla.javascript.NativeJavaTopPackage.init(NativeJavaTopPackage.java:96)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at
org.mozilla.javascript.ScriptableObject.buildClassCtor(ScriptableObject.java:1225)
   at
org.mozilla.javascript.LazilyLoadedCtor.buildValue0(LazilyLoadedCtor.java:105)
   at
org.mozilla.javascript.LazilyLoadedCtor.buildValue(LazilyLoadedCtor.java:96)
   at org.mozilla.javascript.LazilyLoadedCtor.init(LazilyLoadedCtor.java:66)
   at
org.mozilla.javascript.ScriptableObject$GetterSlot.getValue(ScriptableObject.java:307)
   at
org.mozilla.javascript.ScriptableObject$RelinkedSlot.getValue(ScriptableObject.java:347)
   at org.mozilla.javascript.ScriptableObject.get(ScriptableObject.java:456)
   at
org.mozilla.javascript.IdScriptableObject.get(IdScriptableObject.java:329)
   at org.mozilla.javascript.ImporterTopLevel.get(ImporterTopLevel.java:96)
   at
org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:2184)
   at
org.mozilla.javascript.ScriptRuntime.topScopeName(ScriptRuntime.java:1824)
   at
org.mozilla.javascript.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1791)
   at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1733)
   at
org.mozilla.javascript.gen._report_method__name__initialize___12._c_script_0(/report/method[@name="initialize"]:1)
   at
org.mozilla.javascript.gen._report_method__name__initialize___12.call(/report/method[@name="initialize"])
   at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
   at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
   at
org.mozilla.javascript.gen._report_method__name__initialize___12.call(/report/method[@name="initialize"])
   at
org.mozilla.javascript.gen._report_method__name__initialize___12.exec(/report/method[@name="initialize"])
   at
org.eclipse.birt.report.engine.javascript.JavascriptEngine.evaluate(JavascriptEngine.java:290)
... 67 more

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to