1) Modified JNI to fix few issues.
authornikhil.a <nikhil.a7@samsung.com>
Sun, 28 Aug 2016 16:08:10 +0000 (21:38 +0530)
committerUze Choi <uzchoi@samsung.com>
Mon, 29 Aug 2016 05:55:00 +0000 (05:55 +0000)
2) Update cpp-wrapper code causing issue with JAVA API's.

Change-Id: I55b5b0d85fce9011287868773e17144f9ce4ea61
Signed-off-by: nikhil.a <nikhil.a7@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/11005
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
service/notification/android/notification-service/src/main/java/org/iotivity/service/ns/common/TopicsList.java
service/notification/android/notification-service/src/main/java/org/iotivity/service/ns/consumer/Provider.java
service/notification/android/notification-service/src/main/jni/consumer/JniNotificationConsumer.cpp
service/notification/android/notification-service/src/main/jni/provider/JniNotificationProvider.cpp
service/notification/cpp-wrapper/common/NSMessage.cpp
service/notification/cpp-wrapper/common/NSSyncInfo.cpp
service/notification/cpp-wrapper/consumer/src/NSProvider.cpp
service/notification/cpp-wrapper/provider/src/NSConsumer.cpp

index 6175e77..8572ccc 100644 (file)
@@ -42,9 +42,10 @@ public class TopicsList
         Iterator <Topic> it = getTopicsList().iterator();
         while(it.hasNext())
         {
-            if(it.next().getTopicName().equals(topicName))
+            Topic element = it.next();
+            if(element.getTopicName().equals(topicName))
             {
-                mTopicsList.remove(it.next());
+                mTopicsList.remove(element);
             }
         }
     }
index a25e7c1..622a09b 100755 (executable)
@@ -74,7 +74,7 @@ public class Provider
         nativeSetListener(onMessageReceivedListner, onSyncInfoReceivedListner);
     }
 
-    public int SelectInterestTopics(Vector<Topic> topicsList) throws NSException
+    public int SelectInterestTopics(TopicsList topicsList) throws NSException
     {
         return nativeSelectInterestTopics(topicsList);
     }
@@ -96,5 +96,5 @@ public class Provider
         OnMessageReceivedListner onMessageReceivedListner,
         OnSyncInfoReceivedListner onSyncInfoReceivedListner
     ) throws NSException;
-    private native int nativeSelectInterestTopics(Vector<Topic> topicsList) throws NSException;
+    private native int nativeSelectInterestTopics(TopicsList topicsList) throws NSException;
 }
index e8c6664..88ed756 100755 (executable)
@@ -31,6 +31,7 @@ static jobject g_obj_acceptListener = NULL;
 jclass g_cls_Message;\r
 jclass g_cls_Provider;\r
 jclass g_cls_SyncInfo;\r
+jclass g_cls_SyncType;\r
 jclass g_cls_MediaContents;\r
 jclass g_cls_TopicState;\r
 jclass g_cls_Message_Type;\r
@@ -65,52 +66,91 @@ static JNIEnv *GetJNIEnv(jint *ret)
     }\r
 }\r
 \r
-jobject getJavaMessageType(JNIEnv *env, OIC::Service::NSMessage::NSMessageType type)\r
+jobject getJavaResponse(JNIEnv *env, OIC::Service::NSResponse response)\r
 {\r
-    LOGD ("ConsumerService_getJavaMessageType - IN");\r
-    switch (type)\r
+    LOGD ("ConsumerService_getJavaResponse - IN");\r
+    switch (response)\r
     {\r
-        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_ALERT:\r
-            {\r
-                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
-                                          "ALERT", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
-                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
-            }\r
-        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_NOTICE:\r
+        case OIC::Service::NSResponse::ALLOW:\r
             {\r
-                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
-                                          "NOTICE", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
-                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
+                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Response,\r
+                                          "ALLOW", "Lorg/iotivity/service/ns/consumer/ConsumerService$Response;");\r
+                return env->GetStaticObjectField(g_cls_Response, fieldID);\r
             }\r
-        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_EVENT:\r
+        case OIC::Service::NSResponse::DENY:\r
             {\r
-                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
-                                          "EVENT", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
-                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
+                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Response,\r
+                                          "DENY", "Lorg/iotivity/service/ns/consumer/ConsumerService$Response;");\r
+                return env->GetStaticObjectField(g_cls_Response, fieldID);\r
             }\r
-        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_INFO:\r
+        case OIC::Service::NSResponse::TOPIC:\r
             {\r
-                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
-                                          "INFO", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
-                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
+                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Response,\r
+                                          "TOPIC", "Lorg/iotivity/service/ns/consumer/ConsumerService$Response;");\r
+                return env->GetStaticObjectField(g_cls_Response, fieldID);\r
             }\r
         default:\r
             return NULL;\r
     }\r
-    LOGD ("ConsumerService_getJavaMessageType - OUT");\r
+    LOGD ("ConsumerService_getJavaResponse - OUT");\r
     return NULL;\r
 }\r
 \r
