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())