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

Reply via email to