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 2012/10/24 18:41:47 UTC

svn commit: r1401773 - in /jena/trunk/jena-core: src/main/java/com/hp/hpl/jena/reasoner/rulesys/ src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/ testing/reasoners/bugs/

Author: rvesse
Date: Wed Oct 24 16:41:46 2012
New Revision: 1401773

URL: http://svn.apache.org/viewvc?rev=1401773&view=rev
Log:
Fix for JENA-338, Rule.rulesFromURL() now throws a RulesetNotFoundException only if FileManager.get().open(uri) returns null.  WrappedIOExceptions are not caught and rewrapped incorrectly as highlighted by this bug

Added:
    jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestRuleLoader.java
    jena/trunk/jena-core/testing/reasoners/bugs/bad-encoding.rules
Modified:
    jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/reasoner/rulesys/Rule.java
    jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestPackage.java

Modified: jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/reasoner/rulesys/Rule.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/reasoner/rulesys/Rule.java?rev=1401773&r1=1401772&r2=1401773&view=diff
==============================================================================
--- jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/reasoner/rulesys/Rule.java (original)
+++ jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/reasoner/rulesys/Rule.java Wed Oct 24 16:41:46 2012
@@ -20,6 +20,7 @@ package com.hp.hpl.jena.reasoner.rulesys
 
 import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -481,11 +482,10 @@ public class Rule implements ClauseEntry
     public static List<Rule> rulesFromURL( String uri ) {
         BufferedReader br = null;
         try {
-            br = FileUtils.asBufferedUTF8( FileManager.get().open(uri) );
+            InputStream in = FileManager.get().open(uri);
+            if (in == null) throw new RulesetNotFoundException( uri );
+            br = FileUtils.asBufferedUTF8( in );
             return parseRules( Rule.rulesParserFromReader( br ) );
-        }
-        catch (WrappedIOException e) {
-            throw new RulesetNotFoundException( uri ); 
         } finally {
             if (br != null) try { br.close(); } catch (IOException e2) {}
         }

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestPackage.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestPackage.java?rev=1401773&r1=1401772&r2=1401773&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestPackage.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestPackage.java Wed Oct 24 16:41:46 2012
@@ -57,6 +57,7 @@ public class TestPackage extends TestSui
         addTest( "TestOWLMisc", TestOWLMisc.suite() );
         addTest( "TestCapabilities", TestCapabilities.suite() );
         addTest( "TestComparatorBuiltins", TestComparatorBuiltins.suite() );
+        //addTest ("TestRuleLoader", TestRuleLoader.suite() );
         
         try {
             /* uncomment the following block when we switch to java 1.6 and update ConcurrentTest to do deadlock detection */

Added: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestRuleLoader.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestRuleLoader.java?rev=1401773&view=auto
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestRuleLoader.java (added)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/reasoner/rulesys/test/TestRuleLoader.java Wed Oct 24 16:41:46 2012
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2012 YarcData LLC All Rights Reserved.
+ */ 
+
+package com.hp.hpl.jena.reasoner.rulesys.test;
+
+import java.io.FileNotFoundException;
+
+import org.junit.Test;
+
+import com.hp.hpl.jena.reasoner.rulesys.Rule;
+import com.hp.hpl.jena.shared.RulesetNotFoundException;
+import com.hp.hpl.jena.shared.WrappedIOException;
+
+/**
+ * Tests for the rule loader
+ * @author rvesse
+ *
+ */
+public class TestRuleLoader  {
+    
+    @Test(expected=RulesetNotFoundException.class)
+    public void load_from_file_uri_non_existent() {
+        Rule.rulesFromURL("file:///no-such-file.txt");
+    }
+    
+    @Test(expected=WrappedIOException.class)
+    public void load_from_file_bad_encoding() {
+        Rule.rulesFromURL("testing/reasoners/bugs/bad-encoding.rules");
+    }
+}

Added: jena/trunk/jena-core/testing/reasoners/bugs/bad-encoding.rules
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/testing/reasoners/bugs/bad-encoding.rules?rev=1401773&view=auto
==============================================================================
--- jena/trunk/jena-core/testing/reasoners/bugs/bad-encoding.rules (added)
+++ jena/trunk/jena-core/testing/reasoners/bugs/bad-encoding.rules Wed Oct 24 16:41:46 2012
@@ -0,0 +1,6 @@
+//öäü 
+[ 
+(?x rdfs:label ?y) 
+-> 
+(?x ex:hasLabel ?y) 
+] 
\ No newline at end of file