You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2011/07/25 13:55:09 UTC

svn commit: r1150645 - /felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java

Author: cziegeler
Date: Mon Jul 25 11:55:09 2011
New Revision: 1150645

URL: http://svn.apache.org/viewvc?rev=1150645&view=rev
Log:
FELIX-3053 : Potential deadlock if event handler throws Throwable and is bypassing timeout handling

Modified:
    felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java

Modified: felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java?rev=1150645&r1=1150644&r2=1150645&view=diff
==============================================================================
--- felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java (original)
+++ felix/trunk/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java Mon Jul 25 11:55:09 2011
@@ -64,11 +64,15 @@ public class HandlerTaskImpl implements 
     /**
      * @see org.apache.felix.eventadmin.impl.tasks.HandlerTask#getHandlerClassName()
      */
-    public String getHandlerClassName() {
+    public String getHandlerClassName()
+    {
         final EventHandler handler = m_handlerTasks.getEventHandler(m_eventHandlerRef);
-        try {
+        try
+        {
             return handler.getClass().getName();
-        } finally {
+        }
+        finally
+        {
             m_handlerTasks.ungetEventHandler(handler, m_eventHandlerRef);
         }
     }
@@ -85,7 +89,7 @@ public class HandlerTaskImpl implements 
         try
         {
             handler.handleEvent(m_event);
-        } catch (Exception e)
+        } catch (Throwable e)
         {
             // The spec says that we must catch exceptions and log them:
             LogWrapper.getLogger().log(