Thanks all for the suggestions! it indeed is a limitation with js/rhino. Refactoring solves the issue.
Thanks, Supun On Thu, Mar 24, 2016 at 3:13 PM, Nipuna Chandradasa <[email protected]> wrote: > Hi, > > I have come across this issue before. this is because of the jaggery file > size is exceeding the max size that rhino engine can compile that is 70kb > (Not sure whether this is the correct size) as i know. So the solution is > either modularize your code in to several files and combined them together > using include() or as Dakshika mentioned use already existing java methods. > > Regards, > > On Thu, Mar 24, 2016 at 2:34 PM, Dakshika Jayathilaka <[email protected]> > wrote: > >> Hi, >> >> IMO you need to write your main logic on java and use it on jaggery >> file[1]. >> >> [1] >> http://madhukaudantha.blogspot.com/2014/02/using-java-method-from-jaggery-file.html >> >> Regards, >> >> *Dakshika Jayathilaka* >> PMC Member & Committer of Apache Stratos >> Senior Software Engineer >> WSO2, Inc. >> lean.enterprise.middleware >> 0771100911 >> >> On Wed, Mar 23, 2016 at 4:58 PM, Akalanka Pagoda Arachchi < >> [email protected]> wrote: >> >>> This does look like a bug [1], however, is also due to reaching the >>> limit of instruction size. Few suggestions are there in [2], may be you can >>> try them out. >>> >>> [1] - https://bugzilla.mozilla.org/show_bug.cgi?id=331837 >>> [2] - >>> http://community.sahipro.com/forums/discussion/1316/funtion-too-long-getting-compilation-error >>> >>> Thanks, >>> Akalanka. >>> >>> On Wed, Mar 23, 2016 at 4:44 PM, Supun Sethunga <[email protected]> wrote: >>> >>>> 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 >>>> [email protected] >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> *Darshana Akalanka Pagoda Arachchi,* >>> *Software Engineer, WSO2* >>> *+94777118016 <%2B94777118016>* >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Nipuna Marcus > *Software Engineer* > WSO2 Inc. > http://wso2.com/ - "lean . enterprise . middleware" > Mobile : +94 (0) 713 667906 > [email protected] > -- *Supun Sethunga* Software Engineer WSO2, Inc. http://wso2.com/ lean | enterprise | middleware Mobile : +94 716546324
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