-jobject getJavaState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsState)\r
+jobject getJavaSyncType(JNIEnv *env, OIC::Service::NSSyncInfo::NSSyncType nsType)\r
+{\r
+    LOGD ("ConsumerService_getJavaSyncType - IN");\r
+\r
+    // SyncType\r
+    jclass cls_SyncType = (jclass) (env->NewLocalRef(g_cls_SyncType));\r
+    if (!cls_SyncType)\r
+    {\r
+        LOGE ("Failed to Get ObjectClass for SyncType");\r
+        return NULL;\r
+    }\r
+    jobject syncType;\r
+    switch (nsType)\r
+    {\r
+        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_UNREAD:\r
+            {\r
+                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,\r
+                                          "UNREAD", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");\r
+                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);\r
+            }\r
+        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ :\r
+            {\r
+                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,\r
+                                          "READ", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");\r
+                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);\r
+            }\r
+        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED :\r
+            {\r
+                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,\r
+                                          "DELETED", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");\r
+                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);\r
+            }\r
+\r
+    }\r
+\r
+    if (syncType == NULL)\r
+    {\r
+        LOGD("Error: object of field  Synctype  is null");\r
+    }\r
+\r
+    env->DeleteLocalRef(cls_SyncType);\r
+    LOGD ("ConsumerService_getJavaSyncType - OUT");\r
+    return syncType;\r
+}\r
+\r
+jobject getJavaTopicState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsState)\r
 {\r
-    LOGD ("ConsumerService_getJavaState - IN");\r
+    LOGD ("ConsumerService_getJavaTopicState - IN");\r
 \r
     // TopicState\r
     jclass cls_topicState = (jclass) (env->NewLocalRef(g_cls_TopicState));\r
     if (!cls_topicState)\r
     {\r
         LOGE ("Failed to Get ObjectClass for TopicState Type");\r
-        return nullptr;\r
+        return NULL;\r
     }\r
 \r
     jobject obj_topicState;\r
@@ -132,16 +172,14 @@ jobject getJavaState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsState)
     }\r
     if (obj_topicState == NULL)\r
     {\r
-        LOGE("Error: object of field  TopicState  is null");\r
-        return NULL;\r
+        LOGD("Error: object of field  TopicState  is null");\r
     }\r
 \r
     env->DeleteLocalRef(cls_topicState);\r
-    LOGD ("ConsumerService_getJavaState - OUT");\r
+    LOGD ("ConsumerService_getJavaTopicState - OUT");\r
     return obj_topicState;\r
 }\r
 \r
-\r
 jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)\r
 {\r
     LOGD ("ConsumerService_getJavaTopicsList - IN");\r
@@ -158,11 +196,21 @@ jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)
         return NULL;\r
     }\r
     jobject obj_topicList = env->NewObject(cls_topicList, mid_topicList);\r
-    jmethodID mid_addTopic =\r
-        env->GetMethodID(cls_topicList, "addTopic", "(Lorg/iotivity/service/ns/common/Topic;)V");\r
+    if (!obj_topicList)\r
+    {\r
+        LOGE ("Failed to Get object for TopicsList");\r
+        return NULL;\r
+    }\r
+    jmethodID mid_addTopic = env->GetMethodID(cls_topicList, "addTopic",\r
+                             "(Ljava/lang/String;Lorg/iotivity/service/ns/common/Topic$TopicState;)V");\r
+    if (!mid_addTopic)\r
+    {\r
+        LOGE ("Failed to Get MethodID for addTopic");\r
+        return NULL;\r
+    }\r
     for (auto it : topicList->getTopicsList())\r
     {\r
-        jobject jState = getJavaState(env, it->getState());\r
+        jobject jState = getJavaTopicState(env, it->getState());\r
         std::string topicName = it->getTopicName();\r
         jstring jTopicName = env->NewStringUTF(topicName.c_str());\r
         env->CallVoidMethod(obj_topicList, mid_addTopic, jTopicName, jState);\r
@@ -172,9 +220,9 @@ jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)
     return obj_topicList;\r
 }\r
 \r
