Repository: reef Updated Branches: refs/heads/master d4da7c396 -> 9bf549458
[REEF-1065] Add Java Reference Cleanup for InterOp code This addressed the issue by * Add Finalizer and Destructor in InterOp objects. * Call DeleteGlobalRef where NewGlobalRef is called. JIRA: [REEF-1065](https://issues.apache.org/jira/browse/REEF-1065) Pull Request: Closes #723 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/9bf54945 Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/9bf54945 Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/9bf54945 Branch: refs/heads/master Commit: 9bf549458cceb57da52187eb4a713714e9111dc8 Parents: d4da7c3 Author: Andrew Chung <[email protected]> Authored: Thu Dec 10 18:01:11 2015 -0800 Committer: Beysim Sezgin <[email protected]> Committed: Fri Dec 11 10:41:38 2015 -0800 ---------------------------------------------------------------------- .../ActiveContextClr2Java.cpp | 19 ++++ .../AllocatedEvaluatorClr2Java.cpp | 19 ++++ .../ClosedContextClr2Java.cpp | 19 ++++ lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h | 100 ++++++++++++------- .../CompletedEvaluatorClr2Java.cpp | 15 +++ .../CompletedTaskClr2Java.cpp | 15 +++ .../ContextMessageClr2Java.cpp | 23 +++++ .../DriverRestartCompletedClr2Java.cpp | 11 ++ .../DriverRestartedClr2Java.cpp | 13 +++ .../EvaluatorRequestorClr2Java.cpp | 11 ++ .../FailedContextClr2Java.cpp | 23 +++++ .../FailedEvaluatorClr2Java.cpp | 15 +++ .../FailedTaskClr2Java.cpp | 11 ++ .../HttpServerClr2Java.cpp | 11 ++ .../RunningTaskClr2Java.cpp | 15 +++ .../SuspendedTaskClr2Java.cpp | 15 +++ .../TaskMessageClr2Java.cpp | 15 +++ 17 files changed, 316 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp index 84f82e0..be2f271 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp @@ -46,6 +46,25 @@ namespace Org { ManagedLog::LOGGER->LogStop("ActiveContextClr2Java::ActiveContextClr2Java"); } + ActiveContextClr2Java::~ActiveContextClr2Java() { + this->!ActiveContextClr2Java(); + } + + ActiveContextClr2Java::!ActiveContextClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectActiveContext != NULL) { + env->DeleteGlobalRef(_jobjectActiveContext); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + + if (_jstringEvaluatorId != NULL) { + env->DeleteGlobalRef(_jstringEvaluatorId); + } + } + void ActiveContextClr2Java::SubmitTask(String^ taskConfigStr) { ManagedLog::LOGGER->LogStart("ActiveContextClr2Java::SubmitTask"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/AllocatedEvaluatorClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/AllocatedEvaluatorClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/AllocatedEvaluatorClr2Java.cpp index b23fb43..fc02a45 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/AllocatedEvaluatorClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/AllocatedEvaluatorClr2Java.cpp @@ -50,6 +50,25 @@ namespace Org { ManagedLog::LOGGER->LogStop("AllocatedEvaluatorClr2Java::AllocatedEvaluatorClr2Java"); } + AllocatedEvaluatorClr2Java::~AllocatedEvaluatorClr2Java() { + this->!AllocatedEvaluatorClr2Java(); + } + + AllocatedEvaluatorClr2Java::!AllocatedEvaluatorClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectAllocatedEvaluator != NULL) { + env->DeleteGlobalRef(_jobjectAllocatedEvaluator); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + + if (_jstringNameServerInfo != NULL) { + env->DeleteGlobalRef(_jstringNameServerInfo); + } + } + void AllocatedEvaluatorClr2Java::SubmitContext(String^ contextConfigStr) { ManagedLog::LOGGER->LogStart("AllocatedEvaluatorClr2Java::SubmitContext"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp index 70f6ca2..cac7b44 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp @@ -47,6 +47,25 @@ namespace Org { ManagedLog::LOGGER->LogStop("ClosedContextClr2Java::ClosedContextClr2Java"); } + ClosedContextClr2Java::~ClosedContextClr2Java() { + this->!ClosedContextClr2Java(); + } + + ClosedContextClr2Java::!ClosedContextClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectClosedContext != NULL) { + env->DeleteGlobalRef(_jobjectClosedContext); + } + + if (_jstringContextId != NULL) { + env->DeleteGlobalRef(_jstringContextId); + } + + if (_jstringEvaluatorId != NULL) { + env->DeleteGlobalRef(_jstringEvaluatorId); + } + } + /** * Gets the Parent context of the closed context through a JNI call to Java. */ http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h b/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h index b4bdf69..4d270f2 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h +++ b/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h @@ -55,12 +55,14 @@ namespace Org { }; public ref class AllocatedEvaluatorClr2Java : public IAllocatedEvaluaotrClr2Java { - jobject _jobjectAllocatedEvaluator; + jobject _jobjectAllocatedEvaluator = NULL; JavaVM* _jvm; - jstring _jstringId; - jstring _jstringNameServerInfo; + jstring _jstringId = NULL; + jstring _jstringNameServerInfo = NULL; public: AllocatedEvaluatorClr2Java(JNIEnv *env, jobject jallocatedEvaluator); + ~AllocatedEvaluatorClr2Java(); + !AllocatedEvaluatorClr2Java(); virtual void SubmitContextAndTask(String^ contextConfigStr, String^ taskConfigStr); virtual void SubmitContext(String^ contextConfigStr); virtual void SubmitContextAndService(String^ contextConfigStr, String^ serviceConfigStr); @@ -73,12 +75,14 @@ namespace Org { }; public ref class ActiveContextClr2Java : public IActiveContextClr2Java { - jobject _jobjectActiveContext; - jstring _jstringId; - jstring _jstringEvaluatorId; + jobject _jobjectActiveContext = NULL; + jstring _jstringId = NULL; + jstring _jstringEvaluatorId = NULL; JavaVM* _jvm; public: ActiveContextClr2Java(JNIEnv *env, jobject jallocatedEvaluator); + ~ActiveContextClr2Java(); + !ActiveContextClr2Java(); virtual void SubmitTask(String^ taskConfigStr); virtual void Close(); virtual void OnError(String^ message); @@ -89,40 +93,48 @@ namespace Org { }; public ref class EvaluatorRequestorClr2Java : public IEvaluatorRequestorClr2Java { - jobject _jobjectEvaluatorRequestor; + jobject _jobjectEvaluatorRequestor = NULL; JavaVM* _jvm; public: EvaluatorRequestorClr2Java(JNIEnv *env, jobject jevaluatorRequestor); + ~EvaluatorRequestorClr2Java(); + !EvaluatorRequestorClr2Java(); virtual void OnError(String^ message); virtual void Submit(IEvaluatorRequest^ request); }; public ref class TaskMessageClr2Java : public ITaskMessageClr2Java { - jobject _jobjectTaskMessage; + jobject _jobjectTaskMessage = NULL; JavaVM* _jvm; - jstring _jstringId; + jstring _jstringId = NULL; public: TaskMessageClr2Java(JNIEnv *env, jobject jtaskMessage); + ~TaskMessageClr2Java(); + !TaskMessageClr2Java(); virtual void OnError(String^ message); virtual String^ GetId(); }; public ref class FailedTaskClr2Java : public IFailedTaskClr2Java { - jobject _jobjectFailedTask; + jobject _jobjectFailedTask = NULL; JavaVM* _jvm; public: FailedTaskClr2Java(JNIEnv *env, jobject jfailedTask); + ~FailedTaskClr2Java(); + !FailedTaskClr2Java(); virtual void OnError(String^ message); virtual IActiveContextClr2Java^ GetActiveContext(); virtual String^ GetString(); }; public ref class RunningTaskClr2Java : public IRunningTaskClr2Java { - jobject _jobjectRunningTask; + jobject _jobjectRunningTask = NULL; JavaVM* _jvm; - jstring _jstringId; + jstring _jstringId = NULL; public: RunningTaskClr2Java(JNIEnv *env, jobject jrunningTask); + ~RunningTaskClr2Java(); + !RunningTaskClr2Java(); virtual void OnError(String^ message); virtual IActiveContextClr2Java^ GetActiveContext(); virtual String^ GetId(); @@ -130,21 +142,25 @@ namespace Org { }; public ref class FailedEvaluatorClr2Java : public IFailedEvaluatorClr2Java { - jobject _jobjectFailedEvaluator; + jobject _jobjectFailedEvaluator = NULL; JavaVM* _jvm; - jstring _jstringId; + jstring _jstringId = NULL; public: FailedEvaluatorClr2Java(JNIEnv *env, jobject jfailedEvaluator); + ~FailedEvaluatorClr2Java(); + !FailedEvaluatorClr2Java(); virtual void OnError(String^ message); virtual IEvaluatorRequestorClr2Java^ GetEvaluatorRequestor(); virtual String^ GetId(); }; public ref class HttpServerClr2Java : public IHttpServerBridgeClr2Java { - jobject _jhttpServerEventBridge; + jobject _jhttpServerEventBridge = NULL; JavaVM* _jvm; public: HttpServerClr2Java(JNIEnv *env, jobject jhttpServerEventBridge); + ~HttpServerClr2Java(); + !HttpServerClr2Java(); virtual void OnError(String^ message); virtual String^ GetQueryString(); virtual void SetUriSpecification(String^ uriSpecification); @@ -154,11 +170,13 @@ namespace Org { }; public ref class CompletedTaskClr2Java : public ICompletedTaskClr2Java { - jobject _jobjectCompletedTask; + jobject _jobjectCompletedTask = NULL; JavaVM* _jvm; - jstring _jstringId; + jstring _jstringId = NULL; public: CompletedTaskClr2Java(JNIEnv *env, jobject jcompletedTask); + ~CompletedTaskClr2Java(); + !CompletedTaskClr2Java(); virtual void OnError(String^ message); virtual IActiveContextClr2Java^ GetActiveContext(); virtual String^ GetId(); @@ -166,11 +184,13 @@ namespace Org { }; public ref class SuspendedTaskClr2Java : public ISuspendedTaskClr2Java { - jobject _jobjectSuspendedTask; + jobject _jobjectSuspendedTask = NULL; JavaVM* _jvm; - jstring _jstringId; + jstring _jstringId = NULL; public: SuspendedTaskClr2Java(JNIEnv *env, jobject jobjectSuspendedTask); + ~SuspendedTaskClr2Java(); + !SuspendedTaskClr2Java(); virtual void OnError(String^ message); virtual IActiveContextClr2Java^ GetActiveContext(); virtual String^ GetId(); @@ -178,22 +198,26 @@ namespace Org { }; public ref class CompletedEvaluatorClr2Java : public ICompletedEvaluatorClr2Java { - jobject _jobjectCompletedEvaluator; + jobject _jobjectCompletedEvaluator = NULL; JavaVM* _jvm; - jstring _jstringId; + jstring _jstringId = NULL; public: CompletedEvaluatorClr2Java(JNIEnv *env, jobject jobjectCompletedEvaluator); + ~CompletedEvaluatorClr2Java(); + !CompletedEvaluatorClr2Java(); virtual void OnError(String^ message); virtual String^ GetId(); }; public ref class ClosedContextClr2Java : public IClosedContextClr2Java { - jobject _jobjectClosedContext; + jobject _jobjectClosedContext = NULL; JavaVM* _jvm; - jstring _jstringContextId; - jstring _jstringEvaluatorId; + jstring _jstringContextId = NULL; + jstring _jstringEvaluatorId = NULL; public: ClosedContextClr2Java(JNIEnv *env, jobject jobjectClosedContext); + ~ClosedContextClr2Java(); + !ClosedContextClr2Java(); virtual void OnError(String^ message); virtual String^ GetId(); virtual String^ GetEvaluatorId(); @@ -202,13 +226,15 @@ namespace Org { }; public ref class FailedContextClr2Java : public IFailedContextClr2Java { - jobject _jobjectFailedContext; + jobject _jobjectFailedContext = NULL; JavaVM* _jvm; - jstring _jstringContextId; - jstring _jstringEvaluatorId; - jstring _jstringParentContextId; + jstring _jstringContextId = NULL; + jstring _jstringEvaluatorId = NULL; + jstring _jstringParentContextId = NULL; public: FailedContextClr2Java(JNIEnv *env, jobject jobjectFailedContext); + ~FailedContextClr2Java(); + !FailedContextClr2Java(); virtual void OnError(String^ message); virtual String^ GetId(); virtual String^ GetEvaluatorId(); @@ -218,13 +244,15 @@ namespace Org { }; public ref class ContextMessageClr2Java : public IContextMessageClr2Java { - jobject _jobjectContextMessage; + jobject _jobjectContextMessage = NULL; JavaVM* _jvm; - jbyteArray _jarrayMessage; - jstring _jstringId; - jstring _jstringSourceId; + jbyteArray _jarrayMessage = NULL; + jstring _jstringId = NULL; + jstring _jstringSourceId = NULL; public: ContextMessageClr2Java(JNIEnv *env, jobject jobjectContextMessage); + ~ContextMessageClr2Java(); + !ContextMessageClr2Java(); virtual void OnError(String^ message); virtual array<byte>^ Get(); virtual String^ GetId(); @@ -232,13 +260,15 @@ namespace Org { }; public ref class DriverRestartedClr2Java : public IDriverRestartedClr2Java { - jobject _jobjectDriverRestarted; + jobject _jobjectDriverRestarted = NULL; JavaVM* _jvm; array<String^>^ _expectedEvaluatorIds; DateTime _startTime; int _resubmissionAttempts; public: DriverRestartedClr2Java(JNIEnv *env, jobject jobjectDriverRestarted); + ~DriverRestartedClr2Java(); + !DriverRestartedClr2Java(); virtual void OnError(String^ message); virtual array<String^>^ GetExpectedEvaluatorIds(); virtual DateTime GetStartTime(); @@ -246,12 +276,14 @@ namespace Org { }; public ref class DriverRestartCompletedClr2Java : public IDriverRestartCompletedClr2Java { - jobject _jobjectDriverRestartCompleted; + jobject _jobjectDriverRestartCompleted = NULL; JavaVM* _jvm; DateTime _restartCompletedTime; bool _isTimedOut; public: DriverRestartCompletedClr2Java(JNIEnv *env, jobject jobobjectDriverRestartCompleted); + ~DriverRestartCompletedClr2Java(); + !DriverRestartCompletedClr2Java(); virtual void OnError(String^ message); virtual DateTime GetCompletedTime(); virtual bool IsTimedOut(); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/CompletedEvaluatorClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/CompletedEvaluatorClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/CompletedEvaluatorClr2Java.cpp index 6c09826..3f54ec1 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/CompletedEvaluatorClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/CompletedEvaluatorClr2Java.cpp @@ -42,6 +42,21 @@ namespace Org { ManagedLog::LOGGER->LogStop("CompletedEvaluatorClr2Java::CompletedEvaluatorClr2Java"); } + CompletedEvaluatorClr2Java::~CompletedEvaluatorClr2Java() { + this->!CompletedEvaluatorClr2Java(); + } + + CompletedEvaluatorClr2Java::!CompletedEvaluatorClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectCompletedEvaluator != NULL) { + env->DeleteGlobalRef(_jobjectCompletedEvaluator); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + } + void CompletedEvaluatorClr2Java::OnError(String^ message) { ManagedLog::LOGGER->Log("CompletedEvaluatorClr2Java::OnError"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/CompletedTaskClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/CompletedTaskClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/CompletedTaskClr2Java.cpp index 50f1b42..f8790bf 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/CompletedTaskClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/CompletedTaskClr2Java.cpp @@ -43,6 +43,21 @@ namespace Org { ManagedLog::LOGGER->LogStop("CompletedTaskClr2Java::CompletedTaskClr2Java"); } + CompletedTaskClr2Java::~CompletedTaskClr2Java(){ + this->!CompletedTaskClr2Java(); + } + + CompletedTaskClr2Java::!CompletedTaskClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectCompletedTask != NULL) { + env->DeleteGlobalRef(_jobjectCompletedTask); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + } + void CompletedTaskClr2Java::OnError(String^ message) { ManagedLog::LOGGER->Log("CompletedTaskClr2Java::OnError"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/ContextMessageClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/ContextMessageClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/ContextMessageClr2Java.cpp index 18ff378..d3d594d 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/ContextMessageClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/ContextMessageClr2Java.cpp @@ -48,6 +48,29 @@ namespace Org { ManagedLog::LOGGER->LogStop("ContextMessageClr2Java::ContextMessageClr2Java"); } + ContextMessageClr2Java::~ContextMessageClr2Java() { + this->!ContextMessageClr2Java(); + } + + ContextMessageClr2Java::!ContextMessageClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectContextMessage != NULL) { + env->DeleteGlobalRef(_jobjectContextMessage); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + + if (_jstringSourceId != NULL) { + env->DeleteGlobalRef(_jstringSourceId); + } + + if (_jarrayMessage != NULL) { + env->DeleteGlobalRef(_jarrayMessage); + } + } + String^ ContextMessageClr2Java::GetId() { ManagedLog::LOGGER->Log("ContextMessageClr2Java::GetId"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/DriverRestartCompletedClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/DriverRestartCompletedClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/DriverRestartCompletedClr2Java.cpp index 1e9a521..2c04456 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/DriverRestartCompletedClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/DriverRestartCompletedClr2Java.cpp @@ -47,6 +47,17 @@ namespace Org { ManagedLog::LOGGER->LogStop("DriverRestartCompletedClr2Java::DriverRestartCompletedClr2Java"); } + DriverRestartCompletedClr2Java::~DriverRestartCompletedClr2Java() { + this->!DriverRestartCompletedClr2Java(); + } + + DriverRestartCompletedClr2Java::!DriverRestartCompletedClr2Java() { + if (_jobjectDriverRestartCompleted != NULL) { + JNIEnv *env = RetrieveEnv(_jvm); + env->DeleteGlobalRef(_jobjectDriverRestartCompleted); + } + } + bool DriverRestartCompletedClr2Java::IsTimedOut() { return _isTimedOut; } http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/DriverRestartedClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/DriverRestartedClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/DriverRestartedClr2Java.cpp index efb30d9..e6ab41b 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/DriverRestartedClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/DriverRestartedClr2Java.cpp @@ -52,9 +52,22 @@ namespace Org { _expectedEvaluatorIds[i] = ManagedStringFromJavaString(env, string); } + env->DeleteGlobalRef(jevaluatorIds); + ManagedLog::LOGGER->LogStop("DriverRestartedClr2Java::DriverRestartedClr2Java"); } + DriverRestartedClr2Java::~DriverRestartedClr2Java() { + this->!DriverRestartedClr2Java(); + } + + DriverRestartedClr2Java::!DriverRestartedClr2Java() { + if (_jobjectDriverRestarted != NULL) { + JNIEnv *env = RetrieveEnv(_jvm); + env->DeleteGlobalRef(_jobjectDriverRestarted); + } + } + array<String^>^ DriverRestartedClr2Java::GetExpectedEvaluatorIds() { return _expectedEvaluatorIds; } http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/EvaluatorRequestorClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/EvaluatorRequestorClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/EvaluatorRequestorClr2Java.cpp index 2daed9e..45ad8ea 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/EvaluatorRequestorClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/EvaluatorRequestorClr2Java.cpp @@ -39,6 +39,17 @@ namespace Org { ManagedLog::LOGGER->LogStop("EvaluatorRequestorClr2Java::EvaluatorRequestorClr2Java"); } + EvaluatorRequestorClr2Java::~EvaluatorRequestorClr2Java() { + this->!EvaluatorRequestorClr2Java(); + } + + EvaluatorRequestorClr2Java::!EvaluatorRequestorClr2Java() { + if (_jobjectEvaluatorRequestor != NULL) { + JNIEnv *env = RetrieveEnv(_jvm); + env->DeleteGlobalRef(_jobjectEvaluatorRequestor); + } + } + void EvaluatorRequestorClr2Java::Submit(IEvaluatorRequest^ request) { ManagedLog::LOGGER->LogStart("EvaluatorRequestorClr2Java::Submit"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/FailedContextClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/FailedContextClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/FailedContextClr2Java.cpp index 9b26bbb..1913507 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/FailedContextClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/FailedContextClr2Java.cpp @@ -47,6 +47,29 @@ namespace Org { ManagedLog::LOGGER->LogStop("FailedContextClr2Java::FailedContextClr2Java"); } + FailedContextClr2Java::~FailedContextClr2Java() { + this->!FailedContextClr2Java(); + } + + FailedContextClr2Java::!FailedContextClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectFailedContext != NULL) { + env->DeleteGlobalRef(_jobjectFailedContext); + } + + if (_jstringContextId != NULL) { + env->DeleteGlobalRef(_jstringContextId); + } + + if (_jstringEvaluatorId != NULL) { + env->DeleteGlobalRef(_jstringEvaluatorId); + } + + if (_jstringParentContextId != NULL) { + env->DeleteGlobalRef(_jstringParentContextId); + } + } + IActiveContextClr2Java^ FailedContextClr2Java::GetParentContext() { ManagedLog::LOGGER->LogStart("FailedContextClr2Java::GetParentContext"); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/FailedEvaluatorClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/FailedEvaluatorClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/FailedEvaluatorClr2Java.cpp index afccbbe..7f13d5d 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/FailedEvaluatorClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/FailedEvaluatorClr2Java.cpp @@ -44,6 +44,21 @@ namespace Org { ManagedLog::LOGGER->LogStop("FailedEvaluatorClr2Java::FailedEvaluatorClr2Java"); } + FailedEvaluatorClr2Java::~FailedEvaluatorClr2Java() { + this->!FailedEvaluatorClr2Java(); + } + + FailedEvaluatorClr2Java::!FailedEvaluatorClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectFailedEvaluator != NULL) { + env->DeleteGlobalRef(_jobjectFailedEvaluator); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + } + IEvaluatorRequestorClr2Java^ FailedEvaluatorClr2Java::GetEvaluatorRequestor() { ManagedLog::LOGGER->LogStart("FailedEvaluatorClr2Java::GetEvaluatorRequestor"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/FailedTaskClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/FailedTaskClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/FailedTaskClr2Java.cpp index b6e2be2..de702b7 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/FailedTaskClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/FailedTaskClr2Java.cpp @@ -39,6 +39,17 @@ namespace Org { ManagedLog::LOGGER->LogStop("FailedTaskClr2Java::AllocatedEvaluatorClr2Java"); } + FailedTaskClr2Java::~FailedTaskClr2Java() { + this->!FailedTaskClr2Java(); + } + + FailedTaskClr2Java::!FailedTaskClr2Java() { + if (_jobjectFailedTask != NULL) { + JNIEnv *env = RetrieveEnv(_jvm); + env->DeleteGlobalRef(_jobjectFailedTask); + } + } + IActiveContextClr2Java^ FailedTaskClr2Java::GetActiveContext() { ManagedLog::LOGGER->LogStart("FailedTaskClr2Java::GetActiveContext"); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/HttpServerClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/HttpServerClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/HttpServerClr2Java.cpp index f8a819d..76e167c 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/HttpServerClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/HttpServerClr2Java.cpp @@ -39,6 +39,17 @@ namespace Org { ManagedLog::LOGGER->LogStop("HttpServerClr2Java::HttpServerClr2Java"); } + HttpServerClr2Java::~HttpServerClr2Java() { + this->!HttpServerClr2Java(); + } + + HttpServerClr2Java::!HttpServerClr2Java() { + if (_jhttpServerEventBridge != NULL) { + JNIEnv *env = RetrieveEnv(_jvm); + env->DeleteGlobalRef(_jhttpServerEventBridge); + } + } + String^ HttpServerClr2Java::GetQueryString() { ManagedLog::LOGGER->LogStart("HttpServerClr2Java::GetQueryString"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/RunningTaskClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/RunningTaskClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/RunningTaskClr2Java.cpp index 362715b..eda80b0 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/RunningTaskClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/RunningTaskClr2Java.cpp @@ -42,6 +42,21 @@ namespace Org { ManagedLog::LOGGER->LogStop("RunningTaskClr2Java::RunningTaskClr2Java"); } + RunningTaskClr2Java::~RunningTaskClr2Java() { + this->!RunningTaskClr2Java(); + } + + RunningTaskClr2Java::!RunningTaskClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectRunningTask != NULL) { + env->DeleteGlobalRef(_jobjectRunningTask); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + } + IActiveContextClr2Java^ RunningTaskClr2Java::GetActiveContext() { ManagedLog::LOGGER->LogStart("RunningTaskClr2Java::GetActiveContext"); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/SuspendedTaskClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/SuspendedTaskClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/SuspendedTaskClr2Java.cpp index 059b594..2684028 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/SuspendedTaskClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/SuspendedTaskClr2Java.cpp @@ -42,6 +42,21 @@ namespace Org { ManagedLog::LOGGER->LogStop("SuspendedTaskClr2Java::SuspendedTaskClr2Java"); } + SuspendedTaskClr2Java::~SuspendedTaskClr2Java() { + this->!SuspendedTaskClr2Java(); + } + + SuspendedTaskClr2Java::!SuspendedTaskClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectSuspendedTask != NULL) { + env->DeleteGlobalRef(_jobjectSuspendedTask); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + } + IActiveContextClr2Java^ SuspendedTaskClr2Java::GetActiveContext() { ManagedLog::LOGGER->LogStart("SuspendedTaskClr2Java::GetActiveContext"); JNIEnv *env = RetrieveEnv(_jvm); http://git-wip-us.apache.org/repos/asf/reef/blob/9bf54945/lang/cs/Org.Apache.REEF.Bridge/TaskMessageClr2Java.cpp ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Bridge/TaskMessageClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/TaskMessageClr2Java.cpp index 1fa3cec..a4eca1a 100644 --- a/lang/cs/Org.Apache.REEF.Bridge/TaskMessageClr2Java.cpp +++ b/lang/cs/Org.Apache.REEF.Bridge/TaskMessageClr2Java.cpp @@ -42,6 +42,21 @@ namespace Org { ManagedLog::LOGGER->LogStop("TaskMessageClr2Java::TaskMessageClr2Java"); } + TaskMessageClr2Java::~TaskMessageClr2Java() { + this->!TaskMessageClr2Java(); + } + + TaskMessageClr2Java::!TaskMessageClr2Java() { + JNIEnv *env = RetrieveEnv(_jvm); + if (_jobjectTaskMessage != NULL) { + env->DeleteGlobalRef(_jobjectTaskMessage); + } + + if (_jstringId != NULL) { + env->DeleteGlobalRef(_jstringId); + } + } + void TaskMessageClr2Java::OnError(String^ message) { ManagedLog::LOGGER->Log("TaskMessageClr2Java::OnError"); JNIEnv *env = RetrieveEnv(_jvm);
