Repository: reef
Updated Branches:
  refs/heads/master 2f152db51 -> 848cf9298


[REEF-986] Switch all InterOp calls to call public get methods in Java instead 
of referencing private fields

JIRA:
  [REEF-986](https://issues.apache.org/jira/browse/REEF-986)

Pull request:
  This closes #669


Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/848cf929
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/848cf929
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/848cf929

Branch: refs/heads/master
Commit: 848cf92980c2e0cc8942551a3228176a1afaed94
Parents: 2f152db
Author: Andrew Chung <[email protected]>
Authored: Fri Nov 20 16:46:34 2015 -0800
Committer: Dongjoon Hyun <[email protected]>
Committed: Wed Dec 2 21:31:35 2015 +0900

----------------------------------------------------------------------
 .../ActiveContextClr2Java.cpp                   | 10 +---
 .../AllocatedEvaluatorClr2Java.cpp              |  7 +--
 .../ClosedContextClr2Java.cpp                   | 36 ++++++------
 lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h   | 16 +++++-
 .../Org.Apache.REEF.Bridge/CommonUtilities.cpp  | 60 ++++++++++----------
 .../CompletedEvaluatorClr2Java.cpp              |  3 +-
 .../CompletedTaskClr2Java.cpp                   |  8 +--
 .../ContextMessageClr2Java.cpp                  | 11 ++--
 .../DriverRestartCompletedClr2Java.cpp          |  4 +-
 .../DriverRestartedClr2Java.cpp                 |  8 +--
 .../FailedContextClr2Java.cpp                   | 14 ++---
 .../FailedEvaluatorClr2Java.cpp                 |  7 +--
 .../FailedTaskClr2Java.cpp                      |  4 +-
 .../RunningTaskClr2Java.cpp                     |  8 +--
 .../SuspendedTaskClr2Java.cpp                   |  7 +--
 .../TaskMessageClr2Java.cpp                     |  3 +-
 .../reef/javabridge/ActiveContextBridge.java    | 14 +++++
 .../javabridge/AllocatedEvaluatorBridge.java    |  7 +++
 .../reef/javabridge/CompletedTaskBridge.java    |  8 +++
 .../reef/javabridge/DriverRestartedBridge.java  |  1 -
 .../reef/javabridge/FailedContextBridge.java    |  7 +++
 .../reef/javabridge/FailedEvaluatorBridge.java  | 12 +++-
 .../reef/javabridge/FailedTaskBridge.java       |  4 ++
 .../reef/javabridge/RunningTaskBridge.java      | 16 ++++--
 .../reef/javabridge/TaskMessageBridge.java      |  8 ++-
 .../generic/DriverRestartCompletedBridge.java   |  4 +-
 26 files changed, 172 insertions(+), 115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 605e01c..84f82e0 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp
@@ -39,13 +39,9 @@ namespace Org {
                                                        _jobjectActiveContext = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectActiveContext));
 
                                                        jclass 
jclassActiveContext = env->GetObjectClass(_jobjectActiveContext);
-
-                                                       jfieldID jidContextId = 
env->GetFieldID(jclassActiveContext, "contextId", "Ljava/lang/String;");
-                                                       _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectActiveContext,
 jidContextId)));
-
-                                                       jfieldID jidEvaluatorId 
= env->GetFieldID(jclassActiveContext, "evaluatorId", "Ljava/lang/String;");
-                                                       _jstringEvaluatorId = 
(jstring)env->GetObjectField(_jobjectActiveContext, jidEvaluatorId);
-                                                       _jstringEvaluatorId = 
reinterpret_cast<jstring>(env->NewGlobalRef(_jstringEvaluatorId));
+                                                       jmethodID 
jmidGetContextId = env->GetMethodID(jclassActiveContext, "getContextId", 
"()Ljava/lang/String;");
+                                                       _jstringId = 
CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, _jobjectActiveContext, 
jmidGetContextId);
+                                                       _jstringEvaluatorId = 
CommonUtilities::GetJObjectEvaluatorId(env, _jobjectActiveContext, 
jclassActiveContext);
 
                                                        
ManagedLog::LOGGER->LogStop("ActiveContextClr2Java::ActiveContextClr2Java");
                                                }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 4dabd96..b23fb43 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/AllocatedEvaluatorClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/AllocatedEvaluatorClr2Java.cpp
@@ -42,11 +42,10 @@ namespace Org {
                                                  _jobjectAllocatedEvaluator = 
reinterpret_cast<jobject>(env->NewGlobalRef(jallocatedEvaluator));
 
                                                  jclass 
jclassAllocatedEvaluator = env->GetObjectClass(_jobjectAllocatedEvaluator);
-                                                 jfieldID jidEvaluatorId = 
env->GetFieldID(jclassAllocatedEvaluator, "evaluatorId", "Ljava/lang/String;");
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectAllocatedEvaluator,
 jidEvaluatorId)));
+                                                 _jstringId = 
CommonUtilities::GetJObjectId(env, _jobjectAllocatedEvaluator, 
jclassAllocatedEvaluator);
 
-                                                 jfieldID jidNameServerInfo = 
env->GetFieldID(jclassAllocatedEvaluator, "nameServerInfo", 
"Ljava/lang/String;");
-                                                 _jstringNameServerInfo = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectAllocatedEvaluator,
 jidNameServerInfo)));
