You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Christopher Oliver <re...@verizon.net> on 2004/01/23 18:07:36 UTC
Re: Continuation - strange problem
This is a bug in the JavaScript interpreter. I'll check in a fix
shortly. In the meantime to workaround this you could try adding this in
your function:
function login() {
try {
try {
try {
} catch(e) {
}
} catch(e) {
}
} catch (e) {
}
...
}
To force the catch stack size to 3.
Another workaround would be to move the code containing one of your try
blocks into a subroutine.
Regards,
Chris
Peter Velychko wrote:
>Hello Christopher,
>
>My flowscript looks like the following:
>var user, permittedRubrics;
>
>function login(errorMsg) {
> var login = "";
> var password = "";
> while (true) {
> var viewData = {
> errorMsg : errorMsg,
> login : login,
> password : password
> };
> cocoon.sendPageAndWait("screens/ru/admin/login.jx", viewData);
> errorMsg = null;
>
> login = cocoon.request.getParameter("login");
> password = cocoon.request.getParameter("psw");
>
> if (login != "" && password != "") {
> try {
> var userReg = factory.createUserRegistry();
> user = userReg.getUserWithLogin(login, password);
> userReg.release();
>
> if (user != undefined) {
> break;
> } else {
> errorMsg = "No such user or bad password";
> }
> }
> catch (e) {}
> } else {
> errorMsg = "Please input correct values";
> }
> }
> // collecting rubrics permitted for the user
> try {
> var userReg2 = factory.createUserRegistry();
> if (userReg2.existsPermission(user, "manageAllDocuments")) {
> // getting all rubrics
> permittedRubrics = getAllRubrList();
> } else {
> permittedRubrics = userReg2.getPermittedRubrics(user);
> }
> }
> catch (e) {
> cocoon.log.error("--> Exception "+e);
> }
>
> // area where exception arises
> try {
> userReg2.release();
> }
> catch (e) {
> cocoon.log.error("--> Exception "+e);
> }
> userReg = null;
>
> var session = cocoon.session;
>
> rubrView("Rubric List");
>}
>
>The exception arises without any visible reason for me.
>
>CO> What does your flowscript look like?
>
>CO> Peter Velychko wrote:
>
>
>
>>>Hello All,
>>>
>>>Could anyone help me with the following error?
>>>ERROR (2004-01-23) 17:39.03:234 [sitemap.] (/private/continue.1c29510e1319484e1e178266285e076570517f14) Thread-13/PipelineNode: 2
>>>java.lang.ArrayIndexOutOfBoundsException: 2
>>> at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:374)
>>> at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
>>> at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138)
>>> at org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121)
>>> at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
>>> at org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1591)
>>> at org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:606)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:151)
>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>> at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>>> at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>>> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>> at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
>>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>> at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>> at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>>> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
>>> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
>>> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
>>> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
>>> at java.lang.Thread.run(Thread.java:534)
>>>
>>>
>>>My environment is the following:
>>>jdk 1.4.2
>>>tomcat 4.1.18
>>>cocoon 2.1.3
>>>
>>>Thank you in advance.
>>>
>>>
>>>
>>>
>>>
>
>
>
>CO> ---------------------------------------------------------------------
>CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>CO> For additional commands, e-mail: users-help@cocoon.apache.org
>
>
>
>
>
>
>
Re: Continuation - strange problem
Posted by Peter Velychko <v_...@ukr.net>.
Hello Christopher,
I tried to change my code like you have whritten and I have the following error:
ERROR (2004-01-23) 20:14.07:203 [sitemap.] (/private/continue.1670647f1a2e431e37637f1b820b2143437d542a) Thread-12/PipelineNode: 6
java.lang.ArrayIndexOutOfBoundsException: 6
at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:374)
at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
...
Friday, January 23, 2004, 7:07:36 PM, you wrote:
CO> This is a bug in the JavaScript interpreter. I'll check in a fix
CO> shortly. In the meantime to workaround this you could try adding this in
CO> your function:
CO> function login() {
CO> try {
CO> try {
CO> try {
CO> } catch(e) {
CO> }
CO> } catch(e) {
CO> }
CO> } catch (e) {
CO> }
CO> ...
CO> }
CO> To force the catch stack size to 3.
CO> Another workaround would be to move the code containing one of your try
CO> blocks into a subroutine.
CO> Regards,
CO> Chris
CO> Peter Velychko wrote:
>>Hello Christopher,
>>
>>My flowscript looks like the following:
>>var user, permittedRubrics;
>>
>>function login(errorMsg) {
>> var login = "";
>> var password = "";
>> while (true) {
>> var viewData = {
>> errorMsg : errorMsg,
>> login : login,
>> password : password
>> };
>> cocoon.sendPageAndWait("screens/ru/admin/login.jx", viewData);
>> errorMsg = null;
>>
>> login = cocoon.request.getParameter("login");
>> password = cocoon.request.getParameter("psw");
>>
>> if (login != "" && password != "") {
>> try {
>> var userReg = factory.createUserRegistry();
>> user = userReg.getUserWithLogin(login, password);
>> userReg.release();
>>
>> if (user != undefined) {
>> break;
>> } else {
>> errorMsg = "No such user or bad password";
>> }
>> }
>> catch (e) {}
>> } else {
>> errorMsg = "Please input correct values";
>> }
>> }
>> // collecting rubrics permitted for the user
>> try {
>> var userReg2 = factory.createUserRegistry();
>> if (userReg2.existsPermission(user, "manageAllDocuments")) {
>> // getting all rubrics
>> permittedRubrics = getAllRubrList();
>> } else {
>> permittedRubrics = userReg2.getPermittedRubrics(user);
>> }
>> }
>> catch (e) {
>> cocoon.log.error("--> Exception "+e);
>> }
>>
>> // area where exception arises
>> try {
>> userReg2.release();
>> }
>> catch (e) {
>> cocoon.log.error("--> Exception "+e);
>> }
>> userReg = null;
>>
>> var session = cocoon.session;
>>
>> rubrView("Rubric List");
>>}
>>
>>The exception arises without any visible reason for me.
>>
>>CO> What does your flowscript look like?
>>
>>CO> Peter Velychko wrote:
>>
>>
>>
>>>>Hello All,
>>>>
>>>>Could anyone help me with the following error?
>>>>ERROR (2004-01-23) 17:39.03:234 [sitemap.] (/private/continue.1c29510e1319484e1e178266285e076570517f14) Thread-13/PipelineNode: 2
>>>>java.lang.ArrayIndexOutOfBoundsException: 2
>>>> at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:374)
>>>> at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
>>>> at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138)
>>>> at org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121)
>>>> at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
>>>> at org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1591)
>>>> at org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:606)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:151)
>>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
>>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>> at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>>>> at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>>>> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
>>>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>> at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>>>> at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>>>> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
>>>> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
>>>> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
>>>> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
>>>> at java.lang.Thread.run(Thread.java:534)
>>>>
>>>>
>>>>My environment is the following:
>>>>jdk 1.4.2
>>>>tomcat 4.1.18
>>>>cocoon 2.1.3
>>>>
>>>>Thank you in advance.
>>>>
>>>>
>>>>
>>>>
>>>>
>>
>>
>>
>>CO> ---------------------------------------------------------------------
>>CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>>CO> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>
>>
>>
>>
>>
>>
CO> ---------------------------------------------------------------------
CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
CO> For additional commands, e-mail: users-help@cocoon.apache.org
--
Best regards,
Peter Velychko
v_peter@ukr.net
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
Re[2]: Continuation - strange problem
Posted by Peter Velychko <v_...@ukr.net>.
Hello Christopher,
It works really!
Many thanks!
PV> Hello Christopher,
PV> Thank you very much for your advice. I'll try it and report about
PV> result.
CO>> After further analysis this seems to be the same problem as a known
CO>> Rhino bug: http://bugzilla.mozilla.org/show_bug.cgi?id=115717. It's
CO>> marked as WORKSFORME but I just verified that it was never fixed for
CO>> this case and is still a problem in Rhino15_R4 and Rhino15_R4.1. I
CO>> believe the problem is actually with the "break" inside a "try" block.
CO>> Here is a simplified test case:
CO>> function test() {
CO>> while (true) {
CO>> try {
CO>> break;
CO>> } catch (e) {
CO>> }
CO>> }
CO>> try {
CO>> throw "x";
CO>> } catch (e) {
CO>> }
CO>> }
CO>> test();
CO>> The try is never cleaned up if the break is hit and leaves the catch
CO>> stack corrupted. I don't know when I'll be able to fix this. So to
CO>> workaround it set a variable inside the try and move break outside.
CO>> HTH,
CO>> Chris
CO>> Christopher Oliver wrote:
>>> This is a bug in the JavaScript interpreter. I'll check in a fix
>>> shortly. In the meantime to workaround this you could try adding this
>>> in your function:
>>>
>>> function login() {
>>> try {
>>> try {
>>> try {
>>> } catch(e) {
>>> }
>>> } catch(e) {
>>> }
>>> } catch (e) {
>>> }
>>> ...
>>> }
>>>
>>> To force the catch stack size to 3.
>>>
>>> Another workaround would be to move the code containing one of your
>>> try blocks into a subroutine.
>>>
>>> Regards,
>>>
>>> Chris
>>>
>>> Peter Velychko wrote:
>>>
>>>> Hello Christopher,
>>>>
>>>> My flowscript looks like the following:
>>>> var user, permittedRubrics;
>>>>
>>>> function login(errorMsg) {
>>>> var login = "";
>>>> var password = "";
>>>> while (true) {
>>>> var viewData = {
>>>> errorMsg : errorMsg,
>>>> login : login,
>>>> password : password
>>>> };
>>>> cocoon.sendPageAndWait("screens/ru/admin/login.jx", viewData);
>>>> errorMsg = null;
>>>>
>>>> login = cocoon.request.getParameter("login");
>>>> password = cocoon.request.getParameter("psw");
>>>>
>>>> if (login != "" && password != "") {
>>>> try {
>>>> var userReg = factory.createUserRegistry();
>>>> user = userReg.getUserWithLogin(login, password);
>>>> userReg.release();
>>>>
>>>> if (user != undefined) {
>>>> break;
>>>> } else {
>>>> errorMsg = "No such user or bad password";
>>>> }
>>>> }
>>>> catch (e) {}
>>>> } else {
>>>> errorMsg = "Please input correct values";
>>>> }
>>>> }
>>>> // collecting rubrics permitted for the user
>>>> try {
>>>> var userReg2 = factory.createUserRegistry();
>>>> if (userReg2.existsPermission(user, "manageAllDocuments")) {
>>>> // getting all rubrics
>>>> permittedRubrics = getAllRubrList();
>>>> } else {
>>>> permittedRubrics = userReg2.getPermittedRubrics(user);
>>>> }
>>>> }
>>>> catch (e) {
>>>> cocoon.log.error("--> Exception "+e);
>>>> }
>>>>
>>>> // area where exception arises
>>>> try {
>>>> userReg2.release();
>>>> }
>>>> catch (e) {
>>>> cocoon.log.error("--> Exception "+e);
>>>> }
>>>> userReg = null;
>>>> var session = cocoon.session;
>>>>
>>>> rubrView("Rubric List");
>>>> }
>>>>
>>>> The exception arises without any visible reason for me.
>>>>
>>>> CO> What does your flowscript look like?
>>>>
>>>> CO> Peter Velychko wrote:
>>>>
>>>>
>>>>
>>>>>> Hello All,
>>>>>>
>>>>>> Could anyone help me with the following error?
>>>>>> ERROR (2004-01-23) 17:39.03:234 [sitemap.]
>>>>>> (/private/continue.1c29510e1319484e1e178266285e076570517f14)
>>>>>> Thread-13/PipelineNode: 2
>>>>>> java.lang.ArrayIndexOutOfBoundsException: 2
>>>>>> at
>>>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:374)
>>>>>>
>>>>>> at
>>>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
>>>>>>
>>>>>> at
>>>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138)
>>>>>>
>>>>>> at
>>>>>> org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121)
>>>>>>
>>>>>> at
>>>>>> org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
>>>>>> at
>>>>>> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1591)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:606)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:151)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>>>
>>>>>> at
>>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>>>
>>>>>> at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>>>>>> at
>>>>>> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>>>>>>
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>>
>>>>>> at
>>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>>> at
>>>>>> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>>>>>>
>>>>>> at
>>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
>>>>>>
>>>>>> at
>>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
>>>>>>
>>>>>> at
>>>>>> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
>>>>>>
>>>>>> at
>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
>>>>>>
>>>>>> at java.lang.Thread.run(Thread.java:534)
>>>>>>
>>>>>>
>>>>>> My environment is the following:
>>>>>> jdk 1.4.2
>>>>>> tomcat 4.1.18
>>>>>> cocoon 2.1.3
>>>>>>
>>>>>> Thank you in advance.
>>>>
>>>> CO>
>>>> ---------------------------------------------------------------------
>>>> CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>>>> CO> For additional commands, e-mail: users-help@cocoon.apache.org
>>>
CO>> ---------------------------------------------------------------------
CO>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
CO>> For additional commands, e-mail: users-help@cocoon.apache.org
--
Best regards,
Peter Velychko
v_peter@ukr.net
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
Re: Continuation - strange problem
Posted by Peter Velychko <v_...@ukr.net>.
Hello Christopher,
Thank you very much for your advice. I'll try it and report about
result.
CO> After further analysis this seems to be the same problem as a known
CO> Rhino bug: http://bugzilla.mozilla.org/show_bug.cgi?id=115717. It's
CO> marked as WORKSFORME but I just verified that it was never fixed for
CO> this case and is still a problem in Rhino15_R4 and Rhino15_R4.1. I
CO> believe the problem is actually with the "break" inside a "try" block.
CO> Here is a simplified test case:
CO> function test() {
CO> while (true) {
CO> try {
CO> break;
CO> } catch (e) {
CO> }
CO> }
CO> try {
CO> throw "x";
CO> } catch (e) {
CO> }
CO> }
CO> test();
CO> The try is never cleaned up if the break is hit and leaves the catch
CO> stack corrupted. I don't know when I'll be able to fix this. So to
CO> workaround it set a variable inside the try and move break outside.
CO> HTH,
CO> Chris
CO> Christopher Oliver wrote:
>> This is a bug in the JavaScript interpreter. I'll check in a fix
>> shortly. In the meantime to workaround this you could try adding this
>> in your function:
>>
>> function login() {
>> try {
>> try {
>> try {
>> } catch(e) {
>> }
>> } catch(e) {
>> }
>> } catch (e) {
>> }
>> ...
>> }
>>
>> To force the catch stack size to 3.
>>
>> Another workaround would be to move the code containing one of your
>> try blocks into a subroutine.
>>
>> Regards,
>>
>> Chris
>>
>> Peter Velychko wrote:
>>
>>> Hello Christopher,
>>>
>>> My flowscript looks like the following:
>>> var user, permittedRubrics;
>>>
>>> function login(errorMsg) {
>>> var login = "";
>>> var password = "";
>>> while (true) {
>>> var viewData = {
>>> errorMsg : errorMsg,
>>> login : login,
>>> password : password
>>> };
>>> cocoon.sendPageAndWait("screens/ru/admin/login.jx", viewData);
>>> errorMsg = null;
>>>
>>> login = cocoon.request.getParameter("login");
>>> password = cocoon.request.getParameter("psw");
>>>
>>> if (login != "" && password != "") {
>>> try {
>>> var userReg = factory.createUserRegistry();
>>> user = userReg.getUserWithLogin(login, password);
>>> userReg.release();
>>>
>>> if (user != undefined) {
>>> break;
>>> } else {
>>> errorMsg = "No such user or bad password";
>>> }
>>> }
>>> catch (e) {}
>>> } else {
>>> errorMsg = "Please input correct values";
>>> }
>>> }
>>> // collecting rubrics permitted for the user
>>> try {
>>> var userReg2 = factory.createUserRegistry();
>>> if (userReg2.existsPermission(user, "manageAllDocuments")) {
>>> // getting all rubrics
>>> permittedRubrics = getAllRubrList();
>>> } else {
>>> permittedRubrics = userReg2.getPermittedRubrics(user);
>>> }
>>> }
>>> catch (e) {
>>> cocoon.log.error("--> Exception "+e);
>>> }
>>>
>>> // area where exception arises
>>> try {
>>> userReg2.release();
>>> }
>>> catch (e) {
>>> cocoon.log.error("--> Exception "+e);
>>> }
>>> userReg = null;
>>> var session = cocoon.session;
>>>
>>> rubrView("Rubric List");
>>> }
>>>
>>> The exception arises without any visible reason for me.
>>>
>>> CO> What does your flowscript look like?
>>>
>>> CO> Peter Velychko wrote:
>>>
>>>
>>>
>>>>> Hello All,
>>>>>
>>>>> Could anyone help me with the following error?
>>>>> ERROR (2004-01-23) 17:39.03:234 [sitemap.]
>>>>> (/private/continue.1c29510e1319484e1e178266285e076570517f14)
>>>>> Thread-13/PipelineNode: 2
>>>>> java.lang.ArrayIndexOutOfBoundsException: 2
>>>>> at
>>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:374)
>>>>>
>>>>> at
>>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
>>>>>
>>>>> at
>>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138)
>>>>>
>>>>> at
>>>>> org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121)
>>>>>
>>>>> at
>>>>> org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
>>>>> at
>>>>> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1591)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:606)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:151)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>>
>>>>> at
>>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>>
>>>>> at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>>>>> at
>>>>> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>>>>>
>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>> at
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>> at
>>>>> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>
>>>>> at
>>>>> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>>
>>>>> at
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>> at
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>>
>>>>> at
>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>>> at
>>>>> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>>>>>
>>>>> at
>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
>>>>>
>>>>> at
>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
>>>>>
>>>>> at
>>>>> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
>>>>>
>>>>> at
>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
>>>>>
>>>>> at java.lang.Thread.run(Thread.java:534)
>>>>>
>>>>>
>>>>> My environment is the following:
>>>>> jdk 1.4.2
>>>>> tomcat 4.1.18
>>>>> cocoon 2.1.3
>>>>>
>>>>> Thank you in advance.
>>>
>>> CO>
>>> ---------------------------------------------------------------------
>>> CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>>> CO> For additional commands, e-mail: users-help@cocoon.apache.org
>>
CO> ---------------------------------------------------------------------
CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
CO> For additional commands, e-mail: users-help@cocoon.apache.org
--
Best regards,
Peter Velychko
v_peter@ukr.net
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
Re: Continuation - strange problem
Posted by Christopher Oliver <re...@verizon.net>.
After further analysis this seems to be the same problem as a known
Rhino bug: http://bugzilla.mozilla.org/show_bug.cgi?id=115717. It's
marked as WORKSFORME but I just verified that it was never fixed for
this case and is still a problem in Rhino15_R4 and Rhino15_R4.1. I
believe the problem is actually with the "break" inside a "try" block.
Here is a simplified test case:
function test() {
while (true) {
try {
break;
} catch (e) {
}
}
try {
throw "x";
} catch (e) {
}
}
test();
The try is never cleaned up if the break is hit and leaves the catch
stack corrupted. I don't know when I'll be able to fix this. So to
workaround it set a variable inside the try and move break outside.
HTH,
Chris
Christopher Oliver wrote:
> This is a bug in the JavaScript interpreter. I'll check in a fix
> shortly. In the meantime to workaround this you could try adding this
> in your function:
>
> function login() {
> try {
> try {
> try {
> } catch(e) {
> }
> } catch(e) {
> }
> } catch (e) {
> }
> ...
> }
>
> To force the catch stack size to 3.
>
> Another workaround would be to move the code containing one of your
> try blocks into a subroutine.
>
> Regards,
>
> Chris
>
> Peter Velychko wrote:
>
>> Hello Christopher,
>>
>> My flowscript looks like the following:
>> var user, permittedRubrics;
>>
>> function login(errorMsg) {
>> var login = "";
>> var password = "";
>> while (true) {
>> var viewData = {
>> errorMsg : errorMsg,
>> login : login,
>> password : password
>> };
>> cocoon.sendPageAndWait("screens/ru/admin/login.jx", viewData);
>> errorMsg = null;
>>
>> login = cocoon.request.getParameter("login");
>> password = cocoon.request.getParameter("psw");
>>
>> if (login != "" && password != "") {
>> try {
>> var userReg = factory.createUserRegistry();
>> user = userReg.getUserWithLogin(login, password);
>> userReg.release();
>>
>> if (user != undefined) {
>> break;
>> } else {
>> errorMsg = "No such user or bad password";
>> }
>> }
>> catch (e) {}
>> } else {
>> errorMsg = "Please input correct values";
>> }
>> }
>> // collecting rubrics permitted for the user
>> try {
>> var userReg2 = factory.createUserRegistry();
>> if (userReg2.existsPermission(user, "manageAllDocuments")) {
>> // getting all rubrics
>> permittedRubrics = getAllRubrList();
>> } else {
>> permittedRubrics = userReg2.getPermittedRubrics(user);
>> }
>> }
>> catch (e) {
>> cocoon.log.error("--> Exception "+e);
>> }
>>
>> // area where exception arises
>> try {
>> userReg2.release();
>> }
>> catch (e) {
>> cocoon.log.error("--> Exception "+e);
>> }
>> userReg = null;
>> var session = cocoon.session;
>>
>> rubrView("Rubric List");
>> }
>>
>> The exception arises without any visible reason for me.
>>
>> CO> What does your flowscript look like?
>>
>> CO> Peter Velychko wrote:
>>
>>
>>
>>>> Hello All,
>>>>
>>>> Could anyone help me with the following error?
>>>> ERROR (2004-01-23) 17:39.03:234 [sitemap.]
>>>> (/private/continue.1c29510e1319484e1e178266285e076570517f14)
>>>> Thread-13/PipelineNode: 2
>>>> java.lang.ArrayIndexOutOfBoundsException: 2
>>>> at
>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:374)
>>>>
>>>> at
>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
>>>>
>>>> at
>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138)
>>>>
>>>> at
>>>> org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121)
>>>>
>>>> at
>>>> org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
>>>> at
>>>> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1591)
>>>>
>>>> at
>>>> org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:606)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:151)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>
>>>> at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>>>> at
>>>> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>>>>
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>>>>
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>
>>>> at
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>>>>
>>>> at
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
>>>>
>>>> at
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
>>>>
>>>> at
>>>> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
>>>>
>>>> at
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
>>>>
>>>> at java.lang.Thread.run(Thread.java:534)
>>>>
>>>>
>>>> My environment is the following:
>>>> jdk 1.4.2
>>>> tomcat 4.1.18
>>>> cocoon 2.1.3
>>>>
>>>> Thank you in advance.
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>> CO>
>> ---------------------------------------------------------------------
>> CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>> CO> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>
>>
>>
>>
>>
>>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
Re: Continuation - strange problem
Posted by Christopher Oliver <re...@verizon.net>.
After further analysis this seems to be the same problem as a known
Rhino bug: http://bugzilla.mozilla.org/show_bug.cgi?id=115717. It's
marked as WORKSFORME but I just verified that it was never fixed for
this case and is still a problem in Rhino15_R4 and Rhino15_R4.1. I
believe the problem is actually with the "break" inside a "try" block.
Here is a simplified test case:
function test() {
while (true) {
try {
break;
} catch (e) {
}
}
try {
throw "x";
} catch (e) {
}
}
test();
The try is never cleaned up if the break is hit and leaves the catch
stack corrupted. I don't know when I'll be able to fix this. So to
workaround it set a variable inside the try and move break outside.
HTH,
Chris
Christopher Oliver wrote:
> This is a bug in the JavaScript interpreter. I'll check in a fix
> shortly. In the meantime to workaround this you could try adding this
> in your function:
>
> function login() {
> try {
> try {
> try {
> } catch(e) {
> }
> } catch(e) {
> }
> } catch (e) {
> }
> ...
> }
>
> To force the catch stack size to 3.
>
> Another workaround would be to move the code containing one of your
> try blocks into a subroutine.
>
> Regards,
>
> Chris
>
> Peter Velychko wrote:
>
>> Hello Christopher,
>>
>> My flowscript looks like the following:
>> var user, permittedRubrics;
>>
>> function login(errorMsg) {
>> var login = "";
>> var password = "";
>> while (true) {
>> var viewData = {
>> errorMsg : errorMsg,
>> login : login,
>> password : password
>> };
>> cocoon.sendPageAndWait("screens/ru/admin/login.jx", viewData);
>> errorMsg = null;
>>
>> login = cocoon.request.getParameter("login");
>> password = cocoon.request.getParameter("psw");
>>
>> if (login != "" && password != "") {
>> try {
>> var userReg = factory.createUserRegistry();
>> user = userReg.getUserWithLogin(login, password);
>> userReg.release();
>>
>> if (user != undefined) {
>> break;
>> } else {
>> errorMsg = "No such user or bad password";
>> }
>> }
>> catch (e) {}
>> } else {
>> errorMsg = "Please input correct values";
>> }
>> }
>> // collecting rubrics permitted for the user
>> try {
>> var userReg2 = factory.createUserRegistry();
>> if (userReg2.existsPermission(user, "manageAllDocuments")) {
>> // getting all rubrics
>> permittedRubrics = getAllRubrList();
>> } else {
>> permittedRubrics = userReg2.getPermittedRubrics(user);
>> }
>> }
>> catch (e) {
>> cocoon.log.error("--> Exception "+e);
>> }
>>
>> // area where exception arises
>> try {
>> userReg2.release();
>> }
>> catch (e) {
>> cocoon.log.error("--> Exception "+e);
>> }
>> userReg = null;
>> var session = cocoon.session;
>>
>> rubrView("Rubric List");
>> }
>>
>> The exception arises without any visible reason for me.
>>
>> CO> What does your flowscript look like?
>>
>> CO> Peter Velychko wrote:
>>
>>
>>
>>>> Hello All,
>>>>
>>>> Could anyone help me with the following error?
>>>> ERROR (2004-01-23) 17:39.03:234 [sitemap.]
>>>> (/private/continue.1c29510e1319484e1e178266285e076570517f14)
>>>> Thread-13/PipelineNode: 2
>>>> java.lang.ArrayIndexOutOfBoundsException: 2
>>>> at
>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:374)
>>>>
>>>> at
>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
>>>>
>>>> at
>>>> org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138)
>>>>
>>>> at
>>>> org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121)
>>>>
>>>> at
>>>> org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
>>>> at
>>>> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1591)
>>>>
>>>> at
>>>> org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:606)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:151)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>>>>
>>>> at
>>>> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>>>>
>>>> at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>>>> at
>>>> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>>>>
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>>>>
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>
>>>> at
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>>>>
>>>> at
>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>>>>
>>>> at
>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>>>> at
>>>> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>>>>
>>>> at
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
>>>>
>>>> at
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
>>>>
>>>> at
>>>> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
>>>>
>>>> at
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
>>>>
>>>> at java.lang.Thread.run(Thread.java:534)
>>>>
>>>>
>>>> My environment is the following:
>>>> jdk 1.4.2
>>>> tomcat 4.1.18
>>>> cocoon 2.1.3
>>>>
>>>> Thank you in advance.
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>> CO>
>> ---------------------------------------------------------------------
>> CO> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>> CO> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>
>>
>>
>>
>>
>>
>
>
>