Re-signed jogl files cause Exception 3.2.3 JChem Base

User 2082812c83

06-02-2007 20:46:11

Hi,





In order to prepare the jogl files that come as part of JChem Base 3.2.3 for deployment via Java Web Start I need to sign them with our certificate.





I have tried doing this two ways





1. Unjar jogl.jar. Remove the CHEMAXON specific certs and edit the MANIFEST.MF to no longer have signing information. Then jar the files back up and sign with my certificate. I repeated this process for the windows jogl-natives-windows-i586.jar file as well as that is the platform I am testing on.





2. Unjar as in step 1 then delete the META-INF directory. Jar it back up and then sign using my certificate. Again I repeated this process for the jogl-natives-windows-i586.jar native windows jar file.





In either case when I try to run the logD property calculator (or any calculator that makes use of Marvin Space for that matter) from within my Web Start application I get the following exception AND my whole application exits after I click on the popup that is presented to tell me Marvin had trouble locating jogl:





Implementation version could not be determined. (Probably jogl.jar is not in the classpath, or older version found.)


java.lang.Exception: Implementation version could not be determined. (Probably jogl.jar is not in the classpath, or older version found.)


at chemaxon.marvin.space.MSpaceInstaller.error(MSpaceInstaller.java:155)


at chemaxon.marvin.space.MSpaceInstaller.<init>(MSpaceInstaller.java:132)


at chemaxon.marvin.space.MSpaceEasy.install(MSpaceEasy.java:153)


at chemaxon.marvin.space.MSpaceEasy.<init>(MSpaceEasy.java:116)


at chemaxon.marvin.space.MSpacePluginDisplay.getMSpaceFrame(MSpacePluginDisplay.java:222)


at chemaxon.marvin.space.MSpacePluginDisplay.getMSpaceFrame(MSpacePluginDisplay.java:212)


at chemaxon.marvin.space.MSpacePluginDisplay.get(MSpacePluginDisplay.java:290)


at chemaxon.marvin.space.MSpacePluginDisplay.callback(MSpacePluginDisplay.java:90)


at chemaxon.marvin.plugin.CalculatorPluginDisplay.createSpaceFrame(CalculatorPluginDisplay.java:655)


at chemaxon.marvin.plugin.CalculatorPluginDisplay.getResultComponent(CalculatorPluginDisplay.java:341)


at chemaxon.marvin.plugin.CalculatorPluginManager.displayResult(CalculatorPluginManager.java:179)


at chemaxon.marvin.plugin.CalculatorPluginManager.runPlugin(CalculatorPluginManager.java:155)


at chemaxon.marvin.plugin.CalculatorPluginManager.runPlugin(CalculatorPluginManager.java:108)


at chemaxon.marvin.plugin.CalculatorPluginManager.callback(CalculatorPluginManager.java:73)


at chemaxon.marvin.plugin.PluginManager.callback(PluginManager.java:87)


at chemaxon.marvin.common.swing.MolPanel.run(MolPanel.java:2494)


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


java.lang.Exception: Implementation version could not be determined. (Probably jogl.jar is not in the classpath, or older version found.)


at chemaxon.marvin.space.MSpaceInstaller.error(MSpaceInstaller.java:155)


at chemaxon.marvin.space.MSpaceInstaller.<init>(MSpaceInstaller.java:132)


at chemaxon.marvin.space.MSpaceEasy.install(MSpaceEasy.java:153)


at chemaxon.marvin.space.MSpaceEasy.<init>(MSpaceEasy.java:116)


at chemaxon.marvin.space.MSpacePluginDisplay.getMSpaceFrame(MSpacePluginDisplay.java:222)


at chemaxon.marvin.space.MSpacePluginDisplay.getMSpaceFrame(MSpacePluginDisplay.java:212)


at chemaxon.marvin.space.MSpacePluginDisplay.get(MSpacePluginDisplay.java:290)


