Hi,

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]

Reply via email to