I have updated my JNA example project, it now demonstrates a new problem where Avian is hitting an assert.
This example works with the OpenJDK 7 VM.
mvn package
cd target
avian -jar avian-jna.jar
#0 0x00403770 in avian::system::crash () at src/system/windows/signal.cpp:269
#1 0x004032b4 in (anonymous namespace)::MySystem::abort (this=0x3f1eb0) at src/system/windows.cpp:942
#2 0x04327f19 in avian::util::abort<vm::Thread*> (t=0x3f5b94) at include/avian/util/abort.h:33
#3 0x043280e6 in avian::util::expect<vm::Thread*> (t=0x3f5b94, v=false) at include/avian/util/abort.h:40
#4 0x04328004 in avian::util::assert<vm::Thread*> (t=0x3f5b94, v=false) at include/avian/util/abort.h:49
#5 0x0431cfe8 in vm::byteArrayLength (t=0x3f5b94, o=0x0) at build/windows-i386-debug-openjdk-src/type-declarations.cpp:2943
#6 0x0431a8f1 in vm::byteArrayHash (t=0x3f5b94, array=0x0) at src/avian/machine.h:2325
#7 0x0042872d in vm::hashMapFindNode (t=0x3f5b94, map=0xb791fac, key=0x0, hash=0x431a8d8 <vm::byteArrayHash(vm::Thread*, vm::Object*)>, equal=0x431bb70 <vm::byteArrayEqual(vm::Thread*, vm::Object*, vm::Object*)>) at src/util.cpp:326
#8 0x0431879d in vm::hashMapFind (t=0x3f5b94, map=0xb791fac, key=0x0, hash=0x431a8d8 <vm::byteArrayHash(vm::Thread*, vm::Object*)>, equal=0x431bb70 <vm::byteArrayEqual(vm::Thread*, vm::Object*, vm::Object*)>) at src/avian/util.h:29
#9 0x004187d0 in vm::resolveSystemClass (t=0x3f5b94, loader=0xb791db0, spec=0x0, throw_=true, throwType=vm::Machine::NoClassDefFoundErrorType) at src/machine.cpp:4207
#10 0x00418e2b in vm::resolveClass (t=0x3f5b94, loader=0xb791db0, spec=0x0, throw_=true, throwType=vm::Machine::NoClassDefFoundErrorType) at src/machine.cpp:4324
#11 0x00458f58 in vm::getDeclaringClass (t=0x3f5b94, c=0xb7ccdf0) at src/avian/classpath-common.h:740
#12 0x00464056 in (anonymous namespace)::local::jvmGetDeclaringClass (t=0x3f5b94, arguments=0x28f6ac) at src/classpath-openjdk.cpp:4143
#13 0x004873b4 in vmRun ()
#14 0x043260d8 in vm::runRaw (t=0x3f5b94, function=0x464029 <(anonymous namespace)::local::jvmGetDeclaringClass(vm::Thread*, uintptr_t*)>, arguments=0x28f6ac) at src/avian/machine.h:1914
#15 0x04324894 in vm::run (t=0x3f5b94, function=0x464029 <(anonymous namespace)::local::jvmGetDeclaringClass(vm::Thread*, uintptr_t*)>, arguments=0x28f6ac) at src/avian/machine.h:1921
#16 0x00464092 in JVM_GetDeclaringClass@8 (t=0x3f5b94, c=0x28f870) at src/classpath-openjdk.cpp:4151
#17 0x00487342 in vmNativeCall ()
#18 0x04318626 in vm::dynamicCall (function=0x46406c <JVM_GetDeclaringClass@8>, arguments=0x28f718, argumentsSize=8, returnType=7) at src/avian/x86.h:97
#19 0x00446a47 in (anonymous namespace)::local::invokeNativeSlow (t=0x3f5b94, method=0xb59788c, function=0x46406c <JVM_GetDeclaringClass@8>) at src/compile.cpp:7439
#20 0x00446cbe in (anonymous namespace)::local::invokeNative2 (t=0x3f5b94, method=0xb59788c) at src/compile.cpp:7511
#21 0x00446e27 in (anonymous namespace)::local::invokeNative (t=0x3f5b94) at src/compile.cpp:7543
#22 0x07d60051 in ?? ()
debug trace for thread 003F5B94
at java/lang/Class.getDeclaringClass0 (native)
at java/lang/Class.getDeclaringClass (line 1101)
at com/sun/jna/Native.findEnclosingLibraryClass (line 471)
at com/sun/jna/Native.getLibraryOptions (line 496)
at com/sun/jna/Native.getTypeMapper (line 562)
at com/sun/jna/CallbackReference.<init> (line 147)
at com/sun/jna/CallbackReference.getFunctionPointer (line 399)
at com/sun/jna/CallbackReference.getFunctionPointer (line 381)
at com/sun/jna/Pointer.setValue (line 960)
at com/sun/jna/Structure.writeField (line 784)
at com/sun/jna/Structure.write (line 702)
at com/example/Main.run (line 32)
at com/example/Main.main (line 37)