6989903: (process) test/java/lang/ProcessBuilder/Basic.java failing with "Bad file number" (sol)

Alan Bateman Alan.Bateman at oracle.com
Wed Oct 6 16:18:36 UTC 2010


The fix for 6981138 a few weeks ago added another test to 
test/java/lang/ProcessBuilder/Basic.java. That test is failing on 
Solaris because the asynchronous close of the stream connected to the 
child's stdout causes the reader thread to throw an IOException with an 
exception message that the test doesn't expect. In en.* locales, it 
assumes the exception message will be "Bad file descriptor" but it's 
actually "Bad file number" on Solaris. It's always fragile to have tests 
that look at the exception message and it is tempting to just remove 
these checks. However this test does go out of its way to catch any 
change in behavior so for now anyway, I just propose make it a bit less 
fussy.

Thanks,

-Alan.


diff -r b468b20a98a8 test/java/lang/ProcessBuilder/Basic.java
--- a/test/java/lang/ProcessBuilder/Basic.java  Tue Oct 05 15:07:40 2010 
+0100
+++ b/test/java/lang/ProcessBuilder/Basic.java  Wed Oct 06 12:25:25 2010 
+0100
@@ -1845,7 +1845,7 @@ public class Basic {
                         catch (IOException e) {
                             // e.printStackTrace();
                             if (EnglishUnix.is() &&
-                                ! (e.getMessage().matches(".*Bad file 
descriptor.*")))
+                                ! (e.getMessage().matches(".*Bad file.*")))
                                 unexpected(e);
                         }
                         catch (Throwable t) { unexpected(t); }}};



More information about the core-libs-dev mailing list