I used sleep() as you can see in the modified version of
getParameterMap() at the end of this message.

I got the issue and here is the trace.

What I call "original thread" is the one that was the first to call
Requuest.getParameterMap()

Correct me if I am wrong but it seems to me that the 2 threads are from
Tomcat, not from our application.

Gael


java.lang.IllegalStateException: 

Original thread = Thread[http-80-3,5,main]
Original stack trace =  java.lang.Thread.dumpThreads()
        java.lang.Thread.getStackTrace()
        
org.apache.catalina.connector.Request.getParameterMap()(Request.java:102
3)
        
org.apache.catalina.connector.RequestFacade.getParameterMap()(RequestFac
ade.java:411)
        
org.apache.catalina.core.ApplicationHttpRequest.parseParameters()(Applic
ationHttpRequest.java:727)
        
org.apache.catalina.core.ApplicationHttpRequest.getParameter()(Applicati
onHttpRequest.java:352)
        
com.hp.swift.portal.state.HttpEventContextObject.getParameter()(HttpEven
tContextObject.java:64)
        
com.hp.cii.radix.user.web.home.Home2Context.doUpdateAlertSummary()(Home2
Context.java:709)
        
com.hp.cii.radix.user.web.home.Home2Context.doDisplayAlertSummary()(Home
2Context.java:789)
        sun.reflect.NativeMethodAccessorImpl.invoke0()
        sun.reflect.NativeMethodAccessorImpl.invoke()
        sun.reflect.DelegatingMethodAccessorImpl.invoke()
        java.lang.reflect.Method.invoke()
        com.hp.swift.util.MethodInvoker.invoke()(MethodInvoker.java:52)
        
com.hp.swift.state.core.StateContextAction.execute()(StateContextAction.
java:51)
        
com.hp.swift.state.core.Transition.executeAction()(Transition.java:124)
        
com.hp.swift.state.core.StateMachineController.fireTransition()(StateMac
hineController.java:1013)
        
com.hp.swift.state.core.StateMachineController.doHandle()(StateMachineCo
ntroller.java:788)
        
com.hp.swift.state.core.StateMachineController.handle()(StateMachineCont
roller.java:520)
        
com.hp.swift.portal.servlet.SmvController.doHandleRequest()(SmvControlle
r.java:393)
        
com.hp.swift.portal.servlet.SmvController.doGet()(SmvController.java:235
)
        javax.servlet.http.HttpServlet.service()(HttpServlet.java:689)
        javax.servlet.http.HttpServlet.service()(HttpServlet.java:802)
        
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()(Appli
cationFilterChain.java:252)
        
org.apache.catalina.core.ApplicationFilterChain.doFilter()(ApplicationFi
lterChain.java:173)
        
org.apache.catalina.core.ApplicationDispatcher.invoke()(ApplicationDispa
tcher.java:672)
        
org.apache.catalina.core.ApplicationDispatcher.processRequest()(Applicat
ionDispatcher.java:463)
        
org.apache.catalina.core.ApplicationDispatcher.doForward()(ApplicationDi
spatcher.java:359)
        
org.apache.catalina.core.ApplicationDispatcher.forward()(ApplicationDisp
atcher.java:301)
        
com.hp.swift.proxy.ProxySessionController.forwardRequest()(ProxySessionC
ontroller.java:57)
        
com.hp.swift.portal.servlet.SessionController$1.run()(SessionController.
java:164)
        
com.hp.swift.security.manager.LightSecurityManager.doAsPrivileged()(Ligh
tSecurityManager.java:272)
        
com.hp.swift.security.manager.SecurityChecker.doAsPrivileged()(SecurityC
hecker.java:187)
        
com.hp.swift.portal.servlet.SessionController.forwardRequestAs()(Session
Controller.java:159)
        
com.hp.swift.portal.servlet.SessionController.doHttp()(SessionController
.java:134)
        
com.hp.swift.portal.servlet.SessionController.doGet()(SessionController.
java:110)
        javax.servlet.http.HttpServlet.service()(HttpServlet.java:689)
        
com.hp.swift.portal.init.FirstLevelInitableServlet.service()(FirstLevelI
nitableServlet.java:154)
        javax.servlet.http.HttpServlet.service()(HttpServlet.java:802)
        
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()(Appli
cationFilterChain.java:252)
        
org.apache.catalina.core.ApplicationFilterChain.doFilter()(ApplicationFi
lterChain.java:173)
        
com.hp.swift.portal.servlet.HttpTracingFilter.doFilter()(HttpTracingFilt
er.java:94)
        
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()(Appli
cationFilterChain.java:202)
        
org.apache.catalina.core.ApplicationFilterChain.doFilter()(ApplicationFi
lterChain.java:173)
        
com.hp.swift.portal.servlet.SecurityFilter.doFilter()(SecurityFilter.jav
a:61)
        
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()(Appli
cationFilterChain.java:202)
        
org.apache.catalina.core.ApplicationFilterChain.doFilter()(ApplicationFi
lterChain.java:173)
        
