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(