|
|
|
Re: WebStart Java 7 update 71 72 [message #1446228 is a reply to message #1446155] |
Thu, 16 October 2014 14:28 |
Dieter Cailliau Messages: 10 Registered: July 2009 |
Junior Member |
|
|
It works for me (passing the property name="osgi.parentClassloader" value="current") - tried eclipse 3.7.2 with java7u71 - not using a signed jnlp nor template, setting securty to 'medium'.
You're right about the problem that jnlp properties need to start with "jnlp.": a solution for that has been described: it consists of making a wrapper like this
public class WrapperMain {
public static void main(String... args) {
java.util.Properties props = System.getProperties();
for (String key : props.stringPropertyNames()) {
if (key.startsWith("jnlp.")) {
System.setProperty(key.substring(5), props.getProperty(key));
}
}
org.eclipse.equinox.launcher.WebStartMain.main(args);
}
}
and prefixing all your properties...
<property name="jnlp.osgi.parentClassloader" value="current"/>
and invoke this one as your main class...
<application-desc main-class="com.yourcompany.WrapperMain">
<argument>-nosplash</argument>
</application-desc>
[Updated on: Thu, 16 October 2014 14:30] Report message to a moderator
|
|
|
|
Re: WebStart Java 7 update 71 72 [message #1447133 is a reply to message #1445462] |
Fri, 17 October 2014 21:15 |
Barry Kleinman Messages: 2 Registered: October 2014 |
Junior Member |
|
|
Unfortunately, setting the (jnlp.)osgi.parentClassLoader property didn't work for me. It did cause a change in the launching process, but it didn't fix it.
Without it I saw an AccessControlException in the web start trace, caused by EclipseLog.checkLogFileSize. With the property set, there are no errors in the web start trace, but now there's a ClassCircularityError on /org/eclipse/osgi/framework/util/SecureAction$19 in the eclipse log. The attempt to instantiate the class comes from org.eclipse.osgi.framework.internal.protocol.StreamHandlerFactory.createURLStreamHandler (StreamHandlerFactory.java:102). I'm using Eclipse 3.7 jars.
Right now the only "fix" for the problem I can give my customers is to have them uninstall any Java 7 or Java 8 JREs and (re)install Java 7 update 67. That release works with or without the parentClassLoader property. Of course, it exposes customers to the security holes Oracle supposedly patched in 7u71 and 8u25, but our product is generally used behind a firewall. We sign our jars properly so our customers can use the "Very High" security setting in Java 7 update 67 or Java 8 update 11.
This is the fourth Oracle update in two years that has broken our WebStart-based application. Management is now thinking of abandoning WebStart and perhaps even the OSGi platform in favor of a monolithic application with a bundled JRE that we'd require customers to distribute, configure, and install. That would be painful, but Oracle obviously doesn't care about automatically pushing out incompatible Java updates. I understand the need for security patches, but Oracle should at least provide a backward-compatibility option that customers can use at their own risk.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: WebStart Java 7 update 71 72 [message #1476990 is a reply to message #1473408] |
Mon, 17 November 2014 14:25 |
Shaun Galey Messages: 16 Registered: July 2009 |
Junior Member |
|
|
Is it impossible to pass this as an argument to the launcher itself inside the jnlp?
<application-desc main-class="org.eclipse.equinox.launcher.WebStartMain">
<argument>-nosplash</argument>
<argument>-product</argument>
<argument>org.product</argument>
<argument>-data</argument>
<argument>@user.home/Application Data/product</argument>
<argument>-dev</argument>
<argument>@user.home/Application Data/product</argument>
</application-desc>
I used this method in previous java updates, will this not work in this instance?
Aren't we essentially doing this? We just want to pass in the argument for eclipse.security......or is it because this eclipse.security parameter isn't for the equinox launcher but for the jvm itself?
As a trial, I have added a wrapper class using code provided above to my main plugin that launches on the client side through the jnlp. The issue with that is I don't have (org.eclipse.equinox) as a jar on that plugin build classpath. This prevents me from building the client plugin. Equinox is called from the jnlp but not built with the plugin. If I place equinox on the classpath of the plugin through a lib add, won't that affect the classpath of the jnlp launch?
[Updated on: Mon, 17 November 2014 14:53] Report message to a moderator
|
|
|
|
|
|