-OIC::Service::NSTopic::NSTopicState getNativeState(JNIEnv *env,  jobject jTopic)\r
+bool getNativeTopicState(JNIEnv *env,  jobject jTopic , OIC::Service::NSTopic::NSTopicState &state )\r
 {\r
-    LOGD ("ConsumerService_getNativeState - IN");\r
+    LOGD ("ConsumerService_getNativeTopicState - IN");\r
 \r
     jclass cls_topic = env->GetObjectClass( jTopic);\r
     // TopicState\r
@@ -182,29 +230,26 @@ OIC::Service::NSTopic::NSTopicState getNativeState(JNIEnv *env,  jobject jTopic)
     if (!cls_TopicState)\r
     {\r
         LOGE ("Failed to Get ObjectClass for cls_TopicState Type");\r
-        ThrowNSException(NS_ERROR, "TopicState class  not found ");\r
-        return OIC::Service::NSTopic::NSTopicState::UNSUBSCRIBED;\r
+        return false;\r
     }\r
     jmethodID mid = env->GetMethodID(cls_TopicState, "ordinal", "()I");\r
-    jfieldID fid_state = env->GetFieldID( cls_TopicState, "mState",\r
+    jfieldID fid_state = env->GetFieldID( cls_topic, "mState",\r
                                           "Lorg/iotivity/service/ns/common/Topic$TopicState;");\r
     if (fid_state == NULL)\r
     {\r
         LOGE("Error: jfieldID for state type  is null");\r
-        ThrowNSException(NS_ERROR, "TopicState fid  not found ");\r
-        return OIC::Service::NSTopic::NSTopicState::UNSUBSCRIBED;\r
+        return false;\r
     }\r
     jobject jobj = env->GetObjectField( jTopic, fid_state);\r
     if (jobj == NULL)\r
     {\r
         LOGE("Error: object of field  state Type is null");\r
-        ThrowNSException(NS_ERROR, "TopicState obj  is null ");\r
-        return OIC::Service::NSTopic::NSTopicState::UNSUBSCRIBED;\r
+        return false;\r
     }\r
     jint jState = env->CallIntMethod(jobj, mid);\r
-    OIC::Service::NSTopic::NSTopicState  state = (OIC::Service::NSTopic::NSTopicState) jState;\r
-    LOGD ("ConsumerService_getNativeState - OUT");\r
-    return state;\r
+    state = (OIC::Service::NSTopic::NSTopicState) jState;\r
+    LOGD ("ConsumerService_getNativeTopicState - OUT");\r
+    return true;\r
 \r
 }\r
 \r
@@ -212,8 +257,12 @@ const char *getNativeTopicName(JNIEnv *env,  jobject jTopic)
 {\r
     LOGD ("ConsumerService_getNativeTopicName - IN");\r
     jclass cls_topic = env->GetObjectClass( jTopic);\r
-    jfieldID fid_name = env->GetFieldID( cls_topic, "mTopicname",\r
-                                         "Ljava/lang/String;");\r
+    if (cls_topic == NULL)\r
+    {\r
+        LOGE("Error: Class for Topic is null");\r
+        return nullptr;\r
+    }\r
+    jfieldID fid_name = env->GetFieldID( cls_topic, "mTopicName", "Ljava/lang/String;");\r
     if (fid_name == NULL)\r
     {\r
         LOGE("Error: jfieldID for Topic Name  is null");\r
@@ -239,8 +288,12 @@ OIC::Service::NSTopicsList *getNativeTopicsList(JNIEnv *env, jobject jTopicList)
     LOGD ("ConsumerService_getNativeTopicsList - IN");\r
 \r
     jclass cls_topicList = env->GetObjectClass( jTopicList);\r
-    jfieldID fid_list = env->GetFieldID( cls_topicList, "mTopicsList",\r
-                                         "Ljava/util/Vector;");\r
+    if (cls_topicList == NULL)\r
+    {\r
+        LOGE("Error: Class for Topic List  is null");\r
+        return nullptr;\r
+    }\r
+    jfieldID fid_list = env->GetFieldID( cls_topicList, "mTopicsList", "Ljava/util/Vector;");\r
     if (fid_list == NULL)\r
     {\r
         LOGE("Error: jfieldID for Topic List  is null");\r
@@ -253,16 +306,45 @@ OIC::Service::NSTopicsList *getNativeTopicsList(JNIEnv *env, jobject jTopicList)
         return nullptr;\r
     }\r
     jclass cls_vec = env->FindClass("java/util/Vector");\r
-    jmethodID sizeMethod = env->GetMethodID(cls_vec,  "size", "()I;");\r
+    if (cls_vec == NULL)\r
+    {\r
+        LOGE("Error: Class for Vector not found");\r
+        return nullptr;\r
+    }\r
+    jmethodID sizeMethod = env->GetMethodID(cls_vec,  "size", "()I");\r
+    if (sizeMethod == NULL)\r
+    {\r
+        LOGE("Error: MethodId for Vector Size  not found");\r
+        return nullptr;\r
+    }\r
     int size = env->CallIntMethod(jobj, sizeMethod);\r
     jmethodID getMethod = env->GetMethodID(cls_vec,  "get", "(I)Ljava/lang/Object;");\r
+    if (getMethod == NULL)\r
+    {\r
+        LOGE("Error: MethodId for Vector get  not found");\r
+        return nullptr;\r
+    }\r
     OIC::Service::NSTopicsList *nsTopicList = new OIC::Service::NSTopicsList();\r
     for (int index = 0; index < size; index++)\r
     {\r
         jobject topicObj = env->CallObjectMethod(jobj, getMethod, index);\r
+        if (topicObj == NULL)\r
+        {\r
+            LOGE("Error: object of field  Topic  is null");\r
+            return nullptr;\r
+        }\r
         const char *name =  getNativeTopicName(env, topicObj);\r
+        if (name == nullptr)\r
+        {\r
+            LOGE("Error: Couldn't find topic Name");\r
+            return nullptr;\r
+        }\r
         std::string topicName(name);\r
-        OIC::Service::NSTopic::NSTopicState state = getNativeState(env, topicObj);\r
+        OIC::Service::NSTopic::NSTopicState state;\r
+        if (!getNativeTopicState(env, topicObj, state))\r
+        {\r
+            return nullptr;\r
+        }\r
         nsTopicList->addTopic(topicName, state);\r
     }\r
 \r
@@ -272,36 +354,6 @@ OIC::Service::NSTopicsList *getNativeTopicsList(JNIEnv *env, jobject jTopicList)
     return nsTopicList;\r
 }\r
 \r
-jobject getJavaResponse(JNIEnv *env, OIC::Service::NSResponse response)\r
-{\r
-    LOGD ("ConsumerService_getJavaResponse - IN");\r
-    switch (response)\r
-    {\r
-        case OIC::Service::NSResponse::ALLOW:\r
-            {\r
-                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Response,\r
-                                          "ALLOW", "Lorg/iotivity/service/ns/consumer/ConsumerService$Response;");\r
-                return env->GetStaticObjectField(g_cls_Response, fieldID);\r
-            }\r
-        case OIC::Service::NSResponse::DENY:\r
-            {\r
-                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Response,\r
-                                          "DENY", "Lorg/iotivity/service/ns/consumer/ConsumerService$Response;");\r
-                return env->GetStaticObjectField(g_cls_Response, fieldID);\r
-            }\r
-        case OIC::Service::NSResponse::TOPIC:\r
-            {\r
-                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Response,\r
-                                          "TOPIC", "Lorg/iotivity/service/ns/consumer/ConsumerService$Response;");\r
-                return env->GetStaticObjectField(g_cls_Response, fieldID);\r
-            }\r
-        default:\r
-            return NULL;\r
-    }\r
-    LOGD ("ConsumerService_getJavaResponse - OUT");\r
-    return NULL;\r
-}\r
-\r
 OIC::Service::NSProvider *getNativeProvider(JNIEnv *env, jobject jObj)\r
 {\r
     LOGD ("ConsumerService_getNativeProvider - IN");\r
@@ -361,6 +413,11 @@ jobject getJavaProvider(JNIEnv *env, OIC::Service::NSProvider *provider)
         return NULL;\r
     }\r
     jobject obj_provider = env->NewObject(cls_provider, mid_provider, jProviderId);\r
