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">&lt;<a moz-do-not-send="true"
              href="mailto:[email protected]" target="_blank">[email protected]</a>&gt;</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:&quot;courier new&quot;;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">&lt;<a moz-do-not-send="true" href="mailto:[email protected]" target="_blank">[email protected]</a>&gt;</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:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333" lang="EN-GB">______________________________<wbr>___</span></b></p>
                      <p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333" lang="EN-GB">Pascal Dufresne</span></b></p>
                      <p class="MsoNormal"><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;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:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#333333" lang="EN-GB">Email: </span><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;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:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#cc0000" lang="EN-GB"> </span></p>
                      <p class="MsoNormal"><b><i><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#cc0000" lang="EN-GB">Connecting Markets East &amp;
                              West</span></i></b></p>
                      <p class="MsoNormal"><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;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==--