[icedtea-web] fails to build with an older netx.jar on the path
Omair Majid
omajid at redhat.com
Wed Nov 24 14:12:42 PST 2010
On 11/24/2010 05:02 PM, Dr Andrew John Hughes wrote:
> On 16:04 Wed 24 Nov , Omair Majid wrote:
>> On 11/24/2010 03:59 PM, Dr Andrew John Hughes wrote:
>>> On 12:25 Wed 24 Nov , Omair Majid wrote:
>>>> On 11/24/2010 08:16 AM, Matthias Klose wrote:
>>>>> I had an older ./usr/lib/jvm/java-6-openjdk/jre/lib/netx.jar
>>>>> installed on the system, then the build fails with:
>>>>>
>>>>> /scratch/packages/openjdk/web/icedtea-web-1.0~20101124/build/../plugin/icedteanp/java/sun/applet/PluginMain.java:126:
>>>>> cannot find symbol
>>>>> symbol : method setRedirectStreams(boolean)
>>>>> location: class net.sourceforge.jnlp.runtime.JNLPRuntime
>>>>> JNLPRuntime.setRedirectStreams(redirectStreams);
>>>>> ^
>>>>> /scratch/packages/openjdk/web/icedtea-web-1.0~20101124/build/../plugin/icedteanp/java/sun/applet/PluginMain.java:203:
>>>>> cannot find symbol
>>>>> symbol : method getConfiguration()
>>>>> location: class net.sourceforge.jnlp.runtime.JNLPRuntime
>>>>> boolean installAuthenticator =
>>>>> Boolean.valueOf(JNLPRuntime.getConfiguration()
>>>>> ^
>>>>>
>>>>> looks like the -bootclasspath needs to be set to find the current netx.
>>>>>
>>>>
>>>> The netx build sets the bootclasspath correctly, the attached patch does
>>>> it for the plugin. Does this fix the issue?
>>>>
>>>> Thanks,
>>>> Omair
>>>
>>>> diff -r 476a91d02140 Makefile.am
>>>> --- a/Makefile.am Wed Nov 24 10:55:50 2010 -0500
>>>> +++ b/Makefile.am Wed Nov 24 12:20:07 2010 -0500
>>>> @@ -186,6 +186,7 @@
>>>> $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
>>>> -d $(abs_top_builddir)/liveconnect \
>>>> -classpath $(NETX_DIR):$(RUNTIME) \
>>>> + -bootclasspath $(RUNTIME) \
>>>> -sourcepath $(LIVECONNECT_SRCS) \
>>>> @liveconnect-source-files.txt ; \
>>>> fi
>>>
>>> I guess it will, but I'm not sure how far we can support such scenarios. There's
>>> obviously no way around the fact that NetX and the plugin are in rt.jar for 1.7& 1.8.
>>>
>>> The recommended solution is to rebuild with the old plugin and webstart disabled.
>>
>> I agree, but the original email is about an older netx.jar. If
>> icedtea-web has been installed into a JDK, that JDK is used to build the
>> plugin and the version of plugin being built expects a slightly
>> different netx api, then it will fail with these exceptions. I have seen
>> them a number of times myself while working on netx code.
>>
>
> Same point. It just means it's 1.9 rather than 1.7 or 1.8.
>
> The patch looks ok to go in. The point I was making is that if people want to use
> IcedTea-Web, they're going to need to disable the older version in 1.7, 1.8 and 1.9.
> That's what we just added --disable-webstart for.
>
This applies to 1.10 too. If you build IcedTea-Web, then install it into
that 1.10 build and then use that 1.10 build to build a new version of
IcedTea-Web with a slightly different API, you run into this exception.
This problem will not go away once everyone moves past 1.9.
> On the subject of netx.jar; do these really need to be patched into the bootclasspath
> in HotSpot (as is currently the case)? Could they not be installed in the endorsed
> directories without needing to patch? That incidentally would also solve this
> issue properly.
Good point. I know it is certainly possible to avoid changing
bootclasspath - we dont see deploy.jar in the bootclasspath for Oracle's
JDK. Perhaps we can simply add netx/plugin to the bootclasspath in
launcher(s). I will investigate this further.
Cheers,
Omair
More information about the distro-pkg-dev
mailing list