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