Applet modularity

User 4e4b708dbd

15-06-2010 13:28:10

I am not a big fan of recent changes in Marvin. So it has become modular and through that loads on websites a little faster the first time. I guess that was necessary as the applet is growing bigger and bigger and light version has been scrapped. I regularly use several websites that have implemented the applet. As more and more versions change (not everybody updates immediately to the newest version) eventually comes a day when the applet won't load at all. Perhaps you enjoy explaining to your users how to clear Java cache. I personally don't. Some less proficient computer users are very reluctant to do that. But thanks for that sticky forum post! 


But somehow the latest update is particularly bad. On some computers the website with the applet loads and then none of the manu work. On others all works just fine. On most all manu are shown but some commands won't work - click and nothing happens. There are computers on which some many are shown in full and work while clicking on others does nothing. Sometimes opening another browser prompts a tiny "module loading" window and then the menu works in all browsers. But sometimes the Java cache has to be cleared to load a new copies of applet files. I've seen this module loading issue on every other computer I've tried.


This is a mess. While the applet might be becoming a little bit faster, these usability issues are far worse. It feels like the applet development for the web use is going in the wrong direction.


Sticky forum help posts are very welcome and even more are needed. But it would be even better if there would be no need for these posts.

ChemAxon 990acf0dec

15-06-2010 15:42:41

Hi,


I'm sorry to hear that you faced several issues regarding the applet lately. It would be very important to know what are these issues exactly, to be able to act on the ASAP. Please, if you have time, report these issues one by one to us, either on the forum, or - if it is confidential - by email to support _at_ chemaxon.com.


Although we have already made a lot of efforts to speed up the loading of MSketch applet, the majority of it was made not by modularization. The Marvin modularization is under development, and the results will be released probably in two steps in the next two major releases. (BTW, the "Module is loading.." dialog is displayed only if the downloading of a module takes too much time, and was introduced on the request of clients who have users accessing the applets through low bandwidth connections.)


I guess most of the issues you faced are related to the different JRE versions on the different computers, and most probably the known security concepts introduced in JRE 1.6.0_19 and 20. In the last release we have already implemented some workarounds to avoid these problems caused by the new java plugins, but these workarounds didn't solve all of the issues perfectly. Version 5.3.4 (to be released today) is much better, and hopefully most of the issues you faced are already solved, but still, it would be important to investigate your issues in detail.


Thank you and best regards,


Akos

User 4e4b708dbd

16-06-2010 06:55:59

Well, I call it a modularity issue because of the module loading window. 


What I see often is that either none of the menu work, some menu work while others don't or even a situations when menu open but some commands don't work. Menu shourtucts in these cases don't work either. To eliminate implementation errors I've started to test these issues on your example website. And your test site has exactly the same issues. Just go to random computers, load your test page and test all menus and commands and you will discover that a significant portion will have at least some issues.


To fix this I've got to either:



Once fixed there are usually no problems more issues with the applet on a particular computer. But on a PC I am currently using Paste function on your example page won't work even though I am 99% sure it worked about a week ago.


I've noticed this issue mainly with the 5.3.3 version.

ChemAxon 990acf0dec

16-06-2010 13:22:47

Thank you for the further details. We will try to reproduce it.


Just two questions if I may have:


- What was the version previously used (before 5.3.3) on the computers you faced the non-working menus?


- Which browser did you use? (Please indicate the version number as well; thanks.)


Best regards,


Akos

User 4e4b708dbd

16-06-2010 14:22:11

I've seen it on Chrome, Firefox, IE7 and IE8 and many computers each with it's own "history" of previous applets. All computers have been fixed, Java cache and history cleared in the fixing process - so I can't give you as detailed information as you hope to see.


Even before 5.3.3 version as more and more different versions of the applet would be used on the same computer eventually a day comes when at least one of them will not open and Java cache needs to be cleared. And it appears that you aware of this issue since you have a sticky post about how to clear it. Tthe menu loading problem I've observed only in 5.3.3 version. However, I've not tested/used some of the previous versions between 5.2.2 and 5.3.3.

User 4e4b708dbd

16-06-2010 14:54:15

 


Java Plug-in 1.6.0_20


Using JRE version 1.6.0_20-b02 Java HotSpot(TM) Client VM


User home directory = xxxxx


----------------------------------------------------


c:   clear console window


f:   finalize objects on finalization queue


g:   garbage collect


h:   display this help message


l:   dump classloader list


m:   print memory usage


o:   trigger logging


q:   hide console


r:   reload policy configuration


s:   dump system and deployment properties


t:   dump thread list


v:   dump thread stack


x:   clear classloader cache


0-5: set trace level to <n>


----------------------------------------------------


 


 


java.lang.NullPointerException


at sun.plugin2.applet.Applet2Manager$1.run(Unknown Source)


at java.lang.Thread.run(Unknown Source)


java.lang.RuntimeException: ERROR: Failed to recover corrupt cache entry


at com.sun.deploy.cache.CacheEntry.recover(Unknown Source)


at com.sun.deploy.cache.CacheEntry.getManifest(Unknown Source)


at com.sun.deploy.cache.CachedJarFile.getManifest(Unknown Source)


at com.sun.deploy.security.CPCallbackHandler.hasTrustedLibraryAssertion(Unknown Source)


at com.sun.deploy.security.CPCallbackHandler.access$300(Unknown Source)


at com.sun.deploy.security.CPCallbackHandler$ParentCallback.strategy(Unknown Source)


at com.sun.deploy.security.CPCallbackHandler$ParentCallback.openClassPathElement(Unknown Source)


at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)


at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$700(Unknown Source)


at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)


at java.security.AccessController.doPrivileged(Native Method)


at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)


at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)


at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)


at java.security.AccessController.doPrivileged(Native Method)


at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)


at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)


at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)


at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)


at java.security.AccessController.doPrivileged(Native Method)


at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)


at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)


at java.lang.ClassLoader.loadClass(Unknown Source)


at java.lang.ClassLoader.loadClass(Unknown Source)


at java.lang.ClassLoader.loadClass(Unknown Source)


at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)


at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)


at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)


at java.lang.Thread.run(Unknown Source)


Exception: java.lang.RuntimeException: ERROR: Failed to recover corrupt cache entry



 

ChemAxon 7c2d26e5cf

24-06-2010 23:13:45

We have managed to reproduce a NullPointerException by applet loading. We assume that it is the same than yours.


We have fixed it. New hotfix release (5.3.5) wil include it that is going to be available in a couple of days.