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
>>
>>
>>
>>
>>
>>  
>>
>
>
>