You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/11/19 17:48:07 UTC

svn commit: r1543489 - in /jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang: BlankNodeAllocatorFixedSeedHash.java BlankNodeAllocatorHash.java

Author: rvesse
Date: Tue Nov 19 16:48:07 2013
New Revision: 1543489

URL: http://svn.apache.org/r1543489
Log:
Fix a NPE condition in BlankNodeAllocatorFixedSeedHash

Modified:
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorFixedSeedHash.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorHash.java

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorFixedSeedHash.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorFixedSeedHash.java?rev=1543489&r1=1543488&r2=1543489&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorFixedSeedHash.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorFixedSeedHash.java Tue Nov 19 16:48:07 2013
@@ -48,10 +48,14 @@ public class BlankNodeAllocatorFixedSeed
         if (seed == null)
             throw new NullPointerException("seed cannot be null");
         this.seed = seed;
+        this.reset();
     }
 
     @Override
     protected UUID freshSeed() {
-        return this.seed;
+        // NB - The parent constructor calls reset() so we have to provide a
+        // fake value here temorarily which we then replace with the user
+        // specified seed by calling reset() again in our own constructor
+        return this.seed == null ? UUID.randomUUID() : this.seed;
     }
 }

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorHash.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorHash.java?rev=1543489&r1=1543488&r2=1543489&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorHash.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/lang/BlankNodeAllocatorHash.java Tue Nov 19 16:48:07 2013
@@ -78,6 +78,19 @@ public class BlankNodeAllocatorHash impl
     
     /**
      * Gets a fresh seed value
+     * <p>
+     * Note that this is called almost immediately by the constructor
+     * and on this initial call you will not yet have access to any 
+     * implementation specific information used to select the seed.
+     * </p>
+     * <p>
+     * Implementations <strong>must</strong> return a non-null value
+     * so if you can't decide a seed prior to seeing your derived
+     * implementations constructor inputs you should return a temporary
+     * fake value initially.  You can then call {@link #reset()} in your 
+     * own constructor after you've taken the necessary steps that allow
+     * you to decide how to generate your own seed. 
+     * </p>
      * @return Seed value
      */
     protected UUID freshSeed() {