Dhnis Riedijk wrote: > >Hello, All, > > >I met an error when I port my windows JNI to Linux. The jni run well on > >Windows NT/95/98. I don't familiar with Linux platform I need your help. > > >Error is > > >FATAL ERROR in native method: try to unpin an object that is not pined. > > >I want to offenly what type of code could incur this error? What's your > >suspects? > >I would like provide more detailed information while needed. > > >Thanks in advance. > > >Gao Lei > > You really need to provide more info, maybe you could find out what piece of > native code is causing this message ? I always use some printf("info 1\n"); > statements to find out where the error-message is triggered :-) > > Good Luck > Dènis Riedijk Hi, Denis, and all other developers, Thanks your advice. I believe I could know which method introduced(NextKey), but I want know the exact reason. Also, the fucntion NextKey is provided by another product which we can hardly modified. So, I just want to know the exact reason which part incur the error. Would you like give me some hints on how to locate the where erorr occurs? If it is 1) due to JVM port of Linux, then I stop my work and wait for the new version. 2) due toThe third party code error, then I contact with the provider. 3) due to my JNI code error, then improve them. 4) due to my Java code(thread) error, then improve them. Following are the error information: FATAL ERROR in native method: Try to unpin an object that is not pinned at datares.CTreeInterface.NextKey(Native Method) at app.jmasserver.CTreeService.queryDatabase(Compiled Code) at app.jmasserver.JMassNetworkListener_S.transactMessage(Compiled Code) at app.AppNetworkListener_S.listen2network(Compiled Code) at tcpserver.NetworkListener_S.run(Compiled Code) at java.lang.Thread.run(Compiled Code) SIGABRT 6* abort (generated by abort(3) routine) stackpointer=0xbf1ff764 Full thread dump Classic VM (Linux_JDK_1.2_pre-release-v1, native threads): "Thread-3" (TID:0x406df380, sys_thread_t:0x8219c30, state:R, native ID:0x140 5) prio=5 at datares.CTreeInterface.NextKey(Native Method) at app.jmasserver.CTreeService.queryDatabase(Compiled Code) at app.jmasserver.JMassNetworkListener_S.transactMessage(Compiled Code) at app.AppNetworkListener_S.listen2network(Compiled Code) at tcpserver.NetworkListener_S.run(Compiled Code) at java.lang.Thread.run(Compiled Code) "Thread-2" (TID:0x406deb90, sys_thread_t:0x81430c0, state:CW, native ID:0x40 0) prio=5 "Thread-1" (TID:0x406d9ff8, sys_thread_t:0x82aed28, state:R, native ID:0x100 4) prio=5 at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(Compiled Code) at java.net.ServerSocket.implAccept(Compiled Code) at java.net.ServerSocket.accept(Compiled Code) at tcpserver.TCPServer.run(Compiled Code) at java.lang.Thread.run(Compiled Code) "Finalizer" (TID:0x406d2320, sys_thread_t:0x81c3358, state:CW, native ID:0xc 03) prio=8 at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:112) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174) "Reference Handler" (TID:0x406d23b0, sys_thread_t:0x81beba0, state:CW, nativ e ID:0x802) prio=10 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:424) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114) "SIGQUIT handler" (TID:0x406d23e0, sys_thread_t:0x81b7628, state:R, native I D:0x401) prio=5 Monitor Cache Dump: java.lang.ref.Reference$Lock@406D23C0/40707B20: <unowned> Waiting to be notified: "Reference Handler" (0x81beba0) java.lang.ref.ReferenceQueue$Lock@406D2338/40708028: <unowned> Waiting to be notified: "Finalizer" (0x81c3358) java.net.PlainSocketImpl@406D8D98/407590C8: owner "Thread-1" (0x82aed28) 1 e ntry Registered Monitor Dump: PCMap lock: <unowned> utf8 hash table: <unowned> JNI pinning lock: owner "Thread-3" (0x8219c30) 1 entry JNI global reference lock: <unowned> BinClass lock: <unowned> Class linking lock: <unowned> System class loader lock: <unowned> Code rewrite lock: <unowned> Heap lock: <unowned> Monitor cache lock: owner "Thread-3" (0x8219c30) 1 entry Thread queue lock: owner "Thread-3" (0x8219c30) 1 entry Waiting to be notified: "Thread-2" (0x81430c0) Dynamic loading lock: <unowned> Monitor registry: owner "Thread-3" (0x8219c30) 1 entry Thanks anyway. Gao Lei.