Fixed potential crashes due to null object 53/92453/1
authorOleksandr Moliavko <o.moliavko@samsung.com>
Thu, 1 Aug 2019 11:02:18 +0000 (14:02 +0300)
committerOleksandr Moliavko <o.moliavko@samsung.com>
Thu, 1 Aug 2019 11:02:18 +0000 (14:02 +0300)
dereference attempts in exception handlers

Issue-ID: SO-1841
Signed-off-by: Oleksandr Moliavko <o.moliavko@samsung.com>
Change-Id: I9882171b47b6442fa8ca12110d8ef23fc975347b

bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/BaseTask.java

index 2e66493..1442099 100644 (file)
@@ -86,8 +86,13 @@ public class BaseTask implements JavaDelegate {
             }
             return variable;
         } else {
-            throw new BadInjectedFieldException(fieldName, getTaskName(),
-                    "expected a variable name string" + ", got object of type " + o.getClass().getName());
+            if (o != null) {
+                throw new BadInjectedFieldException(fieldName, getTaskName(),
+                        "expected a variable name string, got object of type " + o.getClass().getName());
+            } else {
+                throw new BadInjectedFieldException(fieldName, getTaskName(),
+                        "expected a variable name string, got null object");
+            }
         }
     }
 
@@ -114,7 +119,7 @@ public class BaseTask implements JavaDelegate {
             return null;
         } else {
             throw new BadInjectedFieldException(fieldName, getTaskName(),
-                    "expected a variable name string" + ", got object of type " + o.getClass().getName());
+                    "expected a variable name string, got object of type " + o.getClass().getName());
         }
     }
 
@@ -133,9 +138,11 @@ public class BaseTask implements JavaDelegate {
         Object o = getFieldImpl(expression, execution, fieldName, false);
         if (o instanceof String) {
             return (String) o;
-        } else {
+        } else if (o != null) {
             throw new BadInjectedFieldException(fieldName, getTaskName(),
                     "cannot convert '" + o.toString() + "' to Integer");
+        } else {
+            throw new MissingInjectedFieldException(fieldName, getTaskName());
         }
     }
 
@@ -189,8 +196,12 @@ public class BaseTask implements JavaDelegate {
             try {
                 return Integer.parseInt(o.toString());
             } catch (NumberFormatException e) {
-                throw new BadInjectedFieldException(fieldName, getTaskName(),
-                        "cannot convert '" + o.toString() + "' to Integer");
+                if (o != null) {
+                    throw new BadInjectedFieldException(fieldName, getTaskName(),
+                            "cannot convert '" + o.toString() + "' to Integer");
+                } else {
+                    throw new MissingInjectedFieldException(fieldName, getTaskName());
+                }
             }
         }
     }
@@ -289,8 +300,12 @@ public class BaseTask implements JavaDelegate {
             try {
                 return Long.parseLong(o.toString());
             } catch (NumberFormatException e) {
-                throw new BadInjectedFieldException(fieldName, getTaskName(),
-                        "cannot convert '" + o.toString() + "' to Long");
+                if (o != null) {
+                    throw new BadInjectedFieldException(fieldName, getTaskName(),
+                            "cannot convert '" + o.toString() + "' to Long");
+                } else {
+                    throw new MissingInjectedFieldException(fieldName, getTaskName());
+                }
             }
         }
     }