From adc6259bb27db348da3dcfbc40481253657861d9 Mon Sep 17 00:00:00 2001 From: "abitha.s" Date: Tue, 13 Dec 2016 19:13:14 +0530 Subject: [PATCH] [IOT-1676]Removing Unreachable code from Notification Service JNI Change-Id: If28fb835a94f67f2d37f50ab721ae68ed9234559 Signed-off-by: abitha.s Reviewed-on: https://gerrit.iotivity.org/gerrit/15567 Tested-by: jenkins-iotivity Reviewed-by: Chihyun Cho Reviewed-by: Uze Choi --- .../main/jni/consumer/JniNotificationConsumer.cpp | 71 +++++++++++++++------- .../main/jni/provider/JniNotificationProvider.cpp | 52 +++++++++++----- .../cpp-wrapper/consumer/src/NSConsumerService.cpp | 5 +- 3 files changed, 90 insertions(+), 38 deletions(-) diff --git a/service/notification/android/notification-service/src/main/jni/consumer/JniNotificationConsumer.cpp b/service/notification/android/notification-service/src/main/jni/consumer/JniNotificationConsumer.cpp index 1eb4ef0..2eb79b3 100755 --- a/service/notification/android/notification-service/src/main/jni/consumer/JniNotificationConsumer.cpp +++ b/service/notification/android/notification-service/src/main/jni/consumer/JniNotificationConsumer.cpp @@ -73,37 +73,45 @@ static JNIEnv *GetJNIEnv(jint *ret) jobject getJavaProviderState(JNIEnv *env, OIC::Service::NSProviderState state) { LOGD ("ConsumerService_getJavaProviderState - IN"); + jobject providerState = NULL; switch (state) { case OIC::Service::NSProviderState::ALLOW: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_ProviderState, "ALLOW", "Lorg/iotivity/service/ns/consumer/Provider$ProviderState;"); - return env->GetStaticObjectField(g_cls_ProviderState, fieldID); + providerState = env->GetStaticObjectField(g_cls_ProviderState, fieldID); + break; } case OIC::Service::NSProviderState::DENY: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_ProviderState, "DENY", "Lorg/iotivity/service/ns/consumer/Provider$ProviderState;"); - return env->GetStaticObjectField(g_cls_ProviderState, fieldID); + providerState = env->GetStaticObjectField(g_cls_ProviderState, fieldID); + break; } case OIC::Service::NSProviderState::TOPIC: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_ProviderState, "TOPIC", "Lorg/iotivity/service/ns/consumer/Provider$ProviderState;"); - return env->GetStaticObjectField(g_cls_ProviderState, fieldID); + providerState = env->GetStaticObjectField(g_cls_ProviderState, fieldID); + break; } case OIC::Service::NSProviderState::STOPPED: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_ProviderState, "STOPPED", "Lorg/iotivity/service/ns/consumer/Provider$ProviderState;"); - return env->GetStaticObjectField(g_cls_ProviderState, fieldID); + providerState = env->GetStaticObjectField(g_cls_ProviderState, fieldID); + break; } default: - return NULL; + { + providerState = NULL; + break; + } } LOGD ("ConsumerService_getJavaProviderState - OUT"); - return NULL; + return providerState; } jobject getJavaSyncType(JNIEnv *env, OIC::Service::NSSyncInfo::NSSyncType nsType) @@ -117,32 +125,39 @@ jobject getJavaSyncType(JNIEnv *env, OIC::Service::NSSyncInfo::NSSyncType nsType LOGE ("Failed to Get ObjectClass for SyncType"); return NULL; } + jobject syncType = NULL; 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;"); - return env->GetStaticObjectField(cls_SyncType, fieldID); + syncType = env->GetStaticObjectField(cls_SyncType, fieldID); + break; } case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ : { static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType, "READ", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;"); - return env->GetStaticObjectField(cls_SyncType, fieldID); + syncType = env->GetStaticObjectField(cls_SyncType, fieldID); + break; } case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED : { static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType, "DELETED", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;"); - return env->GetStaticObjectField(cls_SyncType, fieldID); + syncType = env->GetStaticObjectField(cls_SyncType, fieldID); + break; } default: - return NULL; + { + syncType = NULL; + break; + } } LOGD ("ConsumerService_getJavaSyncType - OUT"); - return NULL; + return syncType; } jobject getJavaTopicState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsState) @@ -156,6 +171,7 @@ jobject getJavaTopicState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsSta LOGE ("Failed to Get ObjectClass for TopicState Type"); return NULL; } + jobject topicState = NULL; switch (nsState) { @@ -163,20 +179,25 @@ jobject getJavaTopicState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsSta { static jfieldID fieldID = env->GetStaticFieldID(cls_topicState, "UNSUBSCRIBED", "Lorg/iotivity/service/ns/common/Topic$TopicState;"); - return env->GetStaticObjectField(cls_topicState, fieldID); + topicState = env->GetStaticObjectField(cls_topicState, fieldID); + break; } case OIC::Service::NSTopic::NSTopicState::SUBSCRIBED: { static jfieldID fieldID = env->GetStaticFieldID(cls_topicState, "SUBSCRIBED", "Lorg/iotivity/service/ns/common/Topic$TopicState;"); - return env->GetStaticObjectField(cls_topicState, fieldID); + topicState = env->GetStaticObjectField(cls_topicState, fieldID); + break; } default: - return NULL; + { + topicState = NULL; + break; + } } LOGD ("ConsumerService_getJavaTopicState - OUT"); - return NULL; + return topicState; } jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList) @@ -437,37 +458,45 @@ jobject getJavaProvider(JNIEnv *env, OIC::Service::NSProvider *provider) jobject getJavaMessageType(JNIEnv *env, OIC::Service::NSMessage::NSMessageType type) { LOGD ("ConsumerService_getJavaMessageType - IN"); + jobject messageType = NULL; switch (type) { case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_ALERT: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "ALERT", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_NOTICE: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "NOTICE", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_EVENT: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "EVENT", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_INFO: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "INFO", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } default: - return NULL; + { + messageType = NULL; + break; + } } LOGD ("ConsumerService_getJavaMessageType - OUT"); - return NULL; + return messageType; } jobject getJavaMessage(JNIEnv *env, OIC::Service::NSMessage *message) diff --git a/service/notification/android/notification-service/src/main/jni/provider/JniNotificationProvider.cpp b/service/notification/android/notification-service/src/main/jni/provider/JniNotificationProvider.cpp index 57ca8e7..e227737 100755 --- a/service/notification/android/notification-service/src/main/jni/provider/JniNotificationProvider.cpp +++ b/service/notification/android/notification-service/src/main/jni/provider/JniNotificationProvider.cpp @@ -342,37 +342,45 @@ OIC::Service::NSMessage *getNativeMessage(JNIEnv *env, jobject jMsg) jobject getJavaMessageType(JNIEnv *env, OIC::Service::NSMessage::NSMessageType type) { LOGD ("JNIProviderService: getJavaMessageType - IN"); + jobject messageType = NULL; switch (type) { case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_ALERT: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "ALERT", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_NOTICE: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "NOTICE", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_EVENT: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "EVENT", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } case OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_INFO: { static jfieldID fieldID = env->GetStaticFieldID(g_cls_Message_Type, "INFO", "Lorg/iotivity/service/ns/common/Message$MessageType;"); - return env->GetStaticObjectField(g_cls_Message_Type, fieldID); + messageType = env->GetStaticObjectField(g_cls_Message_Type, fieldID); + break; } default: - return NULL; + { + messageType = NULL; + break; + } } LOGD ("JNIProviderService: getJavaMessageType - OUT"); - return NULL; + return messageType; } jobject getJavaMessage(JNIEnv *env, OIC::Service::NSMessage *message) @@ -550,6 +558,7 @@ jobject getJavaTopicState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsSta LOGE ("Failed to Get ObjectClass for TopicState Type"); return NULL; } + jobject topicState = NULL; switch (nsState) { @@ -557,21 +566,25 @@ jobject getJavaTopicState(JNIEnv *env, OIC::Service::NSTopic::NSTopicState nsSta { static jfieldID fieldID = env->GetStaticFieldID(cls_topicState, "UNSUBSCRIBED", "Lorg/iotivity/service/ns/common/Topic$TopicState;"); - return env->GetStaticObjectField(cls_topicState, fieldID); + topicState = env->GetStaticObjectField(cls_topicState, fieldID); + break; } case OIC::Service::NSTopic::NSTopicState::SUBSCRIBED: { static jfieldID fieldID = env->GetStaticFieldID(cls_topicState, "SUBSCRIBED", "Lorg/iotivity/service/ns/common/Topic$TopicState;"); - return env->GetStaticObjectField(cls_topicState, fieldID); + topicState = env->GetStaticObjectField(cls_topicState, fieldID); + break; } default: - return NULL; - + { + topicState = NULL; + break; + } } LOGD("JNIProviderService: getJavaTopicState - OUT"); - return NULL; + return topicState; } jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList) @@ -625,32 +638,39 @@ jobject getJavaSyncType(JNIEnv *env, OIC::Service::NSSyncInfo::NSSyncType nsType LOGE ("Failed to Get ObjectClass for SyncType"); return NULL; } + jobject syncType = NULL; 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;"); - return env->GetStaticObjectField(cls_SyncType, fieldID); + syncType = env->GetStaticObjectField(cls_SyncType, fieldID); + break; } case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ : { static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType, "READ", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;"); - return env->GetStaticObjectField(cls_SyncType, fieldID); + syncType = env->GetStaticObjectField(cls_SyncType, fieldID); + break; } case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED : { static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType, "DELETED", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;"); - return env->GetStaticObjectField(cls_SyncType, fieldID); + syncType = env->GetStaticObjectField(cls_SyncType, fieldID); + break; } default: - return NULL; + { + syncType = NULL; + break; + } } LOGD ("JNIProviderService: getJavaSyncType - OUT"); - return NULL; + return syncType; } diff --git a/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp b/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp index 37b2305..48a1e76 100755 --- a/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp +++ b/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp @@ -89,7 +89,10 @@ namespace OIC auto discoveredCallback = NSConsumerService::getInstance()->getProviderDiscoveredCb(); discoveredCallback(oldProvider); auto changeCallback = oldProvider->getProviderStateReceivedCb(); - changeCallback(prevState); + if (changeCallback != NULL) + { + changeCallback(prevState); + } } } else if (state == NS_DENY) -- 2.7.4