+                                                 jmethodID 
jmidGetNameServerInfo = env->GetMethodID(jclassAllocatedEvaluator, 
"getNameServerInfo", "()Ljava/lang/String;");
+                                                 _jstringNameServerInfo = 
CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, 
_jobjectAllocatedEvaluator, jmidGetNameServerInfo);
 
                                                  
ManagedLog::LOGGER->LogStop("AllocatedEvaluatorClr2Java::AllocatedEvaluatorClr2Java");
                                          }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 b1ea160..70f6ca2 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp
@@ -40,38 +40,36 @@ namespace Org {
                             _jobjectClosedContext = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectClosedContext));
                             jclass jclassClosedContext = 
env->GetObjectClass(_jobjectClosedContext);
 
-                            // Gets the Java fields in order to get the field 
values from the actual Java objects of the field.
-                            // TODO[JIRA REEF-986]: Switch to get method call.
-                            jfieldID jidContextId = 
env->GetFieldID(jclassClosedContext, "contextId", "Ljava/lang/String;");
-                            jfieldID jidEvaluatorId = 
env->GetFieldID(jclassClosedContext, "evaluatorId", "Ljava/lang/String;");
-
                             // Gets the Context ID and Evaluator ID of the 
closed context from the Java closed context object.
-                            _jstringContextId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectClosedContext,
 jidContextId)));
-                            _jstringEvaluatorId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectClosedContext,
 jidEvaluatorId)));
+                            _jstringContextId = 
CommonUtilities::GetJObjectId(env, _jobjectClosedContext, jclassClosedContext);
+                            _jstringEvaluatorId = 
CommonUtilities::GetJObjectEvaluatorId(env, _jobjectClosedContext, 
jclassClosedContext);
 
                             
ManagedLog::LOGGER->LogStop("ClosedContextClr2Java::ClosedContextClr2Java");
                         }
 
                         /**
-                          Gets the Parent context of the closed context 
through a JNI call to Java.
-                          */
+                         * Gets the Parent context of the closed context 
through a JNI call to Java.
+                         */
                         IActiveContextClr2Java^ 
