summaryrefslogtreecommitdiff
path: root/qpid/cpp/bindings/swig_java_helper.i
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/bindings/swig_java_helper.i')
-rw-r--r--qpid/cpp/bindings/swig_java_helper.i9
1 files changed, 9 insertions, 0 deletions
diff --git a/qpid/cpp/bindings/swig_java_helper.i b/qpid/cpp/bindings/swig_java_helper.i
index a5bd8d1b9d..a42f02b480 100644
--- a/qpid/cpp/bindings/swig_java_helper.i
+++ b/qpid/cpp/bindings/swig_java_helper.i
@@ -27,6 +27,7 @@
%pragma(java) moduleimports=%{
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -63,6 +64,9 @@ import java.util.Set;
static long getVariantMap(final Map<String,Object> m)
{
+ //optimizing for the null & empty map case.
+ if (m == null || m.size() == 0) { return 0; }
+
WriteOnlyVariantMapWrapper map = new WriteOnlyVariantMapWrapper();
for (String key: m.keySet())
{
@@ -73,6 +77,11 @@ import java.util.Set;
static Map<String, Object> getJavaMap(final ReadOnlyVariantMapWrapper map)
{
+ if (map == null)
+ {
+ return Collections.emptyMap();
+ }
+
return new Map<String, Object>()
{
@Override