diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/ReflectionStringTraverser.java b/common/source/java/ch/systemsx/cisd/common/utilities/ReflectionStringTraverser.java
index 5586e62464541347d0512147b6d5c876875bf7b6..b9f37a8f318c978943ca307f51ba808df52886f0 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/ReflectionStringTraverser.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/ReflectionStringTraverser.java
@@ -229,6 +229,10 @@ public class ReflectionStringTraverser
         for (int index = 0; index < length; ++index)
         {
             Object element = Array.get(array, index);
+            if (element == null)
+            {
+                continue;
+            }
             if (isString(element))
             {
                 visitStringArrayElement(array, index, element, componentType);
@@ -310,6 +314,10 @@ public class ReflectionStringTraverser
 
     private static boolean isStringCollection(Collection<?> collection)
     {
+        if (collection.isEmpty())
+        {
+            return false;
+        }
         Class<?> elementClass = figureElementClass(collection);
         return isStringClass(elementClass);
     }