EVALUATION
There are several issues in the new plugin:
1. On the client jvm side, the installed jre list need be refreshed when it can not find matching jre version.
2. If after refreshing, a matching jre is found, which indicates there is a new jre installed, client vm need notify the browser side (server) jvm to refresh installed jre list as well. The browser side jvm then knows how to launch the newly install jre. This can be done through the existing applet relaunch mechanism by passing a jreInstalled flag.
3. The current JREInfo class seems having a bug that does not clear out staled jre entries. For example, uninstallation of 6u6 does not remove the 6u6 entry from the deployment.properties. When the browser side JVMManager is instantiated, it is supposed to scan system installed JREs and remove invalid entries. This does not happen. 6u6 entry is listed in JREInfo jres even it does not exist on the system. This causes confusion and fails to relaunch. To workaround it, launch java control panel to clean up deployment.properties after unstall 6u6.
|
|
|
EVALUATION
further investigation shows problem may be in new plugin.
When DT plugin installs new version, list of available JREs is not updated if new plugin is already loaded.
This may result in applet loading with 6u10, or prompting for download of 6u6, when it was just installed.
|
|
|
EVALUATION
<html>
<script src="http://java.com/js/deployJava.js"></script>
<h2> First runApplet using applet with specific targetVersion 1.6.0+</h2>
<script>
var attributes = {width:300, height:100} ;
var parameters = {jnlp_href: 'applet6u12.jnlp'} ;
deployJava.runApplet(attributes, parameters, '1.6.0');
</script>
<h2> Test runApplet using applet with specific targetVersion 1.6.0_06</h2>
<script>
var targetJRE = '1.6.0_06';
deployJava.returnPage = document.location;
if (!deployJava.versionCheck(targetJRE)) {
deployJava.installJRE(targetJRE);
}
var attributes = {width:300, height:100} ;
var parameters = {jnlp_href: 'applet6u6.jnlp'} ;
document.write('<h3>invoking runApplet with targetVersion ' + targetJRE + '<h3><br>');
deployJava.runApplet(attributes, parameters, '1.6.0');
</script>
</html>
If 6u6 and 6u12 are installed, it will run the applet first in 6u12, then in 6u6
If 6u6 is not installed, it will install it, then run the applet in 6u12. since the Java Plugin was initialized before 6u6 was installed.
|
|
|
EVALUATION
Can you include the full javascript you are using ? You do not show what you do after the install. Why do you use your own pattern matching instead of just calling deployJava.versionCheck(targetJRE) ?
For both IE and FF this is working for me:
if (!deployJava.versionCheck(targetJRE)) {
deployJava.installJRE(targetJRE);
}
deployJava.runApplet(...)
This is assuming the applet is configured to static version to targetJRE, the result should be running applet with latest java plugin (6u10 in your case) and targetJRE (6u6 in your case).
/Andy
|
|
|
|