+    if (!obj_provider)\r
+    {\r
+        LOGE("Failed to create new Object for Provider");\r
+        return NULL;\r
+    }\r
 \r
     jfieldID nativeHandle = env->GetFieldID(cls_provider, "mNativeHandle", "J");\r
     if (!nativeHandle)\r
@@ -371,10 +428,10 @@ jobject getJavaProvider(JNIEnv *env, OIC::Service::NSProvider *provider)
     env->SetLongField(obj_provider, nativeHandle, pProvider);\r
 \r
     jfieldID fid_topic = env->GetFieldID(cls_provider, "mTopicsList",\r
-                                         "Lorg/iotivity/service/ns/common/TopicsList");\r
+                                         "Lorg/iotivity/service/ns/common/TopicsList;");\r
     if (!fid_topic)\r
     {\r
-        LOGE("Failed to get nativeHandle for Provider");\r
+        LOGE("Failed to get TopicList for Provider");\r
         return NULL;\r
     }\r
     jobject topicList = getJavaTopicsList(env, provider->getTopicList());\r
@@ -384,6 +441,41 @@ jobject getJavaProvider(JNIEnv *env, OIC::Service::NSProvider *provider)
     return obj_provider;\r
 }\r
 \r
+jobject getJavaMessageType(JNIEnv *env, OIC::Service::NSMessage::NSMessageType type)\r
+{\r
+    LOGD ("ConsumerService_getJavaMessageType - IN");\r
+    switch (type)\r
+    {\r
+        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_ALERT:\r
+            {\r
+                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
+                                          "ALERT", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
+                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
+            }\r
+        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_NOTICE:\r
+            {\r
+                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
+                                          "NOTICE", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
+                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
+            }\r
+        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_EVENT:\r
+            {\r
+                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
+                                          "EVENT", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
+                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
+            }\r
+        case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_INFO:\r
+            {\r
+                static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message,\r
+                                          "INFO", "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
+                return env->GetStaticObjectField(g_cls_Message, fieldID);\r
+            }\r
+        default:\r
+            return NULL;\r
+    }\r
+    LOGD ("ConsumerService_getJavaMessageType - OUT");\r
+    return NULL;\r
+}\r
 \r
 jobject getJavaMessage(JNIEnv *env, OIC::Service::NSMessage *message)\r
 {\r
@@ -422,7 +514,11 @@ jobject getJavaMessage(JNIEnv *env, OIC::Service::NSMessage *message)
     }\r
     jobject obj_message = env->NewObject(cls_message, mid_message,\r
                                          jTitle, jContentText, jSourceName);\r
-\r
+    if (!obj_message)\r
+    {\r
+        LOGE ("Failed to Get Java Object for Message");\r
+        return NULL;\r
+    }\r
     jfieldID fid_nativeHandle = env->GetFieldID(cls_message, "mNativeHandle", "J");\r
     if (!fid_nativeHandle)\r
     {\r
@@ -503,19 +599,18 @@ jobject getJavaMessage(JNIEnv *env, OIC::Service::NSMessage *message)
     }\r
 \r
     jobject jType = getJavaMessageType(env, message->getType());\r
