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

svn commit: r1540117 - /jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java

Author: andy
Date: Fri Nov  8 16:59:26 2013
New Revision: 1540117

URL: http://svn.apache.org/r1540117
Log:
JENA-584 - ensure final char of a possible local name is not a DOT.

Modified:
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java?rev=1540117&r1=1540116&r2=1540117&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java Fri Nov  8 16:59:26 2013
@@ -112,9 +112,9 @@ public class NodeFormatterTTL extends No
         int idx = 0 ;
         idx = skip1_PN_CHARS_BASE(str, idx) ;
         if ( idx == -1 ) return false ;
-        idx = skipAny_PN_CHARS_or_DOT(str, idx) ;
+        idx = skipAny_PN_CHARS_or_DOT(str, idx, N-1) ;
         if ( idx == -1 ) return false ;
-        if ( idx == N ) return true ;
+        // Final char
         idx = skip1_PN_CHARS(str, idx) ;
         if ( idx == -1 ) return false ;
         return ( idx == N ) ;
@@ -144,12 +144,12 @@ public class NodeFormatterTTL extends No
         int N = str.length() ;
         if ( N == 0 ) return true ;
         int idx = 0 ;
-        idx = skip1_PN_CHARS_U_or_029(str, idx) ;
+        idx = skip1_PN_CHARS_U_or_digit(str, idx) ;
         if ( idx == -1 ) return false ;
-        idx = skipAny_PN_CHARS_or_DOT(str, idx) ;
+        idx = skipAny_PN_CHARS_or_DOT(str, idx, N-1) ;
         if ( idx == -1 ) return false ;
-        if ( idx == N ) return true ;
         idx = skip1_PN_CHARS(str, idx) ;
+        // Final char
         return ( idx == N ) ;
     }
 
@@ -162,7 +162,7 @@ public class NodeFormatterTTL extends No
         return ch == '\u00B7' || RiotChars.range(ch, '\u0300', '\u036F') || RiotChars.range(ch, '\u203F', '\u2040')  ;  
     }
     
-    private static int skip1_PN_CHARS_U_or_029(String str, int idx)
+    private static int skip1_PN_CHARS_U_or_digit(String str, int idx)
     {
         char ch = str.charAt(idx) ;
         if ( is_PN_CHARS_U(ch) ) return idx+1 ;
@@ -177,15 +177,14 @@ public class NodeFormatterTTL extends No
         return -1 ;
     }
 
-    private static int skipAny_PN_CHARS_or_DOT(String str, int idx)
+    private static int skipAny_PN_CHARS_or_DOT(String str, int idx, int max)
     {
-        int N = str.length() ;
-        for ( int i = idx ; i < N ; i++ )
+        for ( int i = idx ; i < max ; i++ )
         {
             char ch = str.charAt(i) ;
             if ( ! is_PN_CHARS(ch) && ch != '.' ) return i ;
         }
-        return N ;
+        return max ;
     }
 
     private static int skip1_PN_CHARS(String str, int idx)