at chemaxon.marvin.space.MSpacePluginDisplay.callback(MSpacePluginDisplay.java:90)


at chemaxon.marvin.plugin.CalculatorPluginDisplay.createSpaceFrame(CalculatorPluginDisplay.java:655)


at chemaxon.marvin.plugin.CalculatorPluginDisplay.getResultComponent(CalculatorPluginDisplay.java:341)


at chemaxon.marvin.plugin.CalculatorPluginManager.displayResult(CalculatorPluginManager.java:179)


at chemaxon.marvin.plugin.CalculatorPluginManager.runPlugin(CalculatorPluginManager.java:155)


at chemaxon.marvin.plugin.CalculatorPluginManager.runPlugin(CalculatorPluginManager.java:108)


at chemaxon.marvin.plugin.CalculatorPluginManager.callback(CalculatorPluginManager.java:73)


at chemaxon.marvin.plugin.PluginManager.callback(PluginManager.java:87)


at chemaxon.marvin.common.swing.MolPanel.run(MolPanel.java:2494)


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





It is interesting to note that once I have re-signed the jogl jar files I still get this exception even when running from within my development environment in Eclipse.





The only way I am able to run the property calculators that make use of Marvin Space is if I run from within my development environment in eclipse using the jars as provided (and signed) by ChemAxon.





I dont see why my re-signing of the jars should be causing an exception to occur when running in either standalone (from within Eclipse) or WebStart mode.





Any ideas?





Thanks,





James

ChemAxon 909aee4527

07-02-2007 15:39:13

Hi James,





resigning the jar files should not cause a problem.





If you don't mind, let's concentrate on the developer environment first.


This error message can appear in two cases. To prevent them, please make sure the jogl.jar file is in the classpath, and there is no other jogl.jar file in your classpath by chance.


(The native jar file is not necessary to be in your classpath, the mspace installer will search it in the jogl_1.0.0 directory.)





If the signing caused the problem, I think the error message would be a SecurityException.


Btw we have an unsigner script, but it can only be used on linux. If you can use it, or you could use an extra info about unsigning, please visit this forum topic.





I hope it won't be a trouble, please report back.


Judit

User 2082812c83

09-02-2007 14:20:27

Hi Judit,





Like I said in my original posting I am able to run fine from within my development environment as long as I use the jar files as supplied with JChem Base 3.2.3, that is signed by ChemAxon.





When things are working jogl.jar is in my classpath only once (I double checked this) and the native jar is NOT in my classpath but rather is sitting in the jogl_1.0.0 sub directory of the location of jogl.jar.





However once I unsign jogl.jar and the corresponding native jar for windows, then sign them again with my certificate I can no longer run the property calculators that make use of Marvin Space from within the exact same development environment. I do not make any other changes between tests so I dont see how it coud be anything other than the resigning of the jogl.jar and jogl-natives-windows-i586.jar jar files that is causing the exception?





Perhaps there is a SecurityException being thrown but I dont see it in the message I receive so I suppose it is possible that the ChemAxon code is catching the exception and throwing it as the message I eventually see.





I looked at the forum link you sent that discusses re-signing jars. I had seen this before when searching for a solution to the problem before posting a new topic. I did not find anything in the description provided in that forum response to indicate I am doing anything different / wrong when re-signing the jogl.jar and jogl-natives-windows-i586.jar files.





Any other ideas?





Thanks,





James

ChemAxon 909aee4527

09-02-2007 15:53:02

Hi James,





thank you for checking. I'll try to reproduce and investigate it, and get back soon.





Judit

ChemAxon 909aee4527

13-02-2007 13:55:58

Hi James,





could you please check if the following line is in the META-INF/MANIFEST.MF file of your resigned jogl.jar:


Implementation-Version: 1.0.0





If this information is lost somehow, that will surely cause this exception.





I ask it because you've written 2 possible ways of unsigning. The second step you mentioned deletes this essential information.





Judit