[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