users@glassfish.java.net

LinkageError: duplicate className when deploying Rails using jdk6u18 on gf v3 (was Re: Problem with deploy JRuby application (redmine) to glassfish v3)

From: Vivek Pandey <Vivek.Pandey_at_Sun.COM>
Date: Sat, 16 Jan 2010 14:15:27 -0800

glassfish_at_javadesktop.org wrote:
> I finally got it all working.
>
> jdk6u18 really doesn't play well with jruby and/or glassfish v3. when I downgraded to jdk6u17 everything started working as expected.
>
> I have no clue what could be the problem with u18 or how to debug it.
>
>

`require_frameworks': library `socket' could not be loaded:
java.lang.LinkageError: loader (instance of java/net/URLClassLoader):
attempted duplicate class definition for name:
"org/jruby/ext/socket/RubySocket"

Looks like there is some change in URLClassLoaded in jdk6 u18 which is
causing the LinkageError. My hunch is that its some kind of race
condition, maybe multiple threads are trying to load RubySocket and the
class loader is URLClassLoader or maybe OSGi class loader has already
loaded it and then URLClassLoader tries to load it as well.

I see glassfish gem 1.0.2 works just fine as well as WebRick on
jdk6u18. GlassFish gem has similar path expcet it does not have osgi
runtime. So its probably GlassFish v3/osgi and jdk6u18 causing this.

I have anyway posted a message to user_at_jruby mailng list.
> What do you suggest I do besides posting a bug report for jdk with description "jdk 6u18 breaks jruby on rails applications deployed on glassfish v3"?
>

Yes this is fine but perhaps more specific such as
"LinkageError:duplciate class name from URLClassLoader on GlassFish
v3+jruby on jdk6u18"

Please also open an issue on glassfish as well.

thanks,

-vivek.
> [Message sent by forum member 'iminar' (iiminar_at_gmail.com)]
>
> http://forums.java.net/jive/thread.jspa?messageID=381307
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>