From 738bb1412a0ac38337a4f8cd6a2cd782924a919c Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 26 Sep 2014 11:23:10 +0200 Subject: Avoid possible NPEs by never setting mC2KProps to null. Clear it on destroy and init. --- src/main/java/com/c2kernel/process/Gateway.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/c2kernel/process/Gateway.java') diff --git a/src/main/java/com/c2kernel/process/Gateway.java b/src/main/java/com/c2kernel/process/Gateway.java index 49ea24b..90ec9c4 100644 --- a/src/main/java/com/c2kernel/process/Gateway.java +++ b/src/main/java/com/c2kernel/process/Gateway.java @@ -54,7 +54,7 @@ import com.c2kernel.utils.ObjectProperties; public class Gateway { - static private ObjectProperties mC2KProps; + static private ObjectProperties mC2KProps = new ObjectProperties(); static private ModuleManager mModules; static private org.omg.CORBA.ORB mORB; static private boolean orbDestroyed = false; @@ -96,7 +96,8 @@ public class Gateway static public void init(Properties props, ResourceLoader res) throws InvalidDataException { // Init properties & resources - mC2KProps = new ObjectProperties(); + mC2KProps.clear(); + orbDestroyed = false; mResource = res; if (mResource == null) mResource = new Resource(); @@ -310,18 +311,19 @@ public class Gateway if (!orbDestroyed) { getORB().destroy(); orbDestroyed = true; + mORB = null; } // clean up remaining objects mModules = null; mResource = null; mMarshaller = null; - mC2KProps = null; + mC2KProps.clear(); } static public org.omg.CORBA.ORB getORB() { - if (orbDestroyed) throw new RuntimeException("Gateway has been closed. ORB is destroyed."); + if (orbDestroyed) throw new RuntimeException("Gateway has been closed. ORB is destroyed. "); if (mORB == null) { mC2KProps.put("com.sun.CORBA.codeset.charsets", "0x05010001, 0x00010109"); // need to force UTF-8 in the Sun ORB -- cgit v1.2.3