Author: kwright
Date: Wed Aug 19 14:47:14 2015
New Revision: 1696600

URL: http://svn.apache.org/r1696600
Log:
Fix for CONNECTORS-1229.

Modified:
    manifoldcf/trunk/CHANGES.txt
    
manifoldcf/trunk/connectors/forcedmetadata/connector/src/main/java/org/apache/manifoldcf/agents/transformation/forcedmetadata/FieldSource.java

Modified: manifoldcf/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1696600&r1=1696599&r2=1696600&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Wed Aug 19 14:47:14 2015
@@ -3,6 +3,9 @@ $Id$
 
 ======================= 2.2-dev =====================
 
+CONNECTORS-1229: Fix NPE in metadata adjuster.
+(Mike Caceres, Karl Wright)
+
 CONNECTORS-1226: PostgreSQL does not implement the isValid()
 JDBC method in the driver we include, so make sure when we call it
 we don't fail if we get an exception.  Related to CONNECTORS-1202.

Modified: 
manifoldcf/trunk/connectors/forcedmetadata/connector/src/main/java/org/apache/manifoldcf/agents/transformation/forcedmetadata/FieldSource.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/forcedmetadata/connector/src/main/java/org/apache/manifoldcf/agents/transformation/forcedmetadata/FieldSource.java?rev=1696600&r1=1696599&r2=1696600&view=diff
==============================================================================
--- 
manifoldcf/trunk/connectors/forcedmetadata/connector/src/main/java/org/apache/manifoldcf/agents/transformation/forcedmetadata/FieldSource.java
 (original)
+++ 
manifoldcf/trunk/connectors/forcedmetadata/connector/src/main/java/org/apache/manifoldcf/agents/transformation/forcedmetadata/FieldSource.java
 Wed Aug 19 14:47:14 2015
@@ -31,6 +31,9 @@ public class FieldSource implements IDat
   protected final static int CASE_LOWER = 1;
   protected final static int CASE_UPPER = 2;
   
+  protected final static Object[] EMPTY_OBJECT_ARRAY = new Object[0];
+  protected final static String[] EMPTY_STRING_ARRAY = new String[0];
+  
   protected final FieldDataFactory rd;
   protected final String fieldName;
   protected final Pattern regExpPattern;
@@ -84,10 +87,7 @@ public class FieldSource implements IDat
   @Override
   public int getSize()
     throws IOException, ManifoldCFException {
-    Object[] rawForm = getRawForm();
-    if (rawForm == null)
-      return 0;
-    return rawForm.length;
+    return getRawForm().length;
   }
     
   @Override
@@ -96,7 +96,10 @@ public class FieldSource implements IDat
     if (regExpPattern != null) {
       return calculateExtractedResult();
     }
-    return rd.getField(fieldName);
+    final Object[] rval = rd.getField(fieldName);
+    if (rval == null)
+      return EMPTY_OBJECT_ARRAY;
+    return rval;
   }
     
   @Override
@@ -105,7 +108,10 @@ public class FieldSource implements IDat
     if (regExpPattern != null) {
       return calculateExtractedResult();
     }
-    return rd.getFieldAsStrings(fieldName);
+    final String[] rval = rd.getFieldAsStrings(fieldName);
+    if (rval == null)
+      return EMPTY_STRING_ARRAY;
+    return rval;
   }
   
   protected String[] calculateExtractedResult()
@@ -131,7 +137,7 @@ public class FieldSource implements IDat
           resultList.add(result);
         }
       }
-      cachedValue = resultList.toArray(new String[0]);
+      cachedValue = resultList.toArray(EMPTY_STRING_ARRAY);
     }
     return cachedValue;
   }


Reply via email to