You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@etch.apache.org by sc...@apache.org on 2009/01/30 15:16:15 UTC

svn commit: r739287 - /incubator/etch/branches/release-1.0.2/util/src/main/java/etch/util/core/nio/Selector.java

Author: sccomer
Date: Fri Jan 30 14:16:14 2009
New Revision: 739287

URL: http://svn.apache.org/viewvc?rev=739287&view=rev
Log:
fix for selector under linux where it throws random file exists io exceptions.

Modified:
    incubator/etch/branches/release-1.0.2/util/src/main/java/etch/util/core/nio/Selector.java

Modified: incubator/etch/branches/release-1.0.2/util/src/main/java/etch/util/core/nio/Selector.java
URL: http://svn.apache.org/viewvc/incubator/etch/branches/release-1.0.2/util/src/main/java/etch/util/core/nio/Selector.java?rev=739287&r1=739286&r2=739287&view=diff
==============================================================================
--- incubator/etch/branches/release-1.0.2/util/src/main/java/etch/util/core/nio/Selector.java (original)
+++ incubator/etch/branches/release-1.0.2/util/src/main/java/etch/util/core/nio/Selector.java Fri Jan 30 14:16:14 2009
@@ -25,6 +25,7 @@
 import java.util.LinkedList;
 
 import etch.util.Assertion;
+//import etch.util.Log;
 
 /**
  * An experiment in selection.
@@ -81,9 +82,29 @@
 			while (selector.isOpen())
 			{
 				runActions();
-				
-				int n = selector.select();
-//				Log.report( "selected", "selector", this, "n", n );
+				int n;
+				while ( true )
+				{
+					try
+					{
+						n = selector.select();
+						break;
+					}
+					catch( IOException e )
+					{
+						// Workaround, see sun bug 6693490
+						//System.out.println("****** caught IOException");
+						if ( e.getMessage() != null && e.getMessage().indexOf("File exists") != -1 )
+						{
+							continue;
+						}
+						else
+							throw e;
+					}
+				}
+					
+//				}
+				//Log.report( "selected", "selector", this, "n", n );
 				if (n > 0)
 				{
 					for (SelectionKey key : selector.selectedKeys())