Repository: nifi
Updated Branches:
  refs/heads/master 8b0c5a491 -> a8b42c26b


NIFI-2006 fixed NPE in PersistentProvenanceRepository
Fixed NPE in PersistentProvenanceRepository caused by attribute value being null
added test

This closes #528


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/a8b42c26
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/a8b42c26
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/a8b42c26

Branch: refs/heads/master
Commit: a8b42c26b615794f422c67ac205b3ed13782c89d
Parents: 8b0c5a4
Author: Oleg Zhurakousky <[email protected]>
Authored: Tue Jun 14 11:35:25 2016 -0400
Committer: jpercivall <[email protected]>
Committed: Tue Jun 14 15:15:37 2016 -0400

----------------------------------------------------------------------
 .../nifi/provenance/PersistentProvenanceRepository.java      | 8 +++-----
 .../nifi/provenance/TestPersistentProvenanceRepository.java  | 1 +
 2 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/a8b42c26/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java
 
b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java
index 0c830a7..f91f6a4 100644
--- 
a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java
+++ 
b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java
@@ -1786,11 +1786,9 @@ public class PersistentProvenanceRepository implements 
ProvenanceEventRepository
     private Map<String, String> truncateAttributes(final Map<String, String> 
original) {
         final Map<String, String> truncatedAttrs = new HashMap<>();
         for (final Map.Entry<String, String> entry : original.entrySet()) {
-            if (entry.getValue().length() > maxAttributeChars) {
-                truncatedAttrs.put(entry.getKey(), 
entry.getValue().substring(0, maxAttributeChars));
-            } else {
-                truncatedAttrs.put(entry.getKey(), entry.getValue());
-            }
+            String value = entry.getValue() != null && 
entry.getValue().length() > this.maxAttributeChars
+                    ? entry.getValue().substring(0, this.maxAttributeChars) : 
entry.getValue();
+            truncatedAttrs.put(entry.getKey(), value);
         }
         return truncatedAttrs;
     }

http://git-wip-us.apache.org/repos/asf/nifi/blob/a8b42c26/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java
 
b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java
index 4a5c08c..3238d97 100644
--- 
a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java
+++ 
b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java
@@ -1225,6 +1225,7 @@ public class TestPersistentProvenanceRepository {
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("75chars", 
"123456789012345678901234567890123456789012345678901234567890123456789012345");
+        attributes.put("nullChar", null);
 
         final ProvenanceEventBuilder builder = new 
StandardProvenanceEventRecord.Builder();
         builder.setEventTime(System.currentTimeMillis());

Reply via email to