-    if (!jType)\r
-    {\r
-        LOGE("Failed to get Type value for Message");\r
-        return NULL;\r
-    }\r
-    jfieldID fid_type = env->GetFieldID(cls_message, "mType",\r
-                                        "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
-    if (!fid_type)\r
+    if (jType)\r
     {\r
-        LOGE("Failed to get field Type for Message");\r
-        return NULL;\r
+        jfieldID fid_type = env->GetFieldID(cls_message, "mType",\r
+                                            "Lorg/iotivity/service/ns/common/Message$MessageType;");\r
+        if (!fid_type)\r
+        {\r
+            LOGE("Failed to get field Type for Message");\r
+            return NULL;\r
+        }\r
+        env->SetObjectField(obj_message, fid_type, jType);\r
     }\r
-    env->SetObjectField(obj_message, fid_type, jType);\r
+\r
     env->DeleteLocalRef(cls_message);\r
     LOGD ("ConsumerService_getJavaMessage - OUT");\r
     return obj_message;\r
@@ -573,7 +668,7 @@ void onDiscoverProvider(OIC::Service::NSProvider *provider)
 \r
 void onProviderChanged(OIC::Service::NSProvider *provider, OIC::Service::NSResponse response)\r
 {\r
-    LOGD ("ConsumerService_onSubscriptionAccepted -IN");\r
+    LOGD ("ConsumerService_onProviderChanged -IN");\r
 \r
     jint envRet;\r
     JNIEnv *env = GetJNIEnv(&envRet);\r
@@ -616,7 +711,7 @@ void onProviderChanged(OIC::Service::NSProvider *provider, OIC::Service::NSRespo
 \r
     env->DeleteLocalRef(jAcceptListener);\r
     if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();\r
-    LOGD ("ConsumerService_onSubscriptionAccepted -OUT");\r
+    LOGD ("ConsumerService_onProviderChanged -OUT");\r
     return ;\r
 \r
 }\r
@@ -692,25 +787,39 @@ void onSyncInfoReceived(OIC::Service::NSSyncInfo *sync)
 \r
     jlong jMessageId = (jlong) sync->getMessageId();\r
     jstring jProviderId = env->NewStringUTF(sync->getProviderId().c_str());\r
-    jint jState = (jint) sync->getState();\r
-\r
-    jclass cls_sync = (jclass) (env->NewLocalRef(g_cls_SyncInfo));\r
-    if (!cls_sync)\r
+    jobject syncType = getJavaSyncType(env, sync->getState());\r
+    if (!syncType)\r
+    {\r
+        LOGE ("Failed to Get syncType for SyncInfo");\r
+        if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();\r
+        return ;\r
+    }\r
+    jclass cls_SyncInfo = (jclass) (env->NewLocalRef(g_cls_SyncInfo));\r
+    if (!cls_SyncInfo)\r
     {\r
         LOGE ("Failed to Get ObjectClass for SyncInfo");\r
         if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();\r
         return ;\r
     }\r
-    jmethodID mid_sync = env->GetMethodID(\r
-                             cls_sync, "<init>", "(JLjava/lang/String;I)V");\r
-    if (!mid_sync)\r
+    jmethodID mid_syncInfo = env->GetMethodID(\r
+                                 cls_SyncInfo,\r
+                                 "<init>",\r
+                                 "(JLjava/lang/String;Lorg/iotivity/service/ns/common/SyncInfo$SyncType;)V");\r
+    if (!mid_syncInfo)\r
     {\r
-        LOGE ("Failed to Get MethodID for SyncInfo<init>");\r
+        LOGE ("Failed to Get MethodID for SyncInfo");\r
+        if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();\r
+        return ;\r
+    }\r
+\r
+    jobject obj_syncInfo = env->NewObject( cls_SyncInfo, mid_syncInfo,\r
+                                           jMessageId, jProviderId, syncType);\r
+    if (!obj_syncInfo)\r
+    {\r
+        LOGE ("Failed to Get Object for SyncInfo");\r
         if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();\r
         return ;\r
     }\r
-    jobject obj_sync = env->NewObject(cls_sync, mid_sync,\r
-                                      jMessageId, jProviderId, jState);\r
 \r
     jclass cls = env->GetObjectClass(jSyncListener);\r
     if (!cls)\r
@@ -730,10 +839,10 @@ void onSyncInfoReceived(OIC::Service::NSSyncInfo *sync)
         return ;\r
     }\r
 \r
-    env->CallVoidMethod(jSyncListener, mid, obj_sync);\r
+    env->CallVoidMethod(jSyncListener, mid, obj_syncInfo);\r
 \r
     env->DeleteLocalRef(jSyncListener);\r
-    env->DeleteLocalRef(cls_sync);\r
+    env->DeleteLocalRef(cls_SyncInfo);\r
     if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();\r
     LOGD ("ConsumerService_onSyncInfoReceived - OUT");\r
     return ;\r
@@ -828,6 +937,7 @@ JNIEXPORT jobject JNICALL Java_org_iotivity_service_ns_consumer_ConsumerService_
     }\r
 \r
     const char *providerId = env->GetStringUTFChars(jProviderId, 0);\r
+    LOGD ("java_ProviderId : %s\n", providerId);\r
 \r
     OIC::Service::NSProvider *provider =\r
         OIC::Service::NSConsumerService::getInstance()->getProvider(std::string(providerId));\r
@@ -836,8 +946,7 @@ JNIEXPORT jobject JNICALL Java_org_iotivity_service_ns_consumer_ConsumerService_
         ThrowNSException(NS_ERROR, "Provider with Given Id doesn't exist");\r
         return NULL;\r
     }\r
-\r
-    LOGD ("ProviderId : %s\n", provider->getProviderId().c_str());\r
+    LOGD ("native_ProviderId : %s\n", provider->getProviderId().c_str());\r
 \r
     jProviderId = env->NewStringUTF(provider->getProviderId().c_str());\r
     jlong pProvider = (long)provider;\r
@@ -846,6 +955,7 @@ JNIEXPORT jobject JNICALL Java_org_iotivity_service_ns_consumer_ConsumerService_
     if (!cls_provider)\r
     {\r
         LOGE ("Failed to Get ObjectClass for Provider");\r
+        ThrowNSException(NS_ERROR, "Couldn't find objectClass for Provider");\r
         return NULL;\r
     }\r
     jmethodID mid_provider = env->GetMethodID(\r
@@ -853,6 +963,7 @@ JNIEXPORT jobject JNICALL Java_org_iotivity_service_ns_consumer_ConsumerService_
     if (!mid_provider)\r
     {\r
         LOGE ("Failed to Get MethodID for Provider<init>");\r
+        ThrowNSException(NS_ERROR, "Couldn't find MethodID for Provider<init>");\r
         return NULL;\r
     }\r
     jobject obj_provider = env->NewObject(cls_provider, mid_provider,\r
@@ -1055,8 +1166,6 @@ JNIEXPORT void JNICALL Java_org_iotivity_service_ns_consumer_Provider_nativeSetL
         {\r
             env->DeleteGlobalRef(g_obj_syncListener);\r
         }\r
-        g_obj_syncListener = NULL;\r
-        g_obj_acceptListener = NULL;\r
         g_obj_postListener = (jobject) env->NewGlobalRef(jPostListener);\r
         g_obj_syncListener = (jobject) env->NewGlobalRef(jSyncListener);\r
 \r
@@ -1080,8 +1189,6 @@ JNIEXPORT void JNICALL Java_org_iotivity_service_ns_consumer_Provider_nativeSetL
         {\r
             env->DeleteGlobalRef(g_obj_syncListener);\r
         }\r
-        g_obj_syncListener = NULL;\r
-        g_obj_acceptListener = NULL;\r
         g_obj_postListener = (jobject) env->NewGlobalRef(jPostListener);\r
         g_obj_syncListener = (jobject) env->NewGlobalRef(jSyncListener);\r
 \r
@@ -1202,6 +1309,20 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved)
         return JNI_ERR;\r
     }\r
 \r
