> On 03 Feb 2016, at 14:06, Salvatore Iovene <salvatore at iovene.com> wrote: > > Hi, > I?m working on a project on top of the Iotivity Java API, and when I try do > the following, the Iotivity stack crashes: > > someResource.get(new HashMap<String, String>(), this); > > Here?s the backtrack but it?s probably not very useful. > > I/DEBUG ( 2763): pid: 19871, tid: 19928, name: JavaBridge >>> > com.example.CordovaPluginOicDemo <<< > I/DEBUG ( 2763): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- > I/DEBUG ( 2763): eax 00000000 ebx 00004d9f ecx 00004dd8 edx 00000006 > I/DEBUG ( 2763): esi db11edb8 edi 00000000 > I/DEBUG ( 2763): xcs 00000023 xds 0000002b xes 0000002b xfs 00000117 > xss 0000002b > I/DEBUG ( 2763): eip f772aec6 ebp 00004dd8 esp db11ec00 flags > 00200206 > I/DEBUG ( 2763): > I/DEBUG ( 2763): backtrace: > I/DEBUG ( 2763): #00 pc 00085ec6 /system/lib/libc.so (tgkill+22) > I/DEBUG ( 2763): #01 pc 00031223 /system/lib/libc.so (pthread_kill+163) > I/DEBUG ( 2763): #02 pc 00032af5 /system/lib/libc.so (raise+37) > I/DEBUG ( 2763): #03 pc 0002ac75 /system/lib/libc.so (abort+85) > I/DEBUG ( 2763): #04 pc 00050934 > /data/app/com.example.CordovaPluginOicDemo-1/lib/x86/libgnustl_shared.so > (__gnu_cxx::__verbose_terminate_handler()+452) > I/DEBUG ( 2763): #05 pc 0004e3f7 > /data/app/com.example.CordovaPluginOicDemo-1/lib/x86/libgnustl_shared.so > (__cxxabiv1::__terminate(void (*)())+23) > I/DEBUG ( 2763): #06 pc 0004e48f > /data/app/com.example.CordovaPluginOicDemo-1/lib/x86/libgnustl_shared.so > (std::terminate()+31) > I/DEBUG ( 2763): #07 pc 000bcdfd > /data/app/com.example.CordovaPluginOicDemo-1/lib/x86/libgnustl_shared.so > (execute_native_thread_routine+141) > I/DEBUG ( 2763): #08 pc 000301f9 /system/lib/libc.so > (__pthread_start(void*)+57) > I/DEBUG ( 2763): #09 pc 0002b3da /system/lib/libc.so > (__start_thread+26) > I/DEBUG ( 2763): #10 pc 00012c56 /system/lib/libc.so > (__bionic_clone+70) > > > However, it looks like a threading problem, and I looked at > /android/examples/simpleclient/?/SimpleClient.java and right before calling > ?get? on a resource, it does ?sleep(1)?. > > Might the two things be related? ?sleep(1)? just doesn?t sound right? can > anyone explain what?s going on and how to address it properly?
Hi again, I?ve done some more experimenting, and I?ve come to the conclusion that the stack is systematically crashing when the JNI layer removes the OnGetListener. This can always be seen in my logs before the crash: D/OIC-JNI ( 8643): ~JniOnGetListener I/OIC-JNI ( 8643): OnEventListener is removed Unfortunately there are no more debug logs in that Java file, but given the fact that the backtrace mentions ?pthread_kill?, maybe this is related to g_jvm->DetachCurrentThread()? I?m using the Iotivity Java stack in a Cordova plugin for Android, if it helps. Please let me know if you can help! Thanks! Salvatore