cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aadamc...@apache.org
Subject svn commit: r1234971 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/event/DispatchQueue.java
Date Mon, 23 Jan 2012 20:26:41 GMT
Author: aadamchik
Date: Mon Jan 23 20:26:40 2012
New Revision: 1234971

URL: http://svn.apache.org/viewvc?rev=1234971&view=rev
Log:
CAY-957 Deadlock in nested contexts

preliminary refactoring, cleaning up duplicated code

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/event/DispatchQueue.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/event/DispatchQueue.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/event/DispatchQueue.java?rev=1234971&r1=1234970&r2=1234971&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/event/DispatchQueue.java
(original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/event/DispatchQueue.java
Mon Jan 23 20:26:40 2012
@@ -89,24 +89,11 @@ class DispatchQueue {
             return removeInvocations(invocationsForSender(sender, false), listener);
         }
 
-        boolean didRemove = false;
-
         // remove listener from all collections
-        didRemove = removeInvocations(subjectInvocations, listener);
+        boolean didRemove = removeInvocations(subjectInvocations, listener);
 
         for (Collection<Invocation> senderInvocations : invocationsBySender.values())
{
-            if (senderInvocations == null) {
-                continue;
-            }
-
-            Iterator<Invocation> it = senderInvocations.iterator();
-            while (it.hasNext()) {
-                Invocation invocation = it.next();
-                if (invocation.getTarget() == listener) {
-                    it.remove();
-                    didRemove = true;
-                }
-            }
+            didRemove = removeInvocations(senderInvocations, listener) || didRemove;
         }
 
         return didRemove;



Mime
View raw message