ClosedContextClr2Java::GetParentContext() {
                             
ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::GetParentContext");
 
                             JNIEnv *env = RetrieveEnv(_jvm);
-
-                            // TODO[JIRA REEF-986]: Switch to get method call.
                             jclass jclassClosedContext = 
env->GetObjectClass(_jobjectClosedContext);
-                            jfieldID jidParentContext = 
env->GetFieldID(jclassClosedContext, "parentContext", 
"Lorg/apache/reef/javabridge/ActiveContextBridge;");
-                            jobject jobjectParentContext = 
env->GetObjectField(_jobjectClosedContext, jidParentContext);
+                            jmethodID jmidGetParentContext = 
env->GetMethodID(jclassClosedContext, "getParentContext", 
"()Lorg/apache/reef/javabridge/ActiveContextBridge;");
+                            if (jmidGetParentContext == NULL) {
+                                ManagedLog::LOGGER->Log("jmidGetParentContext 
is NULL");
+                                return nullptr;
+                            }
+
+                            jobject jobjectParentContext = 
CommonUtilities::CallGetMethodNewGlobalRef<jobject>(env, _jobjectClosedContext, 
jmidGetParentContext);
                             
ManagedLog::LOGGER->LogStop("ClosedContextClr2Java::GetParentContext");
 
                             return gcnew ActiveContextClr2Java(env, 
jobjectParentContext);
                         }
 
                         /**
-                          Gets the ID of the closed context from Java.
-                          */
+                         * Gets the ID of the closed context from Java.
+                         */
                         String^ ClosedContextClr2Java::GetId() {
                             
ManagedLog::LOGGER->Log("ClosedContextClr2Java::GetId");
                             JNIEnv *env = RetrieveEnv(_jvm);
@@ -79,8 +77,8 @@ namespace Org {
                         }
 
                         /**
-                          Gets the Evaluator ID of the Evaluator on which the 
Closed Context was active.
-                          */
+                         * Gets the Evaluator ID of the Evaluator on which the 
Closed Context was active.
+                         */
                         String^ ClosedContextClr2Java::GetEvaluatorId() {
                             
ManagedLog::LOGGER->Log("ClosedContextClr2Java::GetEvaluatorId");
                             JNIEnv *env = RetrieveEnv(_jvm);
@@ -88,8 +86,8 @@ namespace Org {
                         }
 
                         /**
-                          Gets the EvaluatorDescriptor of the Evaluator on 
which the Closed Context was active.
-                          */
+                         * Gets the EvaluatorDescriptor of the Evaluator on 
which the Closed Context was active.
+                         */
                         IEvaluatorDescriptor^ 
ClosedContextClr2Java::GetEvaluatorDescriptor() {
                             
ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::GetEvaluatorDescriptor");
                             return 
CommonUtilities::RetrieveEvaluatorDescriptor(_jobjectClosedContext, _jvm);

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 aa3a0e3..b4bdf69 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
+++ b/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
@@ -39,6 +39,19 @@ namespace Org {
                         public ref class CommonUtilities {
                         public:
                             static IEvaluatorDescriptor^ 
RetrieveEvaluatorDescriptor(jobject object, JavaVM* jvm);
+                            template<typename T> static T 
CallGetMethodNewGlobalRef(JNIEnv* env, jobject obj, jmethodID jmid) {
+                                return 
reinterpret_cast<T>(env->NewGlobalRef(env->CallObjectMethod(obj, jmid)));
+                            }
+
+                            static jstring GetJObjectId(JNIEnv* env, jobject 
obj, jclass javaClass) {
+                                jmethodID jmid = env->GetMethodID(javaClass, 
"getId", "()Ljava/lang/String;");
+                                return 
CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, obj, jmid);
+                            };
+
+                            static jstring GetJObjectEvaluatorId(JNIEnv* env, 
jobject obj, jclass javaClass) {
+                                jmethodID jmid = env->GetMethodID(javaClass, 
"getEvaluatorId", "()Ljava/lang/String;");
+                                return 
CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, obj, jmid);
+                            };
                         };
 
                         public ref class AllocatedEvaluatorClr2Java : public 
IAllocatedEvaluaotrClr2Java {
@@ -174,9 +187,6 @@ namespace Org {
                             virtual String^ GetId();
                         };
 
-                        /**
-                          See IClosedContextClr2Java.
-                          */
                         public ref class ClosedContextClr2Java : public 
IClosedContextClr2Java {
                             jobject  _jobjectClosedContext;
                             JavaVM* _jvm;

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/cs/Org.Apache.REEF.Bridge/CommonUtilities.cpp
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Bridge/CommonUtilities.cpp 
b/lang/cs/Org.Apache.REEF.Bridge/CommonUtilities.cpp
index 5de6e75..6dfc7b5 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/CommonUtilities.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/CommonUtilities.cpp
@@ -19,37 +19,37 @@
 #include "Clr2JavaImpl.h"
 
 namespace Org {
-  namespace Apache {
-         namespace REEF {
-                 namespace Driver {
-                         namespace Bridge {
-                                 namespace Clr2java {
-                                         ref class ManagedLog {
-                                         internal:
-                                                 static BridgeLogger^ LOGGER = 
BridgeLogger::GetLogger("<C++>CommonUtilities");
-                                         };
+    namespace Apache {
+        namespace REEF {
+            namespace Driver {
+                namespace Bridge {
+                    namespace Clr2java {
+                        ref class ManagedLog {
+                        internal:
+                            static BridgeLogger^ LOGGER = 
BridgeLogger::GetLogger("<C++>CommonUtilities");
+                        };
 
-                                         IEvaluatorDescriptor^ 
CommonUtilities::RetrieveEvaluatorDescriptor(jobject object, JavaVM* jvm) {
-                                                 
ManagedLog::LOGGER->LogStart("CommonUtilities::GetEvaluatorDescriptor");
-                                                 JNIEnv *env = 
RetrieveEnv(jvm);
-                                                 jclass jclassActiveContext = 
env->GetObjectClass(object);
-                                                 jmethodID 
jmidGetEvaluatorDescriptor = env->GetMethodID(jclassActiveContext, 
"getEvaluatorDescriptorSring", "()Ljava/lang/String;");
+                        IEvaluatorDescriptor^ 
CommonUtilities::RetrieveEvaluatorDescriptor(jobject object, JavaVM* jvm) {
+                            
ManagedLog::LOGGER->LogStart("CommonUtilities::GetEvaluatorDescriptor");
+                            JNIEnv *env = RetrieveEnv(jvm);
+                            jclass jclassActiveContext = 
env->GetObjectClass(object);
+                            jmethodID jmidGetEvaluatorDescriptor = 
env->GetMethodID(jclassActiveContext, "getEvaluatorDescriptorSring", 
"()Ljava/lang/String;");
 
-                                                 if 
(jmidGetEvaluatorDescriptor == NULL) {
-                                                         
ManagedLog::LOGGER->Log("jmidGetEvaluatorDescriptor is NULL");
-                                                         return nullptr;
-                                                 }
-                                                 jstring 
jevaluatorDescriptorString = (jstring)env->CallObjectMethod(
-                                                         object,
-                                                         
jmidGetEvaluatorDescriptor);
-                                                 String^ 
evaluatorDescriptorString = ManagedStringFromJavaString(env, 
jevaluatorDescriptorString);
-                                                 
ManagedLog::LOGGER->LogStop("InteropUtil::GetEvaluatorDescriptor");
+                            if (jmidGetEvaluatorDescriptor == NULL) {
+                                
ManagedLog::LOGGER->Log("jmidGetEvaluatorDescriptor is NULL");
+                                return nullptr;
+                            }
+                            jstring jevaluatorDescriptorString = 
(jstring)env->CallObjectMethod(
+                                object,
+                                jmidGetEvaluatorDescriptor);
+                            String^ evaluatorDescriptorString = 
ManagedStringFromJavaString(env, jevaluatorDescriptorString);
+                            
ManagedLog::LOGGER->LogStop("InteropUtil::GetEvaluatorDescriptor");
 
-                                                 return gcnew 
EvaluatorDescriptorImpl(evaluatorDescriptorString);
-                                         }
-                                 }
-                         }
-                 }
-         }
-  }
+                            return gcnew 
EvaluatorDescriptorImpl(evaluatorDescriptorString);
+                        }
+                    }
+                }
+            }
+        }
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 c961881..6c09826 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/CompletedEvaluatorClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/CompletedEvaluatorClr2Java.cpp
@@ -38,8 +38,7 @@ namespace Org {
                                                  _jobjectCompletedEvaluator = 
reinterpret_cast<jobject>(env->NewGlobalRef(jCompletedEvaluator));
 
                                                  jclass 
jclassCompletedEvaluator = env->GetObjectClass(_jobjectCompletedEvaluator);
-                                                 jfieldID jidEvaluatorId = 
env->GetFieldID(jclassCompletedEvaluator, "evaluatorId", "Ljava/lang/String;");
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectCompletedEvaluator,
 jidEvaluatorId)));
+                                                 _jstringId = 
CommonUtilities::GetJObjectId(env, _jobjectCompletedEvaluator, 
jclassCompletedEvaluator);
                                                  
ManagedLog::LOGGER->LogStop("CompletedEvaluatorClr2Java::CompletedEvaluatorClr2Java");
                                          }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 18e088d..50f1b42 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/CompletedTaskClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/CompletedTaskClr2Java.cpp
@@ -38,8 +38,8 @@ namespace Org {
                                                  _jobjectCompletedTask = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectCompletedTask));
 
                                                  jclass jclassCompletedTask = 
env->GetObjectClass(_jobjectCompletedTask);
-                                                 jfieldID jidTaskId = 
env->GetFieldID(jclassCompletedTask, "taskId", "Ljava/lang/String;");
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectCompletedTask,
 jidTaskId)));
