I'm currently using commons-validator 1.1.1 in a Java Web Start client bundled with jre 1.4.2.
Whenever using a JNLP file to download the application, commons-validator hangs in ValidatorAction class and to be more precise, it hangs in readJavascriptFile method.
Debugging that method I found a while loop that reads a javascript resource based on InputStream.available() and InputStream.read() methods.
It seems that inside a Web Start environment, available() method always returns a positive number while read() method is returning a negative number (-1) which leads to a infinite loop.
That doesn't happen using a regular jar or class file to kick off the application. I really don't know why this happens in Web Start environment but either way, I've listened that InputStream.available() is not a very trusted method. Does it make sense?
I've also downloaded commons-validator 1.1.2 but it has the same issue.
I've also tested Java Web Start bundled with jre 1.5 beta - it does not hang in this environment.
Anyway, I'm attaching a patch to work around this issue.
Mike
--
---------------------------------------------------------------------- Liaw Mike Djoesman - Summa Technologies do Brasil Ltda. email: [EMAIL PROTECTED] tel.: (55 11) 3846-1622 cel.: (55 11) 8133-6594 ----------------------------------------------------------------------
Index: ValidatorAction.java
===================================================================
RCS file:
/db/public/cvsroot/commons-validator/src/share/org/apache/commons/validator/ValidatorAction.java,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 ValidatorAction.java
--- ValidatorAction.java 6 Apr 2004 16:54:46 -0000 1.1.1.1
+++ ValidatorAction.java 6 Apr 2004 17:25:36 -0000
@@ -455,6 +455,10 @@
String functionPart = new String(buffer,0,bytesRead);
function.append(functionPart);
}
+ else if (bufferSize > 0) {
+ log.debug(" Unable to load javascript name "+javascriptFileName);
+ return null;
+ }
bufferSize = is.available();
}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
