Re: IKVM.NET with Spring
Volker Berlin <[email protected]> Tue, 22 Nov 2016 15:35:40 +0100
| Newsgroups | gmane.comp.java.ikvm.devel |
|---|---|
| Message-ID | <[email protected]> |
--===============3925417027579232795== Content-Type: multipart/alternative; boundary="------------AF79B74E4057EF9397D88E30" --------------AF79B74E4057EF9397D88E30 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Paul, Do you have a .NET client which contains Java class resources on the classpath? The problem is that the IKVM compiler will remove all class files. The compiler can not detect that you want not execute this classes and want send it to a server. My suggestion is to pack the classes for the server in a zip file and add this zip file to your jar. Or simple rename the extension of the class file. Then the IKVM compiler will handle it as resources. On the way to send executable code from the client to the server is a very bad practice. This sounds like a very large security hole. Volker Am 22.11.2016 um 14:43 schrieb Paul Chambre: > This isn't for use at the client side. This is to upload classes from > the client to the server to use at the server side... The server is, > and will always be, a Java process. > > On Tue, Nov 22, 2016 at 2:25 AM, Volker Berlin > <[email protected] <mailto:[email protected]>> wrote: > > Hi Paul, > > What do you want do? There does not exists Java classes in the > .NET world. Your Java classes was compiled to .NET IL code. > > Volker > > > Am 21.11.2016 um 18:25 schrieb Paul Chambre: >> Hi Volker, >> >> This sounds similar to something I am seeing. In our app, we >> sometimes push updated classes to a server. This does not work >> from the ikvmc DLL. I had thought it might be another pathing >> issue, but it sounds more like what you're mentioning here. >> >> This is how we are loading class definitions for packaging and pus= h: >> >> InputStream inStream =3D classLoader.getResourceAsStream(path); >> Am I correct in understanding that we'll need to use a more >> generic file stream, instead, to load the classes under IKVM? >> Thanks, Paul >> On Mon, Nov 21, 2016 at 5:06 AM, Volker Berlin >> <[email protected] <mailto:[email protected]>> wrote: >> >> It look like that your framework try to access the stream of >> com.datastax.driver.core.Cluster$Builder.class. Because class >> resources are not available IKVM that it try to generate a >> stub of the stream which is failing. If this is the case then >> it look like a bug in IKVM. >> >> Which version of IKVM do you use? >> >> Volker >> Am 18.11.2016 um 17:58 schrieb [email protected] >> <mailto:[email protected]>: >>> >>> Hi folks, >>> >>> =20 >>> >>> I am looking for help on using IKVM with the spring >>> framework. We are using the =E2=80=98one large DLL=E2=80=99 s= olution to >>> compile a large number of our libraries. We recently added >>> the spring framework to these. >>> >>> =20 >>> >>> Compiling everything together with ikvmc works but on >>> initialization of the spring framework, the ikvm class >>> loader behaves differently than the class loader of the >>> standard JVM. The class loader of the standard JVM tolerates >>> that some extensions of the spring framework are missing, >>> whereas the ikvm class loader throws an exception: >>> >>> =20 >>> >>> "ClassNotFoundException: >>> com.datastax.driver.core.Cluster$Builder\r\n at >>> IKVM.Internal.ClassLoaderWrapper.LoadClass(String name, >>> LoadMode mode)\r\n at >>> IKVM.Internal.ClassLoaderWrapper.LoadClassByDottedName(String= >>> name)\r\n at >>> IKVM.Internal.CompiledTypeWrapper.get_InnerClasses()\r\n =20 >>> at IKVM.StubGen.StubGenerator.WriteClass(Stream stream, >>> TypeWrapper tw, Boolean includeNonPublicInterfaces, Boolean >>> includeNonPublicMembers, Boolean includeSerialVersionUID, >>> Boolean includeParameterNames)\r\n at >>> IKVM.Internal.VirtualFileSystem.VfsAssemblyClass.Populate()\r= \n =20 >>> at >>> IKVM.Internal.VirtualFileSystem.VfsAssemblyClass.Open()\r\n = >>> at IKVM.Internal.VirtualFileSystem.Open(String name, >>> FileMode fileMode, FileAccess fileAccess)\r\n at >>> Java_java_io_FileDescriptor.open(String name, FileMode >>> fileMode, FileAccess fileAccess)\r\n at >>> java.io.FileDescriptor.open(String , FileMode , FileAccess >>> )\r\n at java.io.FileDescriptor.open(String , Int32 , >>> Int32 )\r\n at java.io.FileDescriptor.openReadOnly(String >>> )\r\n at Ja >>> >>> va_java_io_FileInputStream.open0(Object _this, String name, >>> FileDescriptor fd)\r\n at >>> java.io.FileInputStream.open0(String )\r\n at >>> java.io.FileInputStream.open(String )\r\n at >>> java.io.FileInputStream..ctor(File file)\r\n at >>> java.util.zip.ClassStubZipEntry.getInputStream()\r\n at >>> java.util.zip.ZipFile.getInputStream(ZipEntry entry)\r\n =20 >>> at java.util.jar.JarFile.getInputStream(ZipEntry ze)\r\n =20 >>> at >>> sun.net.www.protocol.jar.JarURLConnection.getInputStream()\r\= n =20 >>> at java.net.URLClassLoader.getResourceAsStream(String >>> name)\r\n at org.springframework.core.io >>> <http://org.springframework.core.io>.ClassPathResource.getInp= utStream() >>> in ClassPathResource.java:line 166\r\n at >>> org.springframework.core.type.classreading.SimpleMetadataRead= er..ctor(Resource >>> resource, ClassLoader classLoader) in >>> SimpleMetadataReader.java:line 50\r\n at >>> org.springframework.core.type.classreading.SimpleMetadataRead= erFactory.getMetadataReader(Resource >>> resource) in SimpleMetadataReaderFactory.java:line 98\r\n =20 >>> at org.springframework.boot.type.classreading.Concurre >>> >>> ntReferenceCachingMetadataReaderFactory.createMetadataReader(= Resource >>> resource) in >>> ConcurrentReferenceCachingMetadataReaderFactory.java:line >>> 89\r\n at >>> org.springframework.boot.type.classreading.ConcurrentReferenc= eCachingMetadataReaderFactory.getMetadataReader(Resource >>> resource) in >>> ConcurrentReferenceCachingMetadataReaderFactory.java:line >>> 76\r\n at >>> org.springframework.core.type.classreading.SimpleMetadataRead= erFactory.getMetadataReader(String >>> className) in SimpleMetadataReaderFactory.java:line 93\r\n =20 >>> at >>> org.springframework.boot.autoconfigure.AutoConfigurationSorte= r.AutoConfigurationClasses..ctor(MetadataReaderFactory >>> metadataReaderFactory, Collection classNames) in >>> AutoConfigurationSorter.java:line 110\r\n at >>> org.springframework.boot.autoconfigure.AutoConfigurationSorte= r.getInPriorityOrder(Collection >>> classNames) in AutoConfigurationSorter.java:line 54\r\n at >>> org.springframework.boot.autoconfigure.EnableAutoConfiguratio= nImportSelector.sort(List >>> configurations) in EnableAutoConfigurationImportSelector.j >>> >>> ava:line 193\r\n at >>> org.springframework.boot.autoconfigure.EnableAutoConfiguratio= nImportSelector.selectImports(AnnotationMetadata >>> metadata) in EnableAutoConfigurationImportSelector.java:line >>> 89\r\n at org.springframework.context.an >>> <http://org.springframework.context.an>notation.Configuration= ClassParser.processDeferredImportSelectors() >>> in ConfigurationClassParser.java:line 481" >>> >>> =20 >>> >>> =20 >>> >>> Here are the detail of our setup: >>> >>> IKVM 8.1 >>> >>> Spring 4.3.2.RELEASE >>> >>> Spring boot 1.4.0.RELEASE >>> >>> Target .NET 4 >>> >>> =20 >>> >>> We are using the statement >>> =E2=80=9Cikvm.runtime.Startup.addBootClassPathAssembly(Assemb= ly.Load("OurLargeAssembly"));=E2=80=9D. >>> We are not using any =E2=80=93classloader argument in the arg= s of ikvmc. >>> >>> =20 >>> >>> We tried downloading the datastax driver and adding it to >>> our large assembly. It worked, but right after we faced the >>> same problem with =E2=80=98elasticsearch=E2=80=99. But this t= ime, adding >>> this package caused an ikvmc crash: >>> >>> =20 >>> >>> /warning IKVMC0100: Class >>> "org.jboss.netty.bootstrap.ServerBootstrap" not found/ >>> >>> /warning IKVMC0100: Class >>> "org.jboss.netty.channel.socket.nio.NioServerSocketChannelFac= tory" >>> not found/ >>> >>> /warning IKVMC0100: Class >>> "org.jboss.netty.channel.group.ChannelGroup" not found/ >>> >>> /warning IKVMC0100: Class >>> "org.jboss.netty.channel.group.ChannelGroupFuture" not found/= >>> >>> / / >>> >>> /*** INTERNAL COMPILER ERROR ***/ >>> >>> / / >>> >>> /PLEASE FILE A BUG REPORT FOR IKVM.NET <http://IKVM.NET> >>> WHEN YOU SEE THIS MESSAGE/ >>> >>> / / >>> >>> /ikvmc, Version=3D8.1.5717.0, Culture=3Dneutral, >>> PublicKeyToken=3D13235d27fcbfff58/ >>> >>> /C:\Windows\Microsoft.NET\Framework64\v2.0.50727\/ >>> >>> /2.0.50727.5485 64-bit/ >>> >>> / / >>> >>> /System.AccessViolationException: Attempted to read or write >>> protected memory. This is often an indication that other >>> memory is corrupt./ >>> >>> / at IKVM.Reflection.Impl.ISymUnmanagedWriter2.CloseMethod(= )/ >>> >>> / at IKVM.Reflection.Impl.PdbWriter.Close()/ >>> >>> / at >>> IKVM.Reflection.Writer.ModuleWriter.WriteModuleImpl(StrongNam= eKeyPair >>> keyPair, Byte[] publicKey, ModuleBuilder moduleBuilder, >>> PEFileKinds fileKind, PortableExecutableKinds >>> portableExecutableKind, ImageFileMachine imageFileMachine, >>> ResourceSection resources, Int32 entryPointToken, Stream >>> stream)/ >>> >>> / at >>> IKVM.Reflection.Writer.ModuleWriter.WriteModule(StrongNameKey= Pair >>> keyPair, Byte[] publicKey, ModuleBuilder moduleBuilder, >>> PEFileKinds fileKind, PortableExecutableKinds >>> portableExecutableKind, ImageFileMachine imageFileMachine, >>> ResourceSection resources, Int32 entryPointToken, Stream >>> stream)/ >>> >>> / at IKVM.Reflection.Emit.AssemblyBuilder.SaveImpl(String >>> assemblyFileName, Stream streamOrNull, >>> PortableExecutableKinds portableExecutableKind, >>> ImageFileMachine imageFileMachine)/ >>> >>> / at IKVM.Reflection.Emit.AssemblyBuilder.Save(String >>> assemblyFileName, PortableExecutableKinds >>> portableExecutableKind, ImageFileMachine imageFileMachine)/ >>> >>> / at IKVM.Internal.CompilerClassLoader.Save()/ >>> >>> / at IKVM.Internal.CompilerClassLoader.Compile(String >>> runtimeAssembly, List`1 optionsList)/ >>> >>> / at IkvmcCompiler.Compile(String[] args)/ >>> >>> / at IkvmcCompiler.Main(String[] args)/ >>> >>> =20 >>> >>> =20 >>> >>> Any help would be appreciated. >>> >>> =20 >>> >>> =20 >>> >>> *_________________________________* >>> >>> *Pascal Dufresne* >>> >>> Associate - Securitized Products Technology Nomura >>> Securities International 309 West 49th Street New York, New >>> York 10019-7316 Phone: +1 212 667 1381 >>> <tel:%2B1%20212%20667%201381> Mobile: +1 646 920 9617 >>> <tel:%2B1%20646%20920%209617> >>> >>> Email: [email protected] >>> <mailto:[email protected]> >>> >>> =20 >>> >>> */Connecting Markets East & West/* >>> >>> www.nomura.com <http://www.nomura.com/> >>> >>> =20 >>> >>> PLEASE READ: This message is for the named person's use >>> only. It may contain confidential, proprietary or legally >>> privileged information. No confidentiality or privilege is >>> waived or lost by any mistransmission. If you receive this >>> message in error, please delete it and all copies from your >>> system, destroy any hard copies and notify the sender. You >>> must not, directly or indirectly, use, disclose, distribute, >>> print, or copy any part of this message if you are not the >>> intended recipient. Nomura Holding America Inc., Nomura >>> Securities International, Inc, and their respective >>> subsidiaries each reserve the right to monitor all e-mail >>> communications through its networks. Any views expressed in >>> this message are those of the individual sender, except >>> where the message states otherwise and the sender is >>> authorized to state the views of such entity. Unless >>> otherwise stated, any pricing information in this message is >>> indicative only, is subject to change and does not >>> constitute an offer to deal at any price quoted. Any >>> reference to the terms of executed transactions should be >>> treated as preliminary only and subject to our formal >>> written confirmation. >>> >>> -------------------------------------------------------------= ----------------- >>> >>> _______________________________________________ >>> Ikvm-developers mailing list >>> [email protected] >>> <mailto:[email protected]> >>> https://lists.sourceforge.net/lists/listinfo/ikvm-developers >>> <https://lists.sourceforge.net/lists/listinfo/ikvm-developers= > >> --------------------------------------------------------------= ---------------- >> _______________________________________________ >> Ikvm-developers mailing list >> [email protected] >> <mailto:[email protected]> >> https://lists.sourceforge.net/lists/listinfo/ikvm-developers >> <https://lists.sourceforge.net/lists/listinfo/ikvm-developers>= =20 >> >> --=20 >> Paul Chambre >> Senior Solutions Architect >> (719) 465-6097 <tel:%28719%29%20465-6097> >> Illumon - Big Value From Big Data > -------------------------------------------------------------------= ----------- > _______________________________________________ Ikvm-developers > mailing list [email protected] > <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/ikvm-developers > <https://lists.sourceforge.net/lists/listinfo/ikvm-developers>=20 > > --=20 > Paul Chambre > Senior Solutions Architect > (719) 465-6097 > Illumon - Big Value From Big Data --------------AF79B74E4057EF9397D88E30 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> </head> <body bgcolor="#FFFFFF" text="#000000"> <p>Hi Paul,</p> <p>Do you have a .NET client which contains Java class resources on the classpath?</p> <p>The problem is that the IKVM compiler will remove all class files. The compiler can not detect that you want not execute this classes and want send it to a server. My suggestion is to pack the classes for the server in a zip file and add this zip file to your jar. Or simple rename the extension of the class file. Then the IKVM compiler will handle it as resources.</p> <p>On the way to send executable code from the client to the server is a very bad practice. This sounds like a very large security hole.</p> <p>Volker<br> </p> <br> <div class="moz-cite-prefix">Am 22.11.2016 um 14:43 schrieb Paul Chambre:<br> </div> <blockquote cite="mid:CAJwVo5EjZgNvuBQbK4vqH7kSMF9XTy8AySvHPvG7SU2hpAJ46Q@mail.gmail.com" type="cite"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <div dir="ltr">This isn't for use at the client side. This is to upload classes from the client to the server to use at the server side... The server is, and will always be, a Java process.</div> <div class="gmail_extra"><br> <div class="gmail_quote">On Tue, Nov 22, 2016 at 2:25 AM, Volker Berlin <span dir="ltr"><<a moz-do-not-send="true" href="mailto:[email protected]" target="_blank">[email protected]</a>></span> wrote:<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div text="#000000" bgcolor="#FFFFFF"> <p>Hi Paul,</p> <p>What do you want do? There does not exists Java classes in the .NET world. Your Java classes was compiled to .NET IL code.</p> <span class="HOEnZb"><font color="#888888"> <p>Volker<br> </p> </font></span> <div> <div class="h5"> <br> <div class="m_-944067022458315276moz-cite-prefix">Am 21.11.2016 um 18:25 schrieb Paul Chambre:<br> </div> <blockquote type="cite"> <div dir="ltr"> <div>Hi Volker,</div> <div><br> </div> <div>This sounds similar to something I am seeing. In our app, we sometimes push updated classes to a server. This does not work from the ikvmc DLL. I had thought it might be another pathing issue, but it sounds more like what you're mentioning here. </div> <div><br> </div> <div>This is how we are loading class definitions for packaging and push:</div> <div><br> </div> <pre style="color:rgb(0,0,0);font-family:"courier new";font-size:9pt;background-color:rgb(255,255,255)">InputStream <span style="background-color:rgb(255,228,255)">inStream</span> = classLoader.<wbr>getResourceAsStream(path);</pre> <div> </div> <div>Am I correct in understanding that we'll need to use a more generic file stream, instead, to load the classes under IKVM? </div> <div> </div> <div>Thanks, Paul</div> </div> <div class="gmail_extra"> <div class="gmail_quote">On Mon, Nov 21, 2016 at 5:06 AM, Volker Berlin <span dir="ltr"><<a moz-do-not-send="true" href="mailto:[email protected]" target="_blank">[email protected]</a>></span> wrote: <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div text="#000000" bgcolor="#FFFFFF"> <p>It look like that your framework try to access the stream of com.datastax.driver.core.Clust<wbr>er$Builder.class. Because class resources are not available IKVM that it try to generate a stub of the stream which is failing. If this is the case then it look like a bug in IKVM.</p> <p>Which version of IKVM do you use?</p> Volker <div> <div class="m_-944067022458315276h5"> <div class="m_-944067022458315276m_5024037736762453314moz-cite-prefix">Am 18.11.2016 um 17:58 schrieb <a moz-do-not-send="true" class="m_-944067022458315276m_5024037736762453314moz-txt-link-abbreviated" href="mailto:[email protected]" target="_blank">[email protected]</a>: </div> </div> </div> <blockquote type="cite"> <div> <div class="m_-944067022458315276h5"> <div class="m_-944067022458315276m_5024037736762453314WordSection1"> <p class="MsoNormal">Hi folks,</p> <p class="MsoNormal"> </p> <p class="MsoNormal">I am looking for help on using IKVM with the spring framework. We are using the ‘one large DLL’ solution to compile a large number of our libraries. We recently added the spring framework to these.</p> <p class="MsoNormal"> </p> <p class="MsoNormal">Compiling everything together with ikvmc works but on initialization of the spring framework, the ikvm class loader behaves differently than the class loader of the standard JVM. The class loader of the standard JVM tolerates that some extensions of the spring framework are missing, whereas the ikvm class loader throws an exception:</p> <p class="MsoNormal"> </p> <p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:Consolas;color:#1e1e1e;background:white">"ClassNotFoundException: com.datastax.driver.core.Clust<wbr>er$Builder\r\n at IKVM.Internal.ClassLoaderWrapp<wbr>er.LoadClass(String name, LoadMode mode)\r\n at IKVM.Internal.ClassLoaderWrapp<wbr>er.LoadClassByDottedName(<wbr>String name)\r\n at IKVM.Internal.CompiledTypeWrap<wbr>per.get_InnerClasses()\r\n at IKVM.StubGen.StubGenerator.Wri<wbr>teClass(Stream stream, TypeWrapper tw, Boolean includeNonPublicInterfaces, Boolean includeNonPublicMembers, Boolean includeSerialVersionUID, Boolean includeParameterNames)\r\n at IKVM.Internal.VirtualFileSyste<wbr>m.VfsAssemblyClass.Populate()\<wbr>r\n at IKVM.Internal.VirtualFileSyste<wbr>m.VfsAssemblyClass.Open()\r\n <wbr> at IKVM.Internal.VirtualFileSyste<wbr>m.Open(String name, FileMode fileMode, FileAccess fileAccess)\r\n at Java_java_io_FileDescriptor.op<wbr>en(String name, FileMode fileMode, FileAccess fileAccess)\r\n at java.io.FileDescriptor.open(St<wbr>ring , FileMode , FileAccess )\r\n at java.io.FileDescriptor.open(St<wbr>ring , Int32 , Int32 )\r\n at java.io.FileDescriptor.openRea<wbr>dOnly(String )\r\n at Ja</span></p> <p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:Consolas;color:#1e1e1e;background:white">va_java_io_FileInputStream.ope<wbr>n0(Object _this, String name, FileDescriptor fd)\r\n at java.io.FileInputStream.open0(<wbr>String )\r\n at java.io.FileInputStream.open(S<wbr>tring )\r\n at java.io.FileInputStream..ctor(<wbr>File file)\r\n at java.util.zip.ClassStubZipEntr<wbr>y.getInputStream()\r\n at java.util.zip.ZipFile.getInput<wbr>Stream(ZipEntry entry)\r\n at java.util.jar.JarFile.getInput<wbr>Stream(ZipEntry ze)\r\n at sun.net.www.protocol.jar.JarUR<wbr>LConnection.getInputStream()\<wbr>r\n at java.net.URLClassLoader.getRes<wbr>ourceAsStream(String name)\r\n at <a moz-do-not-send="true" href="http://org.springframework.core.io" target="_blank">org.springframework.core.io</a>.Cl<wbr>assPathResource.getInputStream<wbr>() in ClassPathResource.java:line 166\r\n at org.springframework.core.type.<wbr>classreading.SimpleMetadataRea<wbr>der..ctor(Resource resource, ClassLoader classLoader) in SimpleMetadataReader.java:line 50\r\n at org.springframework.core.type.<wbr>classreading.SimpleMetadataRea<wbr>derFactory.getMetadataReader(<wbr>Resource resource) in SimpleMetadataReaderFactory.ja<wbr>va:line 98\r\n at org.springframework.boot.type.<wbr>classreading.Concurre</span></p> <p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:Consolas;color:#1e1e1e;background:white">ntReferenceCachingMetadataRead<wbr>erFactory.createMetadataReader<wbr>(Resource resource) in ConcurrentReferenceCachingMeta<wbr>dataReaderFactory.java:line 89\r\n at org.springframework.boot.type.<wbr>classreading.ConcurrentReferen<wbr>ceCachingMetadataReaderFactory<wbr>.getMetadataReader(Resource resource) in ConcurrentReferenceCachingMeta<wbr>dataReaderFactory.java:line 76\r\n at org.springframework.core.type.<wbr>classreading.SimpleMetadataRea<wbr>derFactory.getMetadataReader(<wbr>String className) in SimpleMetadataReaderFactory.ja<wbr>va:line 93\r\n at org.springframework.boot.autoc<wbr>onfigure.AutoConfigurationSort<wbr>er.AutoConfigurationClasses..c<wbr>tor(MetadataReaderFactory metadataReaderFactory, Collection classNames) in AutoConfigurationSorter.java:l<wbr>ine 110\r\n at org.springframework.boot.autoc<wbr>onfigure.AutoConfigurationSort<wbr>er.getInPriorityOrder(<wbr>Collection classNames) in AutoConfigurationSorter.java:l<wbr>ine 54\r\n at org.springframework.boot.autoc<wbr>onfigure.EnableAutoConfigurati<wbr>onImportSelector.sort(List configurations) in EnableAutoConfigurationImportS<wbr>elector.j</span></p> <p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:Consolas;color:#1e1e1e;background:white">ava:line 193\r\n at org.springframework.boot.autoc<wbr>onfigure.EnableAutoConfigurati<wbr>onImportSelector.<wbr>selectImports(AnnotationMetada<wbr>ta metadata) in EnableAutoConfigurationImportS<wbr>elector.java:line 89\r\n at <a moz-do-not-send="true" href="http://org.springframework.context.an">org.springframework.context.an</a><wbr>notation.ConfigurationClassPar<wbr>ser.processDeferredImportSelec<wbr>tors() in ConfigurationClassParser.java:<wbr>line 481"</span></p> <p class="MsoNormal"> </p> <p class="MsoNormal"> </p> <p class="MsoNormal">Here are the detail of our setup:</p> <p class="MsoNormal">IKVM 8.1</p> <p class="MsoNormal">Spring 4.3.2.RELEASE</p> <p class="MsoNormal">Spring boot 1.4.0.RELEASE</p> <p class="MsoNormal">Target .NET 4</p> <p class="MsoNormal"> </p> <p class="MsoNormal">We are using the statement “ikvm.runtime.Startup.addBootC<wbr>lassPathAssembly(Assembly.<wbr>Load("OurLargeAssembly"));”. We are not using any –classloader argument in the args of ikvmc.</p> <p class="MsoNormal"> </p> <p class="MsoNormal">We tried downloading the datastax driver and adding it to our large assembly. It worked, but right after we faced the same problem with ‘elasticsearch’. But this time, adding this package caused an ikvmc crash:</p> <p class="MsoNormal"> </p> <p class="MsoNormal"><i>warning IKVMC0100: Class "org.jboss.netty.bootstrap.Ser<wbr>verBootstrap" not found</i></p> <p class="MsoNormal"><i>warning IKVMC0100: Class "org.jboss.netty.channel.socke<wbr>t.nio.NioServerSocketChannelFa<wbr>ctory" not found</i></p> <p class="MsoNormal"><i>warning IKVMC0100: Class "org.jboss.netty.channel.group<wbr>.ChannelGroup" not found</i></p> <p class="MsoNormal"><i>warning IKVMC0100: Class "org.jboss.netty.channel.group<wbr>.ChannelGroupFuture" not found</i></p> <p class="MsoNormal"><i> </i></p> <p class="MsoNormal"><i>*** INTERNAL COMPILER ERROR ***</i></p> <p class="MsoNormal"><i> </i></p> <p class="MsoNormal"><i>PLEASE FILE A BUG REPORT FOR <a moz-do-not-send="true" href="http://IKVM.NET" target="_blank">IKVM.NET</a> WHEN YOU SEE THIS MESSAGE</i></p> <p class="MsoNormal"><i> </i></p> <p class="MsoNormal"><i>ikvmc, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff5<wbr>8</i></p> <p class="MsoNormal"><i>C:\Windows\Microsoft.NET\Frame<wbr>work64\v2.0.50727\</i></p> <p class="MsoNormal"><i>2.0.50727.5485 64-bit</i></p> <p class="MsoNormal"><i> </i></p> <p class="MsoNormal"><i>System.AccessViolationExceptio<wbr>n: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.</i></p> <p class="MsoNormal"><i> at IKVM.Reflection.Impl.ISymUnman<wbr>agedWriter2.CloseMethod()</i></p> <p class="MsoNormal"><i> at IKVM.Reflection.Impl.PdbWriter<wbr>.Close()</i></p> <p class="MsoNormal"><i> at IKVM.Reflection.Writer.ModuleW<wbr>riter.WriteModuleImpl(StrongNa<wbr>meKeyPair keyPair, Byte[] publicKey, ModuleBuilder moduleBuilder, PEFileKinds fileKind, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine, ResourceSection resources, Int32 entryPointToken, Stream stream)</i></p> <p class="MsoNormal"><i> at IKVM.Reflection.Writer.ModuleW<wbr>riter.WriteModule(StrongNameKe<wbr>yPair keyPair, Byte[] publicKey, ModuleBuilder moduleBuilder, PEFileKinds fileKind, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine, ResourceSection resources, Int32 entryPointToken, Stream stream)</i></p> <p class="MsoNormal"><i> at IKVM.Reflection.Emit.AssemblyB<wbr>uilder.SaveImpl(String assemblyFileName, Stream streamOrNull, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine)</i></p> <p class="MsoNormal"><i> at IKVM.Reflection.Emit.AssemblyB<wbr>uilder.Save(String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine)</i></p> <p class="MsoNormal"><i> at IKVM.Internal.CompilerClassLoa<wbr>der.Save()</i></p> <p class="MsoNormal"><i> at IKVM.Internal.CompilerClassLoa<wbr>der.Compile(String runtimeAssembly, List`1 optionsList)</i></p> <p class="MsoNormal"><i> at IkvmcCompiler.Compile(String[] args)</i></p> <p class="MsoNormal"><i> at IkvmcCompiler.Main(String[] args)</i></p> <p class="MsoNormal"> </p> <p class="MsoNormal"> </p> <p class="MsoNormal">Any help would be appreciated.</p> <p class="MsoNormal"> </p> <p class="MsoNormal"> </p> <p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333" lang="EN-GB">______________________________<wbr>___</span></b></p> <p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#333333" lang="EN-GB">Pascal Dufresne</span></b></p> <p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial","sans-serif";color:#333333" lang="EN-GB">Associate - Securitized Products Technology Nomura Securities International 309 West 49th Street New York, New York 10019-7316 Phone: <a moz-do-not-send="true" href="tel:%2B1%20212%20667%201381" target="_blank" value="+12126671381">+1 212 667 1381</a> Mobile: <a moz-do-not-send="true" href="tel:%2B1%20646%20920%209617" target="_blank" value="+16469209617">+1 646 920 9617</a></span><span style="font-size:8.0pt"></span></p> <p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial","sans-serif";color:#333333" lang="EN-GB">Email: </span><span style="font-size:8.0pt;font-family:"Arial","sans-serif";color:#cc0000" lang="EN-GB"><a moz-do-not-send="true" href="mailto:[email protected]" target="_blank">[email protected]</a></span><span style="font-size:8.0pt;color:#cc0000"></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#cc0000" lang="EN-GB"> </span></p> <p class="MsoNormal"><b><i><span style="font-size:8.0pt;font-family:"Arial","sans-serif";color:#cc0000" lang="EN-GB">Connecting Markets East & West</span></i></b></p> <p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Arial","sans-serif";color:#cc0000" lang="EN-GB"><a moz-do-not-send="true" href="http://www.nomura.com/" target="_blank"><span style="color:#cc0000;text-decoration:none">www.nomura.com</span></a></span></p> <p class="MsoNormal"> </p> </div> <div><font face="Arial" size="2"><span class="m_-944067022458315276m_5024037736762453314272370717-27032000">PLEASE READ: This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this message in error, please delete it and all copies from your system, destroy any hard copies and notify the sender. You must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message if you are not the intended recipient. Nomura Holding America Inc., Nomura Securities International, Inc, and their respective subsidiaries each reserve the right to monitor all e-mail communications through its networks. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorized to state the views of such entity. Unless otherwise stated, any pricing information in this message is indicative only, is subject to change and does not constitute an offer to deal at any price quoted. Any reference to the terms of executed transactions should be treated as preliminary only and subject to our formal written confirmation. </span></font></div> <fieldset class="m_-944067022458315276m_5024037736762453314mimeAttachmentHeader"></fieldset> </div> </div> <pre>------------------------------<wbr>------------------------------<wbr>------------------ </pre> <fieldset class="m_-944067022458315276m_5024037736762453314mimeAttachmentHeader"></fieldset> <pre>______________________________<wbr>_________________ Ikvm-developers mailing list <a moz-do-not-send="true" class="m_-944067022458315276m_5024037736762453314moz-txt-link-abbreviated" href="mailto:[email protected]" target="_blank">[email protected]<wbr>rge.net</a> <a moz-do-not-send="true" class="m_-944067022458315276m_5024037736762453314moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/ikvm-developers" target="_blank">https://lists.sourceforge.net/<wbr>lists/listinfo/ikvm-developers</a> </pre> </blockquote> </div> ------------------------------<wbr>------------------------------<wbr>------------------ ______________________________<wbr>_________________ Ikvm-developers mailing list <a moz-do-not-send="true" href="mailto:[email protected]" target="_blank">[email protected]<wbr>rge.net</a> <a moz-do-not-send="true" href="https://lists.sourceforge.net/lists/listinfo/ikvm-developers" target="_blank" rel="noreferrer">https://lists.sourceforge.net/<wbr>lists/listinfo/ikvm-developers</a> </blockquote></div> -- <div class="m_-944067022458315276gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Paul Chambre</div><div> </div><div>Senior Solutions Architect</div><div><a moz-do-not-send="true" href="tel:%28719%29%20465-6097" target="_blank" value="+17194656097">(719) 465-6097</a></div><div> </div><div>Illumon - Big Value From Big Data</div></div></div> </div> </blockquote> </div></div></div> ------------------------------<wbr>------------------------------<wbr>------------------ ______________________________<wbr>_________________ Ikvm-developers mailing list <a moz-do-not-send="true" href="mailto:[email protected]">Ikvm-developers@lists.<wbr>sourceforge.net</a> <a moz-do-not-send="true" href="https://lists.sourceforge.net/lists/listinfo/ikvm-developers" target="_blank" rel="noreferrer">https://lists.sourceforge.net/<wbr>lists/listinfo/ikvm-developers</a> </blockquote></div> -- <div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Paul Chambre</div><div> </div><div>Senior Solutions Architect</div><div>(719) 465-6097</div><div> </div><div>Illumon - Big Value From Big Data</div></div></div> </div> </blockquote> </body></html> --------------AF79B74E4057EF9397D88E30-- --===============3925417027579232795== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ --===============3925417027579232795== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Ikvm-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ikvm-developers --===============3925417027579232795==--