+    jclass localSyncType = env->FindClass(\r
+                               "org/iotivity/service/ns/common/SyncInfo$SyncType");\r
+    if (!localSyncType)\r
+    {\r
+        LOGE("Failed to get local SyncType enum");\r
+        return JNI_ERR;\r
+    }\r
+    g_cls_SyncType = (jclass) (env->NewGlobalRef(localSyncType));\r
+    if (!g_cls_SyncType)\r
+    {\r
+        LOGE("Failed to set Global SyncType reference");\r
+        return JNI_ERR;\r
+    }\r
+\r
     jclass localMediaContents = env->FindClass(\r
                                     "org/iotivity/service/ns/common/MediaContents");\r
     if (!localMediaContents)\r
@@ -1287,6 +1408,7 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved)
     env->DeleteLocalRef(localMessage);\r
     env->DeleteLocalRef(localProvider);\r
     env->DeleteLocalRef(localSyncInfo);\r
+    env->DeleteLocalRef(localSyncType);\r
     env->DeleteLocalRef(localMediaContents);\r
     env->DeleteLocalRef(localTopicState);\r
     env->DeleteLocalRef(localMessageType);\r
@@ -1311,6 +1433,7 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved)
     env->DeleteGlobalRef(g_cls_Message);\r
     env->DeleteGlobalRef(g_cls_Provider);\r
     env->DeleteGlobalRef(g_cls_SyncInfo);\r
+    env->DeleteGlobalRef(g_cls_SyncType);\r
     env->DeleteGlobalRef(g_cls_MediaContents);\r
     env->DeleteGlobalRef(g_cls_TopicState);\r
     env->DeleteGlobalRef(g_cls_Message_Type);\r
index 80c02a0..f8ee789 100644 (file)
@@ -183,6 +183,25 @@ OIC::Service::NSMessage *getNativeMessage(JNIEnv *env, jobject jMsg)
     }
     LOGD("Message Source: %s\n", messageSource);
 
+    // Message Topic
+    jfieldID fid_topic = env->GetFieldID( cls, "mTopic", "Ljava/lang/String;");
+    if (fid_topic == NULL)
+    {
+        LOGE("Error: jfieldID for topic  is null");
+        return nullptr;
+    }
+    jstring jtopic = (jstring)env->GetObjectField( jMsg, fid_topic);
+    const char *topic = "";
+    if (jtopic)
+    {
+        topic = env->GetStringUTFChars( jtopic, NULL);
+    }
+    else
+    {
+        LOGD("Info: topic is null");
+    }
+    LOGD("Topic : %s\n", topic);
+
     // Message MediaContents
     jfieldID fid_media = env->GetFieldID( cls, "mMediaContents",
                                           "Lorg/iotivity/service/ns/common/MediaContents;");
@@ -232,6 +251,7 @@ OIC::Service::NSMessage *getNativeMessage(JNIEnv *env, jobject jMsg)
     nsMsg->setContentText(std::string(messageBody));
     nsMsg->setSourceName(std::string(messageSource));
     nsMsg->setMediaContents(media);
+    nsMsg->setTopic(std::string(topic));
 
     env->DeleteLocalRef(cls_messageType);
     env->DeleteLocalRef(cls_MediaContents);
@@ -252,6 +272,10 @@ OIC::Service::NSMessage *getNativeMessage(JNIEnv *env, jobject jMsg)
     {
         env->ReleaseStringUTFChars(jmsgSource, messageSource);
     }
+    if (jtopic)
+    {
+        env->ReleaseStringUTFChars(jtopic, topic);
+    }
     if (jiconImage)
     {
         env->ReleaseStringUTFChars(jiconImage, iconImage);
@@ -262,16 +286,16 @@ OIC::Service::NSMessage *getNativeMessage(JNIEnv *env, jobject jMsg)
 
 }
 
-jobject getJavaState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsState)
+jobject getJavaTopicState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsState)
 {
-    LOGD("JNIProviderService: getJavaState - IN");
+    LOGD("JNIProviderService: getJavaTopicState - IN");
 
     // TopicState
     jclass cls_topicState = (jclass) (env->NewLocalRef(g_cls_TopicState));
     if (!cls_topicState)
     {
         LOGE ("Failed to Get ObjectClass for TopicState Type");
-        return nullptr;
+        return NULL;
     }
 
     jobject obj_topicState;
@@ -294,10 +318,9 @@ jobject getJavaState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsState)
     if (obj_topicState == NULL)
     {
         LOGE("Error: object of field  TopicState  is null");
-        return NULL;
     }
     env->DeleteLocalRef(cls_topicState);
