--- a/javacommons/comms/src/commsendpoint.cpp Fri Oct 15 12:29:39 2010 +0300
+++ b/javacommons/comms/src/commsendpoint.cpp Fri Oct 29 11:49:32 2010 +0300
@@ -442,13 +442,14 @@
return rc;
}
-OS_EXPORT int CommsEndpoint::unregisterDefaultJavaListener(jobject, JNIEnv*)
+OS_EXPORT int CommsEndpoint::unregisterDefaultJavaListener(jobject, JNIEnv* aEnv)
{
ScopedLock lock(mListenersMutex);
int rc = 0;
if (mDefaultListener && mDefaultListener->getListener() == 0)
{
+ mDefaultListener->release(aEnv);
delete mDefaultListener;
mDefaultListener = 0;
LOG(EJavaComms, EInfo, "Unregistered default java listener");
@@ -476,7 +477,7 @@
return rc;
}
-OS_EXPORT int CommsEndpoint::detachFromVm()
+OS_EXPORT int CommsEndpoint::detachFromVm(JNIEnv* aEnv)
{
// JELOG2(EJavaComms);
ScopedLock lock(mListenersMutex);
@@ -484,6 +485,7 @@
// remove java listeners
if (mDefaultListener && mDefaultListener->getListener() == 0)
{
+ mDefaultListener->release(aEnv);
delete mDefaultListener;
mDefaultListener = 0;
LOG(EJavaComms, EInfo, "Removed default java listener (detach)");
@@ -495,7 +497,7 @@
{
LOG1(EJavaComms, EInfo, "Removed java listener for module id %d (detach)", it->first);
- (it->second)->release(mJNIEnv);
+ (it->second)->release(aEnv);
delete it->second;
mListeners.erase(it);
it = mListeners.begin();