+                                                 jmethodID jmidGetTaskId = 
env->GetMethodID(jclassCompletedTask, "getTaskId", "()Ljava/lang/String;");
+                                                 _jstringId = 
CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, _jobjectCompletedTask, 
jmidGetTaskId);
                                                  
ManagedLog::LOGGER->LogStop("CompletedTaskClr2Java::CompletedTaskClr2Java");
                                          }
 
@@ -54,8 +54,8 @@ namespace Org {
                                                  JNIEnv *env = 
RetrieveEnv(_jvm);
 
                                                  jclass jclassCompletedTask = 
env->GetObjectClass(_jobjectCompletedTask);
-                                                 jfieldID jidActiveContext = 
env->GetFieldID(jclassCompletedTask, "jactiveContext", 
"Lorg/apache/reef/javabridge/ActiveContextBridge;");
-                                                 jobject jobjectActiveContext 
= env->GetObjectField(_jobjectCompletedTask, jidActiveContext);
+                                                 jmethodID 
jmidGetActiveContext = env->GetMethodID(jclassCompletedTask, 
"getActiveContext", "()Lorg/apache/reef/javabridge/ActiveContextBridge;");
+                                                 jobject jobjectActiveContext 
= env->CallObjectMethod(_jobjectCompletedTask, jmidGetActiveContext);
                                                  
ManagedLog::LOGGER->LogStop("CompletedTaskClr2Java::GetActiveContext");
                                                  return gcnew 
ActiveContextClr2Java(env, jobjectActiveContext);
                                          }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 c385e46..18ff378 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/ContextMessageClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/ContextMessageClr2Java.cpp
@@ -38,13 +38,12 @@ namespace Org {
                                                  _jobjectContextMessage = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectContextMessage));
                                                  jclass jclassContextMessage = 
env->GetObjectClass(_jobjectContextMessage);
 
-                                                 jfieldID jidId = 
env->GetFieldID(jclassContextMessage, "contextMessageId", "Ljava/lang/String;");
-                                                 jfieldID jidSourceId = 
env->GetFieldID(jclassContextMessage, "messageSourceId", "Ljava/lang/String;");
-                                                 jfieldID jidMessage = 
env->GetFieldID(jclassContextMessage, "message", "()[B");
+                                                 jmethodID jmidGetSourceId = 
env->GetMethodID(jclassContextMessage, "getMessageSourceId", 
"()Ljava/lang/String;");
+                                                 jmethodID jmidGetMessage = 
env->GetMethodID(jclassContextMessage, "get", "()[B");
 
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectContextMessage,
 jidId)));
-                                                 _jstringSourceId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectContextMessage,
 jidSourceId)));
-                                                 _jarrayMessage = 
reinterpret_cast<jbyteArray>(env->NewGlobalRef(env->GetObjectField(_jobjectContextMessage,
 jidMessage)));
+                                                 _jstringId = 
CommonUtilities::GetJObjectId(env, _jobjectContextMessage, 
jclassContextMessage);
+                                                 _jstringSourceId = 
CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, 
_jobjectContextMessage, jmidGetSourceId);
+                                                 _jarrayMessage = 
CommonUtilities::CallGetMethodNewGlobalRef<jbyteArray>(env, 
_jobjectContextMessage, jmidGetMessage);
 
                                                  
ManagedLog::LOGGER->LogStop("ContextMessageClr2Java::ContextMessageClr2Java");
                                          }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 f462a73..1e9a521 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/DriverRestartCompletedClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/DriverRestartCompletedClr2Java.cpp
