ICEpush
  1. ICEpush
  2. PUSH-181

ICEpush causes no response if log level is FINE

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0
    • Fix Version/s: 3.3
    • Component/s: None
    • Labels:
      None
    • Environment:
      Windows 7, jdk 1.6.33, jboss 7.1.1

      Description

      The root cause:

      This only happens when IcePush is present, using jboss, and the log level is set to Level.FINE. Logic read from
       org.icefaces.impl.push.servlet.ICEpushResourceHandler#ICEpushResourceHandler
       

      If these conditions are met, the constructor create a BlockingICEpushResourceHandlerWrapper which blocks all method calls until the thread created in the constructor signal them.

      The problem is that within that thread created in the constructor, this method getPhaseId() is called by the JSF LifeCycleImpl and blocked. So the thread that is supposed to signal other threads get locked itself

       # this is from com/sun/faces/lifecycle/LifecycleImpl
       # http://grepcode.com/file/repository.jboss.org/maven2/javax.faces/jsf-impl/1.2_04-p02/com/sun/faces/lifecycle/LifecycleImpl.java#LifecycleImpl.addPhaseListener%28com.sun.faces.lifecycle.PhaseListener%29
       
       158 if (LOGGER.isLoggable(Level.FINE)) {
       159 LOGGER.fine("addPhaseListener(" + listener.getPhaseId().toString()
       160 + "," + listener);
       161 }
       

      And this is the stacktrace of this thread:

      "Thread-67@11079" prio=5 tid=0x5f nid=NA waiting
         java.lang.Thread.State: WAITING
        at sun.misc.Unsafe.park(Unsafe.java:-1)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitUninterruptibly(AbstractQueuedSynchronizer.java:1923)
        at org.icefaces.impl.push.servlet.ICEpushResourceHandler$BlockingICEpushResourceHandlerWrapper.getPhaseId(ICEpushResourceHandler.java:358)
        at org.icefaces.impl.push.servlet.ICEpushResourceHandler.getPhaseId(ICEpushResourceHandler.java:119)
        at com.sun.faces.lifecycle.LifecycleImpl.addPhaseListener(LifecycleImpl.java:166)
        at org.icefaces.impl.push.servlet.ICEpushResourceHandler$ICEpushResourceHandlerImpl.initialize(ICEpushResourceHandler.java:275)
        at org.icefaces.impl.push.servlet.ICEpushResourceHandler$BlockingICEpushResourceHandlerWrapper.initialize(ICEpushResourceHandler.java:431)
        at org.icefaces.impl.push.servlet.ICEpushResourceHandler$1.run(ICEpushResourceHandler.java:89)
        at java.lang.Thread.run(Thread.java:662)
       
         

        Activity

        Hide
        Jack Van Ooststroom added a comment - - edited

        This is related to PUSH-105.

        Show
        Jack Van Ooststroom added a comment - - edited This is related to PUSH-105.
        Hide
        Jack Van Ooststroom added a comment - - edited

        I made the original fix for PUSH-105 more specific to the JBoss AS 6.0.0.Final release. Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - - edited I made the original fix for PUSH-105 more specific to the JBoss AS 6.0.0.Final release. Marking this one as FIXED.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Zag Zag
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: