You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2008/03/22 19:07:23 UTC

svn commit: r640033 - /mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java

Author: trustin
Date: Sat Mar 22 11:07:23 2008
New Revision: 640033

URL: http://svn.apache.org/viewvc?rev=640033&view=rev
Log:
Fixed the same problem that calls wakeup() after disposal in AbstractPollingIoConnector

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java?rev=640033&r1=640032&r2=640033&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java Sat Mar 22 11:07:23 2008
@@ -62,11 +62,11 @@
 
     private AbstractPollingIoConnector(IoSessionConfig sessionConfig, Executor executor, IoProcessor<T> processor, boolean createdProcessor) {
         super(sessionConfig, executor);
-        
+
         if (processor == null) {
             throw new NullPointerException("processor");
         }
-        
+
         this.processor = processor;
         this.createdProcessor = createdProcessor;
 
@@ -292,7 +292,7 @@
                     }
                 }
             }
-            
+
             if (selectable && isDisposing()) {
                 selectable = false;
                 try {
@@ -301,7 +301,11 @@
                     }
                 } finally {
                     try {
-                        destroy();
+                        synchronized (disposalLock) {
+                            if (isDisposing()) {
+                                destroy();
+                            }
+                        }
                     } catch (Exception e) {
                         ExceptionMonitor.getInstance().exceptionCaught(e);
                     } finally {
@@ -339,7 +343,7 @@
         public IoSessionInitializer<? extends ConnectFuture> getSessionInitializer() {
             return sessionInitializer;
         }
-        
+
         @Override
         public void cancel() {
             super.cancel();