-    LOGD("JNIProviderService: getJavaState - OUT");
+    LOGD("JNIProviderService: getJavaTopicState - OUT");
     return obj_topicState;
 }
 
@@ -317,11 +340,21 @@ jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)
         return NULL;
     }
     jobject obj_topicList = env->NewObject(cls_topicList, mid_topicList);
-    jmethodID mid_addTopic =
-        env->GetMethodID(cls_topicList, "addTopic", "(Lorg/iotivity/service/ns/common/Topic;)V");
+    if (!obj_topicList)
+    {
+        LOGE ("Failed to Get object for TopicsList");
+        return NULL;
+    }
+    jmethodID mid_addTopic = env->GetMethodID(cls_topicList, "addTopic",
+                             "(Ljava/lang/String;Lorg/iotivity/service/ns/common/Topic$TopicState;)V");
+    if (!mid_addTopic)
+    {
+        LOGE ("Failed to Get MethodID for addTopic");
+        return NULL;
+    }
     for (auto it : topicList->getTopicsList())
     {
-        jobject jState = getJavaState(env, it->getState());
+        jobject jState = getJavaTopicState(env, it->getState());
         std::string topicName = it->getTopicName();
         jstring jTopicName = env->NewStringUTF(topicName.c_str());
         env->CallVoidMethod(obj_topicList, mid_addTopic, jTopicName, jState);
@@ -331,6 +364,52 @@ jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)
     return obj_topicList;
 }
 
+jobject getJavaSyncType(JNIEnv *env, OIC::Service::NSSyncInfo::NSSyncType nsType)
+{
+    LOGD ("JNIProviderService: getJavaSyncType - IN");
+
+    // SyncType
+    jclass cls_SyncType = (jclass) (env->NewLocalRef(g_cls_SyncType));
+    if (!cls_SyncType)
+    {
+        LOGE ("Failed to Get ObjectClass for SyncType");
+        return NULL;
+    }
+    jobject syncType;
+    switch (nsType)
+    {
+        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_UNREAD:
+            {
+                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
+                                          "UNREAD", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
+                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
+            }
+        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ :
+            {
+                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
+                                          "READ", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
+                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
+            }
+        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED :
+            {
+                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
+                                          "DELETED", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
+                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
+            }
+
+    }
+
+    if (syncType == NULL)
+    {
+        LOGE("Error: object of field  Synctype  is null");
+    }
+
+    env->DeleteLocalRef(cls_SyncType);
+    LOGD ("JNIProviderService: getJavaSyncType - OUT");
+    return syncType;
+}
+
+
 void onSubscribeListenerCb(OIC::Service::NSConsumer *consumer)
 {
     LOGD("JNIProviderService_onSubscribeListenerCb - IN");
@@ -362,7 +441,7 @@ void onSubscribeListenerCb(OIC::Service::NSConsumer *consumer)
     jmethodID mid_consumer = env->GetMethodID(
                                  cls_consumer,
                                  "<init>",
-                                 "(JLjava/lang/String;Lorg/iotivity/service/ns/provider/Consumer)V");
+                                 "(Ljava/lang/String;)V");
     if (!mid_consumer)
     {
         LOGE ("Failed to Get MethodID for Consumer<init>");
@@ -418,38 +497,13 @@ void onSyncInfoListenerCb(OIC::Service::NSSyncInfo *sync)
 
     jlong jMessageId = (long)  sync->getMessageId();
     jstring jProviderId = env->NewStringUTF(sync->getProviderId().c_str());
-    jobject syncType;
-
-    jclass cls_SyncType = (jclass) (env->NewLocalRef(g_cls_SyncType));
-    if (!cls_SyncType)
+    jobject syncType = getJavaSyncType(env, sync->getState());
+    if (!syncType)
     {
-        LOGE ("Failed to Get ObjectClass for SyncType");
+        LOGE ("Failed to Get syncType for SyncInfo");
         if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();
         return ;
     }
-    switch (sync->getState())
-    {
-        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_UNREAD:
-            {
-                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
-                                          "UNREAD", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
-                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
-            }
-        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ :
-            {
-                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
-                                          "READ", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
-                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
-            }
-        case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED :
-            {
-                static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
-                                          "DELETED", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
-                syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
-            }
-
-    }
-
     jclass cls_SyncInfo = (jclass) (env->NewLocalRef(g_cls_SyncInfo));
     if (!cls_SyncInfo)
     {
@@ -460,7 +514,7 @@ void onSyncInfoListenerCb(OIC::Service::NSSyncInfo *sync)
     jmethodID mid_syncInfo = env->GetMethodID(
                                  cls_SyncInfo,
                                  "<init>",
-                                 "(JLjava/lang/String;Lorg/iotivity/service/ns/common/SyncInfo$SyncType)V");
+                                 "(JLjava/lang/String;Lorg/iotivity/service/ns/common/SyncInfo$SyncType;)V");
     if (!mid_syncInfo)
     {
         LOGE ("Failed to Get MethodID for SyncInfo");
@@ -468,8 +522,14 @@ void onSyncInfoListenerCb(OIC::Service::NSSyncInfo *sync)
         return ;
     }
 
-    jobject obj_syncInfo = env->NewObject( cls_SyncInfo, mid_syncInfo, jMessageId, jProviderId,
-                                           syncType);
+    jobject obj_syncInfo = env->NewObject( cls_SyncInfo, mid_syncInfo,
+                                           jMessageId, jProviderId, syncType);
+    if (!obj_syncInfo)
+    {
+        LOGE ("Failed to Get Object for SyncInfo");
+        if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();
+        return ;
+    }
 
     jclass cls = env->GetObjectClass( jSyncListener);
     if (!cls)
@@ -478,8 +538,10 @@ void onSyncInfoListenerCb(OIC::Service::NSSyncInfo *sync)
         if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();
         return;
     }
