Hi, I have a jag file containing ~1900 LOC [1]. To that, I added few more stringify() calls. At one point, the jag app throws the below exception. If I remove any of the stringify() methods, it works fine. (This error is thrown for other functions such as well, like array looping or accessing array elements and etc).
Wonder whether there is a limit of instructions/logics per single jag file? Appreciate any help/workaround on this. *Stack trace:* [2016-03-23 16:32:13,498] ERROR {org.jaggeryjs.jaggery.core.manager.WebAppManager} - org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) (/portal/routers/apis.jag#22) (/portal/routers/tenant.jag#67) org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) (/portal/routers/apis.jag#22) (/portal/routers/tenant.jag#67) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:571) at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) at org.jaggeryjs.jaggery.core.manager.WebAppManager.exec(WebAppManager.java:587) at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:507) at org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:378) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) at org.wso2.carbon.event.receiver.core.internal.tenantmgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:48) at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) (/portal/routers/apis.jag#22) (/portal/routers/tenant.jag#67) at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148) at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:386) at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63) at org.jaggeryjs.rhino.portal.routers.c0._c_anonymous_1(/portal/routers/tenant.jag:67) at org.jaggeryjs.rhino.portal.routers.c0.call(/portal/routers/tenant.jag) at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) at org.jaggeryjs.rhino.portal.routers.c0._c_script_0(/portal/routers/tenant.jag:11) at org.jaggeryjs.rhino.portal.routers.c0.call(/portal/routers/tenant.jag) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) at org.jaggeryjs.rhino.portal.routers.c0.call(/portal/routers/tenant.jag) at org.jaggeryjs.rhino.portal.routers.c0.exec(/portal/routers/tenant.jag) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567) ... 42 more Caused by: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) (/portal/routers/apis.jag#22) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:571) at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) at org.jaggeryjs.jaggery.core.manager.WebAppManager.executeScript(WebAppManager.java:308) at org.jaggeryjs.jaggery.core.manager.WebAppManager.include(WebAppManager.java:148) at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126) ... 54 more Caused by: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) (/portal/routers/apis.jag#22) at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148) at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:386) at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63) at org.jaggeryjs.rhino.portal.routers.c2._c_anonymous_1(/portal/routers/apis.jag:22) at org.jaggeryjs.rhino.portal.routers.c2.call(/portal/routers/apis.jag) at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) at org.jaggeryjs.rhino.portal.routers.c2._c_script_0(/portal/routers/apis.jag:4) at org.jaggeryjs.rhino.portal.routers.c2.call(/portal/routers/apis.jag) at org.jaggeryjs.rhino.portal.routers.c2.exec(/portal/routers/apis.jag) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567) ... 61 more Caused by: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:571) at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) at org.jaggeryjs.jaggery.core.manager.WebAppManager.executeScript(WebAppManager.java:308) at org.jaggeryjs.jaggery.core.manager.WebAppManager.include(WebAppManager.java:148) at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126) ... 70 more Caused by: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) at org.jaggeryjs.scriptengine.cache.CacheManager.cacheScript(CacheManager.java:91) at org.jaggeryjs.scriptengine.cache.CacheManager.getScriptObject(CacheManager.java:102) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:562) ... 77 more Caused by: org.mozilla.javascript.EvaluatorException: Encountered code generation error while compiling function "null": Program too complex: too big jump offset (/portal/controllers/apis/esbanalytics.jag#2) at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:77) at org.mozilla.javascript.Context.reportRuntimeError(Context.java:913) at org.mozilla.javascript.optimizer.Codegen.reportClassFileFormatException(Codegen.java:180) at org.mozilla.javascript.optimizer.Codegen.generateCode(Codegen.java:308) at org.mozilla.javascript.optimizer.Codegen.compileToClassFile(Codegen.java:166) at org.mozilla.javascript.optimizer.ClassCompiler.compileToClassFiles(ClassCompiler.java:155) at org.jaggeryjs.scriptengine.cache.CacheManager.cacheScript(CacheManager.java:84) ... 79 more [1] https://github.com/wso2/analytics-esb/blob/master/features/org.wso2.carbon.analytics.esb.feature/src/main/jaggeryapi/esbanalytics.jag Thanks, Supun -- *Supun Sethunga* Software Engineer WSO2, Inc. http://wso2.com/ lean | enterprise | middleware Mobile : +94 716546324
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev