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 <daksh...@wso2.com>
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 <
> darsha...@wso2.com> 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 <sup...@wso2.com> 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
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> *Darshana Akalanka Pagoda Arachchi,*
>> *Software Engineer, WSO2*
>> *+94777118016 <%2B94777118016>*
>>
>> _______________________________________________
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> 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
nipu...@wso2.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to