org.apache.catalina.core.StandardWrapperValve.invoke()(StandardWrapperVa
lve.java:213)
        
org.apache.catalina.core.StandardContextValve.invoke()(StandardContextVa
lve.java:178)
        
org.apache.catalina.core.StandardHostValve.invoke()(StandardHostValve.ja
va:126)
        
org.apache.catalina.valves.ErrorReportValve.invoke()(ErrorReportValve.ja
va:105)
        
org.apache.catalina.core.StandardEngineValve.invoke()(StandardEngineValv
e.java:107)
        
org.apache.catalina.connector.CoyoteAdapter.service()(CoyoteAdapter.java
:148)
        
org.apache.coyote.http11.Http11AprProcessor.process()(Http11AprProcessor
.java:833)
        
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.proce
ss()(Http11AprProtocol.java:639)
        
org.apache.tomcat.util.net.AprEndpoint$Worker.run()(AprEndpoint.java:128
5)
        java.lang.Thread.run()

Current thread = Thread[http-80-6,5,main]
Current Stack trace
        at
org.apache.catalina.connector.Request.getParameterMap(Request.java:1029)
        at
org.apache.catalina.connector.RequestFacade.getParameterMap(RequestFacad
e.java:411)
        at
org.apache.catalina.core.ApplicationHttpRequest.parseParameters(Applicat
ionHttpRequest.java:727)
        at
org.apache.catalina.core.ApplicationHttpRequest.getParameter(Application
HttpRequest.java:352)
        at
com.hp.swift.portal.state.HttpEventContextObject.getParameter(HttpEventC
ontextObject.java:64)
        at
com.hp.cii.radix.user.web.home.Home2Context.doUpdateCallSummary(Home2Con
text.java:309)
        at
com.hp.cii.radix.user.web.home.Home2Context.doDisplayCallSummary(Home2Co
ntext.java:417)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.hp.swift.util.MethodInvoker.invoke(MethodInvoker.java:52)
        at
com.hp.swift.state.core.StateContextAction.execute(StateContextAction.ja
va:51)
        at
com.hp.swift.state.core.Transition.executeAction(Transition.java:124)
        at
com.hp.swift.state.core.StateMachineController.fireTransition(StateMachi
neController.java:1013)
        at
com.hp.swift.state.core.StateMachineController.doHandle(StateMachineCont
roller.java:788)
        at
com.hp.swift.state.core.StateMachineController.handle(StateMachineContro
ller.java:520)
        at
com.hp.swift.portal.servlet.SmvController.doHandleRequest(SmvController.
java:393)
        at
com.hp.swift.portal.servlet.SmvController.doGet(SmvController.java:235)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:672)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:463)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:359)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:301)
        at
com.hp.swift.proxy.ProxySessionController.forwardRequest(ProxySessionCon
troller.java:57)
        at
com.hp.swift.portal.servlet.SessionController$1.run(SessionController.ja
va:164)
        at
com.hp.swift.security.manager.LightSecurityManager.doAsPrivileged(LightS
ecurityManager.java:272)
        at
com.hp.swift.security.manager.SecurityChecker.doAsPrivileged(SecurityChe
cker.java:187)
        at
com.hp.swift.portal.servlet.SessionController.forwardRequestAs(SessionCo
ntroller.java:159)
        at
com.hp.swift.portal.servlet.SessionController.doHttp(SessionController.j
ava:134)
        at
com.hp.swift.portal.servlet.SessionController.doGet(SessionController.ja
va:110)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at
com.hp.swift.portal.init.FirstLevelInitableServlet.service(FirstLevelIni
tableServlet.java:154)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
        at
com.hp.swift.portal.servlet.HttpTracingFilter.doFilter(HttpTracingFilter
.java:94)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
        at
com.hp.swift.portal.servlet.SecurityFilter.doFilter(SecurityFilter.java:
61)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
        at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.j
ava:833)
        at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.proce
ss(Http11AprProtocol.java:639)
        at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
        at java.lang.Thread.run(Unknown Source) 


-----------------------------------------------

    public Map getParameterMap() {

        synchronized(parameterMap) {
            Thread currentThread = Thread.currentThread();
            if (pmapThread == null) {
                // Store context of first caller thread
                pmapThread = currentThread;
                pmapStackTrace = currentThread.getStackTrace();
            } else {
                if (currentThread != pmapThread) {
                    String msg = "Original thread = " + pmapThread +
                        "\nOriginal stack trace = " +
stack2string(pmapStackTrace) +
                        "\nCurrent thread = " + currentThread;
                    throw new IllegalStateException(msg);
                }
            }
        }

        if (parameterMap.isLocked())
            return parameterMap;

        // make some time delay - and the thread should yield the CPU
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // ignore
        }

        Enumeration enumeration = getParameterNames();
        while (enumeration.hasMoreElements()) {
            String name = enumeration.nextElement().toString();
            String[] values = getParameterValues(name);
            parameterMap.put(name, values);
        }

        parameterMap.setLocked(true);

        return parameterMap;

    }




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to