Calico Java stopped working on Mac/Windows
Since the update of the IKVM libraries from Mono for Calico Java, Calico Java has stopped working on Mac and Windows. Related to #3 and #4.
Before: starting calico with Java enabled gave no error message
Now: starting calico with Java enabled gives: "An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.Options"
Comments (12)
-
-
reporter Maybe just rebuild drjava.dll?
-
I tried that. No go. I think its a .net 4 compatibility thing.
Keith
-
Should I used gmcs or dmcs? I think its a 2.0 vs 4.0 problem.
-
Running with --runtime=4.0 made the Missing method warning/error go away but the exception remains. So weird that it runs fine on linux but not on mac os x.
-
I created a small driver C# app and I got this mammoth error:
Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.Options ---> System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.symbol.ExtendedTypeSystem ---> System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.symbol.StandardTypeSystem ---> System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.symbol.TypeSystem ---> System.NotSupportedException: RunAndCollect not yet supported. at System.Reflection.Emit.AssemblyBuilder..ctor (System.Reflection.AssemblyName n, System.String directory, AssemblyBuilderAccess access, Boolean corlib_internal) [0x00000] in <filename unknown>:0 at System.AppDomain.DefineDynamicAssembly (System.Reflection.AssemblyName name, AssemblyBuilderAccess access, System.String dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions, Boolean isSynchronized) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.AppDomain:DefineDynamicAssembly (System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,string,System.Security.Policy.Evidence,System.Security.PermissionSet,System.Security.PermissionSet,System.Security.PermissionSet,bool) at System.AppDomain.DefineDynamicAssembly (System.Reflection.AssemblyName name, AssemblyBuilderAccess access) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.AppDomain:DefineDynamicAssembly (System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess) at DynamicMethodUtils.Create (System.String name, System.Type owner, Boolean nonPublic, System.Type returnType, System.Type[] paramTypes) [0x00000] in <filename unknown>:0 at IKVM.NativeCode.sun.reflect.ReflectionFactory+FastConstructorAccessorImpl..ctor (java.lang.reflect.Constructor constructor) [0x00000] in <filename unknown>:0 at IKVM.NativeCode.sun.reflect.ReflectionFactory.newConstructorAccessor0 (System.Object thisFactory, System.Object constructor) [0x00000] in <filename unknown>:0 at sun.reflect.ReflectionFactory.newConstructorAccessor0 (java.lang.reflect.Constructor ) [0x00000] in <filename unknown>:0 at sun.reflect.ReflectionFactory.newConstructorAccessor (java.lang.reflect.Constructor c) [0x00000] in <filename unknown>:0 at java.lang.reflect.Constructor.acquireConstructorAccessor () [0x00000] in <filename unknown>:0 at java.lang.reflect.Constructor.newInstance (System.Object[] initargs, ikvm.internal.CallerID ) [0x00000] in <filename unknown>:0 at edu.rice.cs.plt.reflect.ReflectUtil.loadObject (java.lang.ClassLoader loader, System.String className, java.lang.Class[] constructorSig, System.Object[] constructorArgs) [0x00000] in <filename unknown>:0 at edu.rice.cs.plt.reflect.ReflectUtil.loadObject (java.lang.ClassLoader loader, System.String className, System.Object[] constructorArgs) [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.symbol.SymbolUtil.wrapClass (java.lang.Class c) [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.symbol.TypeSystem..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at edu.rice.cs.dynamicjava.symbol.StandardTypeSystem..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at edu.rice.cs.dynamicjava.symbol.ExtendedTypeSystem..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at edu.rice.cs.dynamicjava.Options.typeSystemFactory () [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.Options..ctor () [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.Options..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at Test.Main (System.String[] args) [0x00000] in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.Options ---> System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.symbol.ExtendedTypeSystem ---> System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.symbol.StandardTypeSystem ---> System.TypeInitializationException: An exception was thrown by the type initializer for edu.rice.cs.dynamicjava.symbol.TypeSystem ---> System.NotSupportedException: RunAndCollect not yet supported. at System.Reflection.Emit.AssemblyBuilder..ctor (System.Reflection.AssemblyName n, System.String directory, AssemblyBuilderAccess access, Boolean corlib_internal) [0x00000] in <filename unknown>:0 at System.AppDomain.DefineDynamicAssembly (System.Reflection.AssemblyName name, AssemblyBuilderAccess access, System.String dir, System.Security.Policy.Evidence evidence, System.Security.PermissionSet requiredPermissions, System.Security.PermissionSet optionalPermissions, System.Security.PermissionSet refusedPermissions, Boolean isSynchronized) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.AppDomain:DefineDynamicAssembly (System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,string,System.Security.Policy.Evidence,System.Security.PermissionSet,System.Security.PermissionSet,System.Security.PermissionSet,bool) at System.AppDomain.DefineDynamicAssembly (System.Reflection.AssemblyName name, AssemblyBuilderAccess access) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.AppDomain:DefineDynamicAssembly (System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess) at DynamicMethodUtils.Create (System.String name, System.Type owner, Boolean nonPublic, System.Type returnType, System.Type[] paramTypes) [0x00000] in <filename unknown>:0 at IKVM.NativeCode.sun.reflect.ReflectionFactory+FastConstructorAccessorImpl..ctor (java.lang.reflect.Constructor constructor) [0x00000] in <filename unknown>:0 at IKVM.NativeCode.sun.reflect.ReflectionFactory.newConstructorAccessor0 (System.Object thisFactory, System.Object constructor) [0x00000] in <filename unknown>:0 at sun.reflect.ReflectionFactory.newConstructorAccessor0 (java.lang.reflect.Constructor ) [0x00000] in <filename unknown>:0 at sun.reflect.ReflectionFactory.newConstructorAccessor (java.lang.reflect.Constructor c) [0x00000] in <filename unknown>:0 at java.lang.reflect.Constructor.acquireConstructorAccessor () [0x00000] in <filename unknown>:0 at java.lang.reflect.Constructor.newInstance (System.Object[] initargs, ikvm.internal.CallerID ) [0x00000] in <filename unknown>:0 at edu.rice.cs.plt.reflect.ReflectUtil.loadObject (java.lang.ClassLoader loader, System.String className, java.lang.Class[] constructorSig, System.Object[] constructorArgs) [0x00000] in <filename unknown>:0 at edu.rice.cs.plt.reflect.ReflectUtil.loadObject (java.lang.ClassLoader loader, System.String className, System.Object[] constructorArgs) [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.symbol.SymbolUtil.wrapClass (java.lang.Class c) [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.symbol.TypeSystem..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at edu.rice.cs.dynamicjava.symbol.StandardTypeSystem..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at edu.rice.cs.dynamicjava.symbol.ExtendedTypeSystem..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at edu.rice.cs.dynamicjava.Options.typeSystemFactory () [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.Options..ctor () [0x00000] in <filename unknown>:0 at edu.rice.cs.dynamicjava.Options..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at Test.Main (System.String[] args) [0x00000] in <filename unknown>:0
-
OK I rebuilt ikvm with .net 2.0 support (it was using 4.0 before) and the problem is fixed.
ikvm-fork>nant -t:mono-2.0
For some reason the 4.0 implementations were acting differently on Mac and Windows compared with Linux. Even though they were the exact same version (.NET 4.0.30319.1).
This current version of the java dll's checked in work with java and ROS.
-
- changed status to resolved
-
reporter Excellent! We could put a Makefile in the dir:
wget http://lib nant -t:mono-2.0
-
- changed status to open
Need to test on Windows.
-
reporter It works for me under Windows!
-
- changed status to resolved
- Log in to comment