@@ -38,9 +38,9 @@ namespace Org {
                                                        
_jobjectDriverRestartCompleted = 
reinterpret_cast<jobject>(env->NewGlobalRef(jdriverRestartCompleted));
 
                                                        jclass 
jclassDriverRestartCompleted = 
env->GetObjectClass(_jobjectDriverRestartCompleted);
-                                                       jfieldID jidIsTimedOut 
= env->GetFieldID(jclassDriverRestartCompleted, "isTimedOut", "Z");
+                                                       jmethodID 
jmidIsTimedOut = env->GetMethodID(jclassDriverRestartCompleted, "isTimedOut", 
"()Z");
 
-                                                       jboolean jisTimedOut = 
env->GetBooleanField(_jobjectDriverRestartCompleted, jidIsTimedOut);
+                                                       jboolean jisTimedOut = 
env->CallBooleanMethod(_jobjectDriverRestartCompleted, jmidIsTimedOut);
                                                        _restartCompletedTime = 
System::DateTime::Now;
                                                        _isTimedOut = 
ClrBoolFromJavaBoolean(env, jisTimedOut);
 

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 05b6af2..efb30d9 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/DriverRestartedClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/DriverRestartedClr2Java.cpp
@@ -38,11 +38,11 @@ namespace Org {
                                                        _jobjectDriverRestarted 
= reinterpret_cast<jobject>(env->NewGlobalRef(jdriverRestarted));
 
                                                        jclass 
jclassDriverRestarted = env->GetObjectClass(_jobjectDriverRestarted);
-                                                       jfieldID 
jidExpectedEvaluatorIds = env->GetFieldID(jclassDriverRestarted, 
"expectedEvaluatorIds", "[Ljava/lang/String;");
-                                                       jfieldID 
jidResubmissionAttempts = env->GetFieldID(jclassDriverRestarted, 
"resubmissionAttempts", "I");
+                                                       jmethodID 
jmidGetExpectedEvaluatorIds = env->GetMethodID(jclassDriverRestarted, 
"getExpectedEvaluatorIds", "()[Ljava/lang/String;");
+                                                       jmethodID 
jmidGetResubmissionAttempts = env->GetMethodID(jclassDriverRestarted, 
"getResubmissionAttempts", "()I");
 
-                                                       _resubmissionAttempts = 
env->GetIntField(_jobjectDriverRestarted, jidResubmissionAttempts);
-                                                       jobjectArray 
jevaluatorIds = 
reinterpret_cast<jobjectArray>(env->NewGlobalRef(env->GetObjectField(_jobjectDriverRestarted,
 jidExpectedEvaluatorIds)));
+                                                       _resubmissionAttempts = 
env->CallIntMethod(_jobjectDriverRestarted, jmidGetResubmissionAttempts);
+                                                       jobjectArray 
jevaluatorIds = CommonUtilities::CallGetMethodNewGlobalRef<jobjectArray>(env, 
_jobjectDriverRestarted, jmidGetExpectedEvaluatorIds);
                                                        _startTime = 
System::DateTime::Now;
                                                        int count = 
env->GetArrayLength(jevaluatorIds);
                                                        _expectedEvaluatorIds = 
gcnew array<String^>(count);

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 5a96202..9b26bbb 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/FailedContextClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/FailedContextClr2Java.cpp
@@ -38,13 +38,11 @@ namespace Org {
                                                  _jobjectFailedContext = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectFailedContext));
                                                  jclass jclassFailedContext = 
env->GetObjectClass(_jobjectFailedContext);
 
-                                                 jfieldID jidContextId = 
env->GetFieldID(jclassFailedContext, "contextId", "Ljava/lang/String;");
-                                                 jfieldID jidEvaluatorId = 
env->GetFieldID(jclassFailedContext, "evaluatorId", "Ljava/lang/String;");
-                                                 jfieldID jidParentId = 
env->GetFieldID(jclassFailedContext, "parentContextId", "Ljava/lang/String;");
+                                                 jmethodID jmidGetParentId = 
env->GetMethodID(jclassFailedContext, "getParentId", "()Ljava/lang/String;");
 
-                                                 _jstringContextId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectFailedContext,
 jidContextId)));
-                                                 _jstringEvaluatorId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectFailedContext,
 jidEvaluatorId)));
-                                                 _jstringParentContextId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectFailedContext,
 jidParentId)));
+                                                 _jstringContextId = 
CommonUtilities::GetJObjectId(env, jobjectFailedContext, jclassFailedContext);
+                                                 _jstringEvaluatorId = 
CommonUtilities::GetJObjectEvaluatorId(env, jobjectFailedContext, 
jclassFailedContext);
+                                                 _jstringParentContextId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->CallObjectMethod(_jobjectFailedContext,
 jmidGetParentId)));
 
                                                  
ManagedLog::LOGGER->LogStop("FailedContextClr2Java::FailedContextClr2Java");
                                          }
@@ -55,8 +53,8 @@ namespace Org {
                                                  JNIEnv *env = 
RetrieveEnv(_jvm);
 
                                                  jclass jclassFailedContext = 
env->GetObjectClass(_jobjectFailedContext);
-                                                 jfieldID jidParentContext = 
env->GetFieldID(jclassFailedContext, "parentContext", 
"Lorg/apache/reef/javabridge/ActiveContextBridge;");
-                                                 jobject jobjectParentContext 
= env->GetObjectField(_jobjectFailedContext, jidParentContext);
+                                                 jmethodID 
jmidGetParentContext = env->GetMethodID(jclassFailedContext, 
"getParentContext", "()Lorg/apache/reef/javabridge/ActiveContextBridge;");
+                                                 jobject jobjectParentContext 
= env->CallObjectMethod(_jobjectFailedContext, jmidGetParentContext);
                                                  
ManagedLog::LOGGER->LogStop("FailedContextClr2Java::GetParentContext");
 
                                                  return gcnew 
ActiveContextClr2Java(env, jobjectParentContext);

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 615e09f..afccbbe 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/FailedEvaluatorClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/FailedEvaluatorClr2Java.cpp
@@ -40,8 +40,7 @@ namespace Org {
                                                  _jobjectFailedEvaluator = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectFailedEvaluator));
 
                                                  jclass jclassFailedEvaluator 
= env->GetObjectClass(_jobjectFailedEvaluator);
-                                                 jfieldID jidEvaluatorId = 
env->GetFieldID(jclassFailedEvaluator, "evaluatorId", "Ljava/lang/String;");
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectFailedEvaluator,
 jidEvaluatorId)));
+                                                 _jstringId = 
CommonUtilities::GetJObjectId(env, _jobjectFailedEvaluator, 
jclassFailedEvaluator);
                                                  
