Merge pull request #570 from afs/iri-dots

JENA-1713: Switch off warning for NON_INITIAL_DOT_SEGMENT
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
index 6c560f5..8b7224d 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
@@ -56,7 +56,13 @@
             printSetting(iriFactoryInst);
         }
         
+        // Accept any scheme.
         setErrorWarning(iriFactoryInst, ViolationCodes.UNREGISTERED_IANA_SCHEME, false, false);
+        
+        // These are a warning from jena-iri motivated by problems in RDF/XML and also internal processing by IRI
+        // (IRI.relativize).  
+        // The IRI is valid and does correct resolve when relative.
+        setErrorWarning(iriFactoryInst, ViolationCodes.NON_INITIAL_DOT_SEGMENT, false, false);
 
         // Turn off?? (ignored in CheckerIRI.iriViolations anyway).
         // setErrorWarning(iriFactory, ViolationCodes.LOWERCASE_PREFERRED, false, false);
@@ -105,6 +111,7 @@
     private static void printSetting(IRIFactory factory) {
         PrintStream ps = System.out;
         printErrorWarning(ps, factory, ViolationCodes.UNREGISTERED_IANA_SCHEME);
+        printErrorWarning(ps, factory, ViolationCodes.NON_INITIAL_DOT_SEGMENT);
         printErrorWarning(ps, factory, ViolationCodes.NOT_NFC);
         printErrorWarning(ps, factory, ViolationCodes.NOT_NFKC);
         printErrorWarning(ps, factory, ViolationCodes.UNWISE_CHARACTER);
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java
index 576f75a..2a98f79 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java
@@ -25,7 +25,6 @@
 import org.apache.jena.riot.ErrorHandlerTestLib ;
 import org.apache.jena.riot.ErrorHandlerTestLib.ExWarning ;
 import org.apache.jena.riot.checker.CheckerIRI ;
-import org.apache.jena.riot.system.Checker ;
 import org.apache.jena.riot.system.ErrorHandler ;
 import org.apache.jena.riot.system.IRIResolver ;
 import org.apache.jena.riot.system.RiotLib ;
@@ -34,39 +33,39 @@
 public class TestIRI extends BaseTest
 {
     static protected final ErrorHandler handler = new ErrorHandlerTestLib.ErrorHandlerEx() ;
-    static protected final Checker checker = new Checker(new ErrorHandlerTestLib.ErrorHandlerEx()) ;
-    
+
     static IRIFactory factory = IRIResolver.iriFactory();
-    
+
     @Test public void iri1()  { testIRI("http://example/") ; }
-    
+
+    // JENA-1713: Not a warning
+    @Test 
+    public void iri2()  { testIRI("http://example/.") ; }
+
     @Test(expected=ErrorHandlerTestLib.ExError.class)
     // No relative IRIs
-    public void iri2()  { testIRI("example") ; }
-    
+    public void iriErr1()  { testIRI("example") ; }
+
     @Test(expected=ExWarning.class) 
-    public void iriErr1()  
+    public void iriWarn1()  
     { testIRI("http:") ; }
 
     @Test(expected=ExWarning.class) 
-    public void iriErr2()  { testIRI("http:///::") ; }
+    public void iriWarn2()  { testIRI("http:///::") ; }
 
-    @Test(expected=ExWarning.class) 
-    public void iriErr3()  { testIRI("http://example/.") ; }
-    
     private void testIRI(String uriStr)
     {
         IRI iri = factory.create(uriStr) ;
         CheckerIRI.iriViolations(iri, handler) ;
     }
-    
+
     @Test public void bNodeIRI_1()
     {
         Node n = RiotLib.createIRIorBNode("_:abc") ;
         assertTrue(n.isBlank()) ;
         assertEquals("abc", n.getBlankNodeLabel()) ;
     }
-    
+
     @Test public void bNodeIRI_2()
     {
         Node n = RiotLib.createIRIorBNode("abc") ;
diff --git a/jena-iri/NotesAFS.txt b/jena-iri/NotesAFS.txt
index 040e5af..1b0f2a3 100644
--- a/jena-iri/NotesAFS.txt
+++ b/jena-iri/NotesAFS.txt
@@ -5,6 +5,9 @@
 
 === JFlex
 
+See src-dev to project.
+Add JFlex.jar: /home/afs/sys/jflex-1.4.3/lib/JFlex.jar
+
 Build:
 See dev.buildlexer.MainGenerateLexers which does step 1-3
 
diff --git a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerHost.java b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerHost.java
index 73f6bac..2b477c7 100644
--- a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerHost.java
+++ b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerHost.java
@@ -1529,7 +1529,6 @@
    * @return      the next token
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
-  @SuppressWarnings("fallthrough")
   private int yylex() throws java.io.IOException {
     int zzInput;
     int zzAction;
diff --git a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPath.java b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPath.java
index c8707ef..59c3f8c 100644
--- a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPath.java
+++ b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPath.java
@@ -496,7 +496,6 @@
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
   @Override
-  @SuppressWarnings("fallthrough")
   public int yylex() throws java.io.IOException {
     int zzInput;
     int zzAction;
diff --git a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPort.java b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPort.java
index f0a18e7..e2b055a 100644
--- a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPort.java
+++ b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerPort.java
@@ -475,8 +475,7 @@
    * @return      the next token
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
-  @SuppressWarnings("fallthrough")
-@Override
+  @Override
 public int yylex() throws java.io.IOException {
     int zzInput;
     int zzAction;
diff --git a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerQuery.java b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerQuery.java
index 42528ce..ba6ec7c 100644
--- a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerQuery.java
+++ b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerQuery.java
@@ -490,8 +490,7 @@
    * @return      the next token
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
-  @SuppressWarnings("fallthrough")
-@Override
+  @Override
 public int yylex() throws java.io.IOException {
     int zzInput;
     int zzAction;
diff --git a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerScheme.java b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerScheme.java
index fb5cca9..6723244 100644
--- a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerScheme.java
+++ b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerScheme.java
@@ -478,8 +478,7 @@
    * @return      the next token
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
-  @SuppressWarnings("fallthrough")
-@Override
+  @Override
 public int yylex() throws java.io.IOException {
     int zzInput;
     int zzAction;
diff --git a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerUserinfo.java b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerUserinfo.java
index 7df1e26..037f2a2 100644
--- a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerUserinfo.java
+++ b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerUserinfo.java
@@ -490,8 +490,7 @@
    * @return      the next token
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
-  @SuppressWarnings("fallthrough")
-@Override
+  @Override
 public int yylex() throws java.io.IOException {
     int zzInput;
     int zzAction;
diff --git a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerXHost.java b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerXHost.java
index e65a195..ae9a004 100644
--- a/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerXHost.java
+++ b/jena-iri/src/main/java/org/apache/jena/iri/impl/LexerXHost.java
@@ -501,8 +501,7 @@
    * @return      the next token
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
-  @SuppressWarnings("fallthrough")
-@Override
+  @Override
 public int yylex() throws java.io.IOException {
     int zzInput;
     int zzAction;