-    jmethodID mid = env->GetMethodID( cls, "onMessageSynchronized",
-                                      "(Lorg/iotivity/service/ns/common/SyncInfo)V");
+    jmethodID mid = env->GetMethodID(
+                        cls,
+                        "onSyncInfoReceived",
+                        "(Lorg/iotivity/service/ns/common/SyncInfo;)V");
     if (!mid)
     {
         LOGE("Failed to Get MethodID");
@@ -490,7 +552,6 @@ void onSyncInfoListenerCb(OIC::Service::NSSyncInfo *sync)
 
     env->DeleteLocalRef(jSyncListener);
     env->DeleteLocalRef(cls_SyncInfo);
-    env->DeleteLocalRef(cls_SyncType);
     if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();
 
     LOGD("JNIProviderService: OnSyncInfoListenerCb - OUT");
@@ -734,7 +795,7 @@ JNIEXPORT jint JNICALL Java_org_iotivity_service_ns_provider_Consumer_nativeAcce
     if (!jconId)
     {
         ThrowNSException(NS_ERROR, "ProviderId cannot be null");
-        return (jint) OIC::Service::NSResult::ERROR;;
+        return (jint) OIC::Service::NSResult::ERROR;
     }
     const char *conId = env->GetStringUTFChars( jconId, NULL);
     std::string consumerId(conId);
@@ -744,18 +805,12 @@ JNIEXPORT jint JNICALL Java_org_iotivity_service_ns_provider_Consumer_nativeAcce
 
     OIC::Service::NSConsumer *consumer =
         OIC::Service::NSProviderService::getInstance()->getConsumer(consumerId);
-    int result =  consumer->acceptSubscription(consumer,  (bool)jAccepted);
-    if (jAccepted)
-    {
-        LOGD("Subscription Accepted");
-    }
-    else
-    {
-        LOGD("Subscription Denied");
-    }
+    if (consumer)
+        return (jint) consumer->acceptSubscription(consumer,  (bool)jAccepted);
 
+    LOGE("Couldn't find consumer");
     LOGD("JNIProviderService: nativeAcceptSubscription - OUT");
-    return result;
+    return (jint) OIC::Service::NSResult::ERROR;
 }
 JNIEXPORT jint JNICALL Java_org_iotivity_service_ns_provider_Consumer_nativeSelectTopic
 (JNIEnv *env, jobject jObj, jstring jConsumerId, jstring jTopicName)
@@ -838,6 +893,7 @@ JNIEXPORT jobject JNICALL Java_org_iotivity_service_ns_provider_Consumer_nativeG
         ThrowNSException(NS_ERROR, "Consumer does exists");
         return NULL;
     }
+    env->ReleaseStringUTFChars(jConsumerId, id);
     OIC::Service::NSTopicsList *topicList  = nsConsumer->getConsumerTopics();
     if (topicList == nullptr)
     {
@@ -845,8 +901,6 @@ JNIEXPORT jobject JNICALL Java_org_iotivity_service_ns_provider_Consumer_nativeG
         return NULL;
     }
     jobject obj_topicList = getJavaTopicsList(env, topicList);
-
-    env->ReleaseStringUTFChars(jConsumerId, id);
     LOGD("JNIProviderService: nativeGetConsumerTopics - OUT");
     return obj_topicList;
 }
index 37fb1ad..28780e0 100755 (executable)
@@ -37,7 +37,7 @@ namespace OIC
             if (msg != nullptr)\r
             {\r
                 m_messageId = msg->messageId;\r
-                m_providerId.assign(msg->providerId, NS_UTILS_UUID_STRING_SIZE);\r
+                m_providerId = msg->providerId;\r
 \r
                 m_type = (NSMessageType)msg->type;\r
 \r
index c5f173c..5b9ab58 100755 (executable)
@@ -33,7 +33,7 @@ namespace OIC
             if (syncInfo != nullptr)\r
             {\r
                 m_messageId = syncInfo->messageId;\r
-                m_providerId.assign(syncInfo->providerId, NS_UTILS_UUID_STRING_SIZE);\r
+                m_providerId = syncInfo->providerId;\r
                 m_state = (NSSyncType) syncInfo->state;\r
             }\r
         }\r
index c65e552..ce90f51 100755 (executable)
@@ -63,7 +63,7 @@ namespace OIC
             m_syncInfoCb = NULL;\r
             if (provider != nullptr)\r
             {\r
-                m_providerId.assign(provider->providerId, NS_UTILS_UUID_STRING_SIZE);\r
+                m_providerId = provider->providerId;\r
                 if (provider->topicLL != nullptr)\r
                     m_topicList = new NSTopicsList(provider->topicLL);\r
                 else\r
index 7c99f3d..58a0fae 100755 (executable)
@@ -40,7 +40,7 @@ namespace OIC
         {\r
             if (consumer != nullptr)\r
             {\r
-                m_consumerId.assign(consumer->consumerId, NS_UTILS_UUID_STRING_SIZE);\r
+                m_consumerId = consumer->consumerId;\r
             }\r
         }\r
 \r