ManagedLog::LOGGER->LogStop("FailedEvaluatorClr2Java::FailedEvaluatorClr2Java");
                                          }
 
@@ -50,8 +49,8 @@ namespace Org {
                                                  JNIEnv *env = 
RetrieveEnv(_jvm);
 
                                                  jclass jclassFailedEvaluator 
= env->GetObjectClass(_jobjectFailedEvaluator);
-                                                 jfieldID 
jidEvaluatorRequestor = env->GetFieldID(jclassFailedEvaluator, 
"evaluatorRequestorBridge", 
"Lorg/apache/reef/javabridge/EvaluatorRequestorBridge;");
-                                                 jobject 
jobjectEvaluatorRequestor = env->GetObjectField(_jobjectFailedEvaluator, 
jidEvaluatorRequestor);
+                                                 jmethodID 
jmidGetEvaluatorRequestor = env->GetMethodID(jclassFailedEvaluator, 
"getEvaluatorRequestorBridge", 
"()Lorg/apache/reef/javabridge/EvaluatorRequestorBridge;");
+                                                 jobject 
jobjectEvaluatorRequestor = env->CallObjectMethod(_jobjectFailedEvaluator, 
jmidGetEvaluatorRequestor);
                                                  
ManagedLog::LOGGER->LogStop("FailedEvaluatorClr2Java::GetEvaluatorRequestor");
                                                  return gcnew 
EvaluatorRequestorClr2Java(env, jobjectEvaluatorRequestor);
                                          }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 b27b13d..b6e2be2 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/FailedTaskClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/FailedTaskClr2Java.cpp
@@ -45,8 +45,8 @@ namespace Org {
                                                  JNIEnv *env = 
RetrieveEnv(_jvm);
 
                                                  jclass jclassFailedTask = 
env->GetObjectClass(_jobjectFailedTask);
-                                                 jfieldID jidActiveContext = 
env->GetFieldID(jclassFailedTask, "jactiveContext", 
"Lorg/apache/reef/javabridge/ActiveContextBridge;");
-                                                 jobject jobjectActiveContext 
= env->GetObjectField(_jobjectFailedTask, jidActiveContext);
+                                                 jmethodID 
jmidGetActiveContext = env->GetMethodID(jclassFailedTask, "getActiveContext", 
"()Lorg/apache/reef/javabridge/ActiveContextBridge;");
+                                                 jobject jobjectActiveContext 
= env->CallObjectMethod(_jobjectFailedTask, jmidGetActiveContext);
 
                                                  
ManagedLog::LOGGER->LogStop("FailedTaskClr2Java::GetActiveContext");
                                                  return gcnew 
ActiveContextClr2Java(env, jobjectActiveContext);

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 dfc8ae3..362715b 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/RunningTaskClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/RunningTaskClr2Java.cpp
@@ -38,9 +38,7 @@ namespace Org {
                                                  _jobjectRunningTask = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectRunningTask));
 
                                                  jclass jclassRunningTask = 
env->GetObjectClass(_jobjectRunningTask);
-                                                 jmethodID jmidGetId = 
env->GetMethodID(jclassRunningTask, "getId", "()Ljava/lang/String;");
-
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->CallObjectMethod(_jobjectRunningTask,
 jmidGetId)));
+                                                 _jstringId = 
CommonUtilities::GetJObjectId(env, _jobjectRunningTask, jclassRunningTask);
                                                  
ManagedLog::LOGGER->LogStop("RunningTaskClr2Java::RunningTaskClr2Java");
                                          }
 
@@ -50,8 +48,8 @@ namespace Org {
                                                  JNIEnv *env = 
RetrieveEnv(_jvm);
 
                                                  jclass jclassRunningTask = 
env->GetObjectClass(_jobjectRunningTask);
-                                                 jfieldID jidActiveContext = 
env->GetFieldID(jclassRunningTask, "jactiveContext", 
"Lorg/apache/reef/javabridge/ActiveContextBridge;");
-                                                 jobject jobjectActiveContext 
= env->GetObjectField(_jobjectRunningTask, jidActiveContext);
+                                                 jmethodID 
jmidGetActiveContext = env->GetMethodID(jclassRunningTask, "getActiveContext", 
"()Lorg/apache/reef/javabridge/ActiveContextBridge;");
+                                                 jobject jobjectActiveContext 
= env->CallObjectMethod(_jobjectRunningTask, jmidGetActiveContext);
                                                  
ManagedLog::LOGGER->LogStop("RunningTaskClr2Java::GetActiveContext");
 
                                                  return gcnew 
ActiveContextClr2Java(env, jobjectActiveContext);

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 e052d24..059b594 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/SuspendedTaskClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/SuspendedTaskClr2Java.cpp
@@ -38,8 +38,7 @@ namespace Org {
                                                  _jobjectSuspendedTask = 
reinterpret_cast<jobject>(env->NewGlobalRef(jobjectSuspendedTask));
 
                                                  jclass jclassSuspendedTask = 
env->GetObjectClass(_jobjectSuspendedTask);
-                                                 jfieldID jidTaskId = 
env->GetFieldID(jclassSuspendedTask, "taskId", "Ljava/lang/String;");
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectSuspendedTask,
 jidTaskId)));
+                                                 _jstringId = 
CommonUtilities::GetJObjectId(env, _jobjectSuspendedTask, jclassSuspendedTask);
                                                  
ManagedLog::LOGGER->LogStop("SuspendedTaskClr2Java::SuspendedTaskClr2Java");
                                          }
 
