Repository: nifi
Updated Branches:
  refs/heads/0.x 06d306f0b -> 9e9af204a


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/9e9af204
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/9e9af204
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/9e9af204

Branch: refs/heads/0.x
Commit: 9e9af204a42d86a2060aa0e9765d5eaf536f6587
Parents: 06d306f
Author: Oleg Zhurakousky <[email protected]>
Authored: Tue Jun 14 11:35:25 2016 -0400
Committer: jpercivall <[email protected]>
Committed: Tue Jun 14 15:35:48 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/9e9af204/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/9e9af204/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