Re: Duplicate class definition

Jeroen Frijters <[email protected]> Fri, 18 Dec 2015 11:33:12 +0000
Newsgroups gmane.comp.java.ikvm.devel
Message-ID <[email protected]>
Hi Yves,

You can easily write a tool to list the duplicates to a file during your build process, so it's not that big a deal.

Compatibility means that there is a lot of weird Java code that expects weird things.

If you want to add a switch ikvmc, I'll certainly consider the patch if you submit it :-)

Regards,
Jeroen

> -----Original Message-----
> From: Yves Langisch [mailto:[email protected]]
> Sent: Friday, December 18, 2015 9:48
> To: Jeroen Frijters <[email protected]>; ikvm-developers <ikvm-
> [email protected]>
> Subject: Re: [Ikvm-developers] Duplicate class definition
> 
> Hi Jeroen,
> 
> What does compatibility mean? Since the set of duplicate classes is
> quite huge the exclude option is not a viable option for us.
> 
> Is there any chance to add an additional flag to ikvmc whether duplicate
> classes are included as resources or completely ignored?
> 
> Thanks
> Yves
> 
> On 17.12.2015 18:56, Jeroen Frijters wrote:
> > Hi Yves,
> >
> > The classes that it can't compile are included as resources (for
> compatibility). If you're willing to do the work, you can create a file
> listing the classes that should be excluded and pass it to the ikvmc -
> exclude:<filename> option.
> >
> > Regards,
> > Jeroen
> >
> >> -----Original Message-----
> >> From: Yves Langisch [mailto:[email protected]]
> >> Sent: Thursday, December 17, 2015 18:26
> >> To: Jeroen Frijters <[email protected]>; ikvm-developers <ikvm-
> >> [email protected]>
> >> Subject: Re: [Ikvm-developers] Duplicate class definition
> >>
> >> Hi Jeroen,
> >>
> >> Thanks a lot, that fixed the linkage error.
> >>
> >> Another issue in this scenario I have is that the secondly generated
> >> DLL
> >> (app.dll) which should only contain a few additional classes has at
> >> least the same size as the referenced core.dll (12MB). The jar set to
> >> convert is more or less the same for both DLLs (cannot easily changed
> >> due to our build process). For me it looks like the classes that
> >> ikvmc correctly claims as duplicates are still part of the resulting
> >> app.dll but not visible (at least invisible in the object browser).
> >>
> >> Any ideas?
> >>
> >> Thanks
> >> Yves
> >>
> >> On 16.11.2015 15:00, Jeroen Frijters wrote:
> >>> Hi,
> >>>
> >>> This is now fixed in cvs.
> >>>
> >>> Regards,
> >>> Jeroen
> >>>
> >>>> -----Original Message-----
> >>>> From: Yves Langisch [mailto:[email protected]]
> >>>> Sent: Friday, November 13, 2015 15:20
> >>>> To: ikvm-developers <[email protected]>
> >>>> Subject: [Ikvm-developers] Duplicate class definition
> >>>>
> >>>> Hi there,
> >>>>
> >>>> Sometimes during authentication in my application I get the
> >>>> following
> >>>> exception:
> >>>>
> >>>> Caused by: java.util.concurrent.ExecutionException:
> >>>> java.lang.LinkageError: duplicate class definition:
> >>>> com.jcraft.jsch.agentproxy.connector.PageantConnector$User32
> >>>> 	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> >>>> 	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
> >>>> 	...
> >>>> Caused by: java.lang.LinkageError: duplicate class definition:
> >>>> com.jcraft.jsch.agentproxy.connector.PageantConnector$User32
> >>>> 	at Java_java_lang_ClassLoader.defineClass1(Unknown Source)
> >>>> 	at IKVM.Internal.AssemblyClassLoader.DefineDynamic(Unknown Source)
> >>>> 	at IKVM.Internal.AssemblyClassLoader.LoadDynamic(Unknown Source)
> >>>> 	at IKVM.Internal.AssemblyClassLoader.LoadClassImpl(Unknown Source)
> >>>> 	at IKVM.Internal.ClassLoaderWrapper.LoadClass(Unknown Source)
> >>>> 	at IKVM.Runtime.ByteCodeHelper.LoadTypeWrapper(Unknown Source)
> >>>> 	at IKVM.Runtime.ByteCodeHelper.DynamicLoadMethodHandleImpl(Unknown
> >>>> Source)
> >>>> 	at IKVM.Runtime.ByteCodeHelper.DynamicBinderMemberLookup(Unknown
> >>>> Source)
> >>>> 	at
> >>>> com.jcraft.jsch.agentproxy.connector.PageantConnector.<init>(Pagean
> >>>> tC
> >>>> onn
> >>>> ector.java:57)
> >>>> 	…
> >>>>
> >>>> Background:
> >>>>
> >>>> * two relevant DLLs (app.dll, core.ll)
> >>>> * core.dll is an IKVM converted library containing many 3rd party
> >>>> Java jars
> >>>> * app.dll is converted with /reference:core.dll and contains most
> >>>> of the jars in core.dll already (and some more) -> conversion leads
> >>>> to duplicate class warnings
> >>>>
> >>>> As far as I can see there are no duplicate classes in both DLLs.
> >>>> Referring to the stack trace, PageantConnector is in core.dll, the
> >>>> User32 interface in app.dll, if this makes any difference.
> >>>>
> >>>> Any ideas? Thanks!
> >>>>
> >>>> -
> >>>> Yves
> >>>>
> >>>> -------------------------------------------------------------------
> >>>> --
> >>>> ---
> >>>> ------
> >>>> _______________________________________________
> >>>> Ikvm-developers mailing list
> >>>> [email protected]
> >>>> https://lists.sourceforge.net/lists/listinfo/ikvm-developers

------------------------------------------------------------------------------
_______________________________________________
Ikvm-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ikvm-developers