@@ -48,8 +47,8 @@ namespace Org {
                                                  JNIEnv *env = 
RetrieveEnv(_jvm);
 
                                                  jclass jclassSuspendedTask = 
env->GetObjectClass(_jobjectSuspendedTask);
-                                                 jfieldID jidActiveContext = 
env->GetFieldID(jclassSuspendedTask, "jactiveContext", 
"Lorg/apache/reef/javabridge/ActiveContextBridge;");
-                                                 jobject jobjectActiveContext 
= env->GetObjectField(_jobjectSuspendedTask, jidActiveContext);
+                                                 jmethodID 
jmidGetActiveContext = env->GetMethodID(jclassSuspendedTask, 
"getActiveContext", "()Lorg/apache/reef/javabridge/ActiveContextBridge;");
+                                                 jobject jobjectActiveContext 
= env->CallObjectMethod(_jobjectSuspendedTask, jmidGetActiveContext);
                                                  
ManagedLog::LOGGER->LogStop("SuspendedTaskClr2Java::GetActiveContext");
                                                  return gcnew 
ActiveContextClr2Java(env, jobjectActiveContext);
                                          }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/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 1ee79e9..1fa3cec 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/TaskMessageClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/TaskMessageClr2Java.cpp
@@ -38,8 +38,7 @@ namespace Org {
                                                  _jobjectTaskMessage = 
reinterpret_cast<jobject>(env->NewGlobalRef(jtaskMessage));
 
                                                  jclass jclassTaskMessage = 
env->GetObjectClass(_jobjectTaskMessage);
-                                                 jfieldID jidTaskId = 
env->GetFieldID(jclassTaskMessage, "taskId", "Ljava/lang/String;");
-                                                 _jstringId = 
reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectTaskMessage,
 jidTaskId)));
+                                                 _jstringId = 
CommonUtilities::GetJObjectId(env, _jobjectTaskMessage, jclassTaskMessage);
                                                  
ManagedLog::LOGGER->LogStop("TaskMessageClr2Java::TaskMessageClr2Java");
                                          }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
index 9558547..7d068f8 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
@@ -47,6 +47,20 @@ public final class ActiveContextBridge extends NativeBridge 
implements Identifia
     this.evaluatorId = activeContext.getEvaluatorId();
   }
 
+  /**
+   * @return the context ID.
+   */
+  public String getContextId() {
+    return contextId;
+  }
+
+  /**
+   * @return the Evaluator ID of the Evaluator on which the Context runs.
+   */
+  public String getEvaluatorId() {
+    return evaluatorId;
+  }
+
   public void submitTaskString(final String taskConfigurationString) {
     if (taskConfigurationString.isEmpty()) {
       throw new RuntimeException("empty taskConfigurationString provided.");

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java
index 9ac01f5..d7281f1 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java
@@ -147,6 +147,13 @@ public final class AllocatedEvaluatorBridge extends 
NativeBridge implements Iden
   }
 
   /**
+   * @return the nameServerInfo string.
+   */
+  public String getNameServerInfo() {
+    return nameServerInfo;
+  }
+
+  /**
    * @return the evaluator id.
    */
   @Override

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java
index c0578a8..ee1493a 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java
@@ -45,6 +45,14 @@ public final class CompletedTaskBridge extends NativeBridge 
implements Message {
     jactiveContext = 
factory.getActiveContextBridge(completedTask.getActiveContext());
   }
 
+  public String getTaskId() {
+    return taskId;
+  }
+
+  public ActiveContextBridge getActiveContext() {
+    return jactiveContext;
+  }
+
   @Override
   public void close() {
   }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java
index 7bdc526..19a8079 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java
@@ -36,7 +36,6 @@ import java.util.Set;
     CppFiles = { "Clr2JavaImpl.h", "DriverRestartedClr2Java.cpp" },
     CsFiles = { "IDriverRestartedClr2Java.cs", "DriverRestarted.cs" })
 public final class DriverRestartedBridge extends NativeBridge {
-  // Used by bridge to extract field. Please take this into consideration when 
changing the name of the field.
   private final String[] expectedEvaluatorIds;
   private final int resubmissionAttempts;
 

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java
index e607a7a..f17caf3 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java
@@ -87,6 +87,13 @@ public final class FailedContextBridge extends NativeBridge 
implements ContextBa
     return evaluatorDescriptor;
   }
 
