KON-SUN-TACK created WW-5289:
--------------------------------

             Summary: Execute and Wait Interceptor prevents JVM shutdown
                 Key: WW-5289
                 URL: https://issues.apache.org/jira/browse/WW-5289
             Project: Struts 2
          Issue Type: Bug
          Components: Core Interceptors
    Affects Versions: 6.1.1
            Reporter: KON-SUN-TACK


Hi Struts 2 team,

We are using the Execute and Wait Interceptor as following:

{{    <action name="longRunLaunch"
           class="my.sample.longrun.action.LongRunAction"
          method="longRunLaunch">
      <interceptor-ref name="myStack"/>
      <interceptor-ref name="execAndWait">
        <param name="delay">500</param>
        <param name="delaySleepInterval">500</param>
      </interceptor-ref>
      <result name="wait">/my/sample/wait.jsp</result>
      <result name="success">/my/sample/success.jsp</result>
    </action>}}

- with Struts 6.0.3, it works fine
- with Struts 6.1.1, it works fine... but JVM shutdown is hanging

We are running: Apache Tomcat (TomEE)/9.0.41 (8.0.6)

I tried to compare thread dumps and only found this extra one with Struts 6.1.1:

{{"pool-5-thread-1" #129 prio=5 os_prio=0 cpu=0.00ms elapsed=21.47s 
tid=0x000001b39a917800 nid=0x3cb0 waiting on condition  [0x00000068c4fff000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00000000e4ca75b0> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at 
java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:2081)
        at 
java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:433)
        at 
java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1054)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None}}


Regards,
Jean.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to