Name: gm110360 Date: 01/20/2004
FULL PRODUCT VERSION :
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)
FULL OS VERSION :
Microsoft Windows 2000 [Version 5.00.2195]
EXTRA RELEVANT SYSTEM CONFIGURATION :
Not webserver dependent, tested on IIS and iPlanet
A DESCRIPTION OF THE PROBLEM :
There is currently no way to tell the plugin to restrict loading of resources to files specified in the <cache_archive> tag. The result of this is that in internationalized applications where a resource bundle for a particular locale does not exist, the plugin wastes a lot of time going back to the web-server to hunt for it. The fact that these lookups happen in sequence causes massive delays in high-latency environments.
You could argue to not use resource bundles in such environments : however, there's no control over when third-party libraries do.
There should be a <cache_option> value="Plugin_Only" or some equivalent to tell the plugin only to load files specified in the <cache_archive> tag and not even
try to get resources on a file-by-file basis.
For example, here is some output I got from my plugin :
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule.class with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule.class with cookie "cookielist...."
WARNING: Unable to cache http://myserver.com/appName/java/com/x/y/resources/schedule.class
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule.class with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule.class with cookie "cookielist...."
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en.class with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en.class with cookie "cookielist...."
WARNING: Unable to cache http://myserver.com/appName/java/com/x/y/resources/schedule_en.class
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en.class with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en.class with cookie "cookielist...."
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en.properties with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en.properties with cookie "cookielist...."
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en_US.class with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en_US.class with cookie "cookielist...."
WARNING: Unable to cache http://myserver.com/appName/java/com/x/y/resources/schedule_en_US.class
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en_US.class with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en_US.class with cookie "cookielist...."
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en_US.properties with proxy=myproxy:8080
Connecting http://myserver.com/appName/java/com/x/y/resources/schedule_en_US.properties with cookie "cookielist...."
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Use any applet that uses ResourceBundle.getBundle(name, locale) without including the resources for that locale in the archive. Turn on plugin tracing
ACTUAL -
Multiple requests to the web-server for non-existent resource bundles
REPRODUCIBILITY :
This bug can be reproduced always.
(Incident Review ID: 208135)
======================================================================