Name: gm110360 Date: 12/23/2003
FULL PRODUCT VERSION :
Java Plug-in 1.4.2
Default virtual machine: 1.4.2-b28
FULL OS VERSION :
EXTRA RELEVANT SYSTEM CONFIGURATION :
Internet Explorer 5.50
Server is an industrial unit embedded by a simple HTTP server
A DESCRIPTION OF THE PROBLEM :
The size of JAR file is 281kb.
Java Plug-in VM tries to load this JAR, but my server DOES NOT return the HTTP header 'last-modified' for the file, then the Plug-in retries to load the JAR file (opens the 2nd socket), leaving the first socket connection open; while the server attempts to send the whole JAR, the client's TCP window gets smaller as it receives data until the window becomes zero. (The first window size was 64kb for my PC) At this time, the server asks if the TCP window is recovered by sending 1-byte data repeatedly (the interval varies from 5 sec to 1 min). This is the cause of slow download. However, finally, the CLIENT (Plug-in VM or WinSock?) sends TCP FIN to close the connection. After this, the second socket starts to receive the JAR file (and the applet works normally).
If you disable the applet caching on the Java Plug-in control panel, this does not occur.
EXPECTED VERSUS ACTUAL BEHAVIOR :
(1) Close the first socket immediately when HTTP headers have
(2) Or, no need to retry to download the JAR file.
Just donwload it one time and make no caching.
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
Disable the applet caching, but this is not practical for users.
(Incident Review ID: 207739)