Hi Jaehong,
I've taken your comments and made those changes in the latest commit. Please 
check it at https://gerrit.iotivity.org/gerrit/#/c/2099/.

For the goto exit part, because I personally didn't use goto, I'm not sure 
what's the best practice.
If so, we need to move ALL the variable definitions to the top of function
jobject jni_obj_socket = NULL;     // do we need to assign NULL value?
jni_obj_socket = ...
...
exit: (*env)->DeleteLocalRef(env, jni_obj_socket); return CA_STATUS_FAILED;     
// no other return values in the future?
Also, I'm not sure if we pass a NULL to DeleteLocalRef.


What's your suggestion?


Best Regard, === Yu-Hsin Hung,Intern, MediatekGraduate Student, Institute of 
Computer Science and Engineering,National Chiao-Tung Universiry, Hsinchu 300, 
Taiwan (Phone) +886911012113(Email) hungys at hotmail.com (Website)  
http://hungys.logdown.com/ ===

Date: Tue, 4 Aug 2015 05:53:34 +0000
From: [email protected]
Subject: Re: [dev] [Android] JNI local reference table overflow (CA)
To: hungys at hotmail.com; iotivity-dev at lists.iotivity.org





Hi, Yu-Hsin.

I have confirmed your modifications, seems almost good.
Please check my (few) comments.
And I have added maintainer for reviewer.
Once confirmed, your changes will be merged.
Thank you for your contribution.

Regards,
Jaehong.

------- Original Message -------

Sender : Hung Yu-Hsin<hungys at hotmail.com>

Date : 2015-08-04 12:09 (GMT+09:00)

Title : RE: [dev] [Android] JNI local reference table overflow (CA)





Hi Jaehong, 


I've commited the changes, please review it.
https://gerrit.iotivity.org/gerrit/#/c/2099/


This version has been tested to run for 90 minutes without any crash (client 
keeps sending GET request every 2 sec)




Best Regard, === Yu-Hsin Hung,
Intern, Mediatek
Graduate Student, Institute of Computer Science and Engineering,
National Chiao-Tung Universiry, Hsinchu 300, Taiwan 
(Phone) +886911012113
(Email) hungys at hotmail.com (Website)  http://hungys.logdown.com/ ===




Date: Mon, 3 Aug 2015 11:41:50 +0000
From: [email protected]
Subject: RE: [dev] [Android] JNI local reference table overflow (CA)
To: hungys at hotmail.com; iotivity-dev at lists.iotivity.org


Hi, Yu-Hsin.
Sounds great.
Add me as your reviewer to confirm.
Have a nice day.

Regards,
Jaehong.
 ------- Original Message -------
Sender : Hung Yu-Hsin<hungys at hotmail.com>
Date : 2015-08-03 17:35 (GMT+09:00)
Title : RE: [dev] [Android] JNI local reference table overflow (CA)




Hi Jaehong, 


I've seen your patch this morning, but I still found some memory leak issues 
that cause application crashed after few minutes due to JNI local reference 
table overflow. (My client just keeps polling to server every 5 seconds)


I think I've found where the memory leak occurs although I'm not sure why 
they're not handled by JVM. Based on your patch, I add few lines in EDR 
implementation to prevent memory leak and now it has been tested to run for 
thirty minutes without crash. Once I confirm the patch does fix the issue, I 
can try to submit it.


Thank you!





Best Regard, === Yu-Hsin Hung,
Electrical Engineering and Computer Science Undergraduate Honors Program, 
National Chiao-Tung Universiry, Hsinchu 300, Taiwan 
(Phone) +886911012113
(Email) hungys at hotmail.com (Website)  http://hungys.logdown.com/ ===




Date: Mon, 3 Aug 2015 08:25:49 +0000
From: [email protected]
Subject: Re: [dev] [Android] JNI local reference table overflow (CA)
To: hungys at hotmail.com; iotivity-dev at lists.iotivity.org


Hi, Yu-Hsin.

Recently we found an issue in CA with BT transport where InputStream is created 
for each BT read.
So I had fixed that problem and submitted patch @ 
https://gerrit.iotivity.org/gerrit/#/c/2017/

With above fix, we are able to transmit the data between devices using CA 
sample as BT support is not yet integrated with RI and samples.

Please check the latest version. If you have the same problem, log a jira 
ticket with debug log.
(Scons build using option RELEASE = 0) @ http://jira.iotivity.org


Regards,
Jaehong.


------- Original Message -------
Sender : Hung Yu-Hsin<hungys at hotmail.com>
Date : 2015-07-30 18:29 (GMT+09:00)
Title : [dev] [Android] JNI local reference table overflow (CA)




Hi All, 


Recently I found that the multi transport restriction of Android in CA's scons 
script is removed, so I tried to build a new aar to support IP/EDR/LE 
simultaneously.


My application runs well before I added reference to the new aar, although it 
only support IP adapter due to IoTivity limitation. After integrate with the 
new aar, the Android sample app: simpleclient and simpleserver, work great with 
Bluetooth EDR connection, but often crashed on my application.


Basically my client will do polling to server periodically (assume 5s), and the 
app always crashed after about one minute. The log says there is an error: "JNI 
ERROR (app bug): local reference table overflow (max=512)", so I guess there 
are some issues in the CA implementation.


Also, if I set the period more frequently, almost no operation will succeed 
(findResource, get...), I suspect the implementation of EDR is not thread-safe, 
so the data operation on the Bluetooth interface will lead to unexpected 
behavior?


Here are some logs of my application for this issue: http://pastie.org/10319711


Thanks!



Best Regard, === Yu-Hsin Hung,
Electrical Engineering and Computer Science Undergraduate Honors Program, 
National Chiao-Tung Universiry, Hsinchu 300, Taiwan 
(Phone) +886911012113
(Email) hungys at hotmail.com (Website)  http://hungys.logdown.com/ ===





-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150804/b0fb994e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 201508041453101_Z5JE7EUA.gif
Type: image/gif
Size: 13168 bytes
Desc: not available
URL: 
<http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150804/b0fb994e/attachment.gif>

Reply via email to