+  /**
+   * @return the parent {@link ActiveContextBridge}.
+   */
+  public ActiveContextBridge getParentContext() {
+    return parentContext;
+  }
+
   public String getEvaluatorDescriptorSring() {
     final String descriptorString = 
Utilities.getEvaluatorDescriptorString(evaluatorDescriptor);
     LOG.log(Level.INFO, "Failed Context - serialized evaluator descriptor: " + 
descriptorString);

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java
index 778964f..22b8491 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java
@@ -22,6 +22,7 @@ import org.apache.reef.annotations.audience.Interop;
 import org.apache.reef.annotations.audience.Private;
 import org.apache.reef.driver.evaluator.EvaluatorRequestor;
 import org.apache.reef.driver.evaluator.FailedEvaluator;
+import org.apache.reef.io.naming.Identifiable;
 import org.apache.reef.util.logging.LoggingScopeFactory;
 
 import java.util.logging.Logger;
@@ -31,7 +32,7 @@ import java.util.logging.Logger;
  */
 @Private
 @Interop(CppFiles = { "FailedEvaluatorClr2Java.cpp" }, CsFiles = { 
"IFailedEvaluatorClr2Java", "FailedEvaluator" })
-public final class FailedEvaluatorBridge extends NativeBridge {
+public final class FailedEvaluatorBridge extends NativeBridge implements 
Identifiable {
   private static final Logger LOG = 
Logger.getLogger(FailedEvaluatorBridge.class.getName());
   private FailedEvaluator jfailedEvaluator;
   private EvaluatorRequestorBridge evaluatorRequestorBridge;
@@ -51,8 +52,17 @@ public final class FailedEvaluatorBridge extends 
NativeBridge {
     return evaluatorRequestorBridge.getEvaluatorNumber();
   }
 
+  public EvaluatorRequestorBridge getEvaluatorRequestorBridge() {
+    return evaluatorRequestorBridge;
+  }
+
   @Override
   public void close() {
   }
+
+  @Override
+  public String getId() {
+    return evaluatorId;
+  }
 }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java
index b31612a..d80d6df 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java
@@ -48,6 +48,10 @@ public final class FailedTaskBridge extends NativeBridge {
     }
   }
 
+  public ActiveContextBridge getActiveContext() {
+    return jactiveContext;
+  }
+
   public String getFailedTaskString() {
     final String description = jfailedTask.getDescription().isPresent() ?
         jfailedTask.getDescription().get().replace("=", "").replace(",", "") : 
"";

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java
index ed64ff9..cae86c4 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java
@@ -21,6 +21,7 @@ package org.apache.reef.javabridge;
 import org.apache.reef.annotations.audience.Interop;
 import org.apache.reef.annotations.audience.Private;
 import org.apache.reef.driver.task.RunningTask;
+import org.apache.reef.io.naming.Identifiable;
 
 import java.util.logging.Logger;
 
@@ -31,7 +32,7 @@ import java.util.logging.Logger;
 @Interop(
     CppFiles = { "Clr2JavaImpl.h", "RunningTaskClr2Java.cpp" },
     CsFiles = { "IRunningTaskClr2Java.cs", "RunningTask.cs" })
-public final class RunningTaskBridge extends NativeBridge {
+public final class RunningTaskBridge extends NativeBridge implements 
Identifiable {
   private static final Logger LOG = 
Logger.getLogger(RunningTaskBridge.class.getName());
 
   private final RunningTask jrunningTask;
@@ -42,14 +43,19 @@ public final class RunningTaskBridge extends NativeBridge {
     this.jactiveContext = 
factory.getActiveContextBridge(runningTask.getActiveContext());
   }
 
-  public String getId() {
-    return jrunningTask.getId();
-  }
-
   public void send(final byte[] message) {
     jrunningTask.send(message);
   }
 
+  public ActiveContextBridge getActiveContext() {
+    return jactiveContext;
+  }
+
+  @Override
+  public String getId() {
+    return jrunningTask.getId();
+  }
+
   @Override
   public void close() {
   }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java
index d6b1cdb..dd688b4 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java
@@ -21,6 +21,7 @@ package org.apache.reef.javabridge;
 import org.apache.reef.annotations.audience.Interop;
 import org.apache.reef.annotations.audience.Private;
 import org.apache.reef.driver.task.TaskMessage;
+import org.apache.reef.io.naming.Identifiable;
 
 /**
  * The Java-CLR bridge object for {@link 
org.apache.reef.driver.task.TaskMessage}.
@@ -29,7 +30,7 @@ import org.apache.reef.driver.task.TaskMessage;
 @Interop(
     CppFiles = { "Clr2JavaImpl.h", "TaskMessageClr2Java.cpp" },
     CsFiles = { "ITaskMessageClr2Java.cs", "TaskMessage.cs" })
-public final class TaskMessageBridge extends NativeBridge {
+public final class TaskMessageBridge extends NativeBridge implements 
Identifiable {
   private TaskMessage jtaskMessage;
   private String taskId;
 
@@ -42,4 +43,9 @@ public final class TaskMessageBridge extends NativeBridge {
   @Override
   public void close() {
   }
+
+  @Override
+  public String getId() {
+    return taskId;
+  }
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/848cf929/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/generic/DriverRestartCompletedBridge.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/generic/DriverRestartCompletedBridge.java
 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/generic/DriverRestartCompletedBridge.java
index 2d03735..a476ec9 100644
--- 
a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/generic/DriverRestartCompletedBridge.java
+++ 
b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/generic/DriverRestartCompletedBridge.java
@@ -20,6 +20,7 @@ package org.apache.reef.javabridge.generic;
 
 import org.apache.reef.annotations.Unstable;
 import org.apache.reef.annotations.audience.DriverSide;
+import org.apache.reef.annotations.audience.Interop;
 import org.apache.reef.annotations.audience.Private;
 import org.apache.reef.driver.restart.DriverRestartCompleted;
 import org.apache.reef.javabridge.NativeBridge;
@@ -30,8 +31,9 @@ import org.apache.reef.javabridge.NativeBridge;
 @Private
 @DriverSide
 @Unstable
+@Interop(CppFiles = { "Clr2JavaImpl.h", "DriverRestartCompletedClr2Java.cpp" },
+    CsFiles = { "IDriverRestartCompletedClr2Java.cs", 
"DriverRestartCompleted.cs" })
 public final class DriverRestartCompletedBridge extends NativeBridge {
-  // Used by bridge to extract field. Please take this into consideration when 
changing the name of the field.
   private boolean isTimedOut;
 
   DriverRestartCompletedBridge(final DriverRestartCompleted 
driverRestartCompleted) {

Reply via email to