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 2016/05/20 11:31:22 UTC

[1/4] jena git commit: Check java classpath resource has been found.

Repository: jena
Updated Branches:
  refs/heads/master aa2918cf6 -> 86974d3d9


Check java classpath resource has been found.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/69acadc3
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/69acadc3
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/69acadc3

Branch: refs/heads/master
Commit: 69acadc30bcf756700eaf162e3f6469aca310229
Parents: aa2918c
Author: Andy Seaborne <an...@apache.org>
Authored: Fri May 20 11:15:14 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri May 20 11:15:14 2016 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/jena/fuseki/server/FusekiServer.java  | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/69acadc3/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
index 5401d9e..2ddd53c 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
@@ -22,6 +22,7 @@ import java.io.File ;
 import java.io.IOException ;
 import java.io.InputStream ;
 import java.io.StringReader ;
+import java.net.URL ;
 import java.nio.file.Files ;
 import java.nio.file.Path ;
 import java.nio.file.StandardCopyOption ;
@@ -194,7 +195,10 @@ public class FusekiServer
         } else {
             try {
                 // Get from the file from area "org/apache/jena/fuseki/server"  (our package)
-                InputStream in = FusekiServer.class.getResource(fn).openStream() ;
+                URL url = FusekiServer.class.getResource(fn) ;
+                if ( url == null )
+                    throw new FusekiConfigException("Field to find resource '"+fn+"'") ; 
+                InputStream in = url.openStream() ;
                 Files.copy(in, dstFile) ;
             }
             catch (IOException e) {


[3/4] jena git commit: Comments.

Posted by an...@apache.org.
Comments.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8aff6633
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8aff6633
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8aff6633

Branch: refs/heads/master
Commit: 8aff6633e4199c31bb2872841af6d2aab0ec5c7e
Parents: 2372a92
Author: Andy Seaborne <an...@apache.org>
Authored: Fri May 20 11:19:38 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri May 20 11:19:38 2016 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/jena/fuseki/Fuseki.java           | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/8aff6633/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
index b5dd841..ef9d457 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
@@ -42,7 +42,7 @@ public class Fuseki {
     // General fixed constants.
     // See also FusekiServer for the naming on the filesystem
 
-    /** Path to ??? */
+    /** Path as package name */
     static public String    PATH                         = "org.apache.jena.fuseki" ;
 
     /** a unique IRI for the Fuseki namespace */
@@ -221,6 +221,10 @@ public class Fuseki {
 
     /**
      * Initialize an instance of the Fuseki server stack.
+     * This is not done via Jena's initialization mechanism
+     * but done explicitly to give more control.
+     * Touching this class causes this to happen 
+     * (see static block at the end of this class). 
      */
     public synchronized static void init() {
         if ( initialized )


[2/4] jena git commit: Additional debug output for initialization.

Posted by an...@apache.org.
Additional debug output for initialization.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/2372a929
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/2372a929
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/2372a929

Branch: refs/heads/master
Commit: 2372a929adacccc1499e773b274a91baefbc413c
Parents: 69acadc
Author: Andy Seaborne <an...@apache.org>
Authored: Fri May 20 11:18:42 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri May 20 11:18:42 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/system/JenaSystem.java     | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/2372a929/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index 2858bec..433a446 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -101,11 +101,19 @@ public class JenaSystem {
             
             // Debug : what did we find?
             if ( JenaSystem.DEBUG_INIT ) {
+                logLifecycle("Found:") ;
                 get().snapshot().forEach(mod->
-                    logLifecycle("  %s", mod.getClass().getSimpleName())) ;
+                logLifecycle("  %-20s [%d]", mod.getClass().getSimpleName(), mod.level())) ;
             }
+            
             get().add(new JenaInitLevel0()) ;
-
+            
+            if ( JenaSystem.DEBUG_INIT ) {
+                logLifecycle("Initialization sequence:") ;
+                JenaSystem.forEach( module ->
+                    logLifecycle("  %-20s [%d]", module.getClass().getSimpleName(), module.level()) ) ;
+            }
+            
             JenaSystem.forEach( module -> {
                 logLifecycle("Init: %s", module.getClass().getSimpleName());
                 module.start() ;
@@ -176,9 +184,9 @@ public class JenaSystem {
     }
 
     // Order by level (increasing)
-    private static Comparator<JenaSubsystemLifecycle> comparator = (obj1, obj2) -> Integer.compare(obj1.level(), obj2.level()) ;
+    private static Comparator<JenaSubsystemLifecycle> comparator        = (obj1, obj2) -> Integer.compare(obj1.level(), obj2.level()) ;
     // Order by level (decreasing)
-    private static Comparator<JenaSubsystemLifecycle> reverseComparator = (obj1, obj2) -> -1 * Integer.compare(obj1.level(), obj2.level()) ;
+    private static Comparator<JenaSubsystemLifecycle> reverseComparator = (obj1, obj2) -> -1 * comparator.compare(obj1,  obj2) ;
 
     private synchronized static void forEach(Consumer<JenaSubsystemLifecycle> action, Comparator<JenaSubsystemLifecycle> ordering) {
         List<JenaSubsystemLifecycle> x = get().snapshot() ;


[4/4] jena git commit: JENA-1183: Protect against problems writing RDF (esp RDF/XML)

Posted by an...@apache.org.
JENA-1183: Protect against problems writing RDF (esp RDF/XML)


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/86974d3d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/86974d3d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/86974d3d

Branch: refs/heads/master
Commit: 86974d3d922f664413f17e37dd968de55afdea96
Parents: 8aff663
Author: Andy Seaborne <an...@apache.org>
Authored: Fri May 20 12:30:31 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri May 20 12:30:31 2016 +0100

----------------------------------------------------------------------
 .../jena/fuseki/servlets/REST_Quads_R.java      | 15 ++++++++++++--
 .../jena/fuseki/servlets/ResponseDataset.java   | 21 +++++++++++++++-----
 .../jena/fuseki/servlets/SPARQL_GSP_R.java      | 17 +++++++++++++---
 3 files changed, 43 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/86974d3d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
index e51a6fe..8d91854 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
@@ -27,6 +27,7 @@ import javax.servlet.ServletOutputStream ;
 import org.apache.jena.atlas.web.MediaType ;
 import org.apache.jena.atlas.web.TypedOutputStream ;
 import org.apache.jena.riot.web.HttpNames ;
+import org.apache.jena.shared.JenaException ;
 import org.apache.jena.riot.* ;
 import org.apache.jena.sparql.core.DatasetGraph ;
 
@@ -83,9 +84,19 @@ public class REST_Quads_R extends REST_Quads {
         try {
             DatasetGraph dsg = action.getActiveDSG() ;
             action.response.setHeader("Content-type", lang.getContentType().toHeaderString());
+            // ActionLib.contentNegotationQuads above
+            // RDF/XML is not a choice but this code is general.
             RDFFormat fmt =
-                ( lang == Lang.RDFXML ) ? RDFFormat.RDFXML_PLAIN : RDFWriterRegistry.defaultSerialization(lang) ; 
-            RDFDataMgr.write(out, dsg, fmt) ;
+                // Choose streaming.
+                ( lang == Lang.RDFXML ) ? RDFFormat.RDFXML_PLAIN : RDFWriterRegistry.defaultSerialization(lang) ;
+            try {
+                RDFDataMgr.write(out, dsg, fmt) ;
+            } catch (JenaException ex) {
+                if ( fmt.getLang().equals(Lang.RDFXML) )
+                    ServletOps.errorBadRequest("Failed to write output in RDF/XML: "+ex.getMessage()) ;
+                else
+                    ServletOps.errorOccurred("Failed to write output: "+ex.getMessage(), ex) ;
+            }
             ServletOps.success(action) ;
         } finally {
             action.endRead() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/86974d3d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseDataset.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseDataset.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseDataset.java
index 26a5023..34d3495 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseDataset.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseDataset.java
@@ -39,6 +39,7 @@ import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFDataMgr;
 import org.apache.jena.riot.RDFLanguages;
 import org.apache.jena.riot.WebContent;
+import org.apache.jena.shared.JenaException ;
 import org.apache.jena.web.HttpSC;
 
 public class ResponseDataset
@@ -119,12 +120,22 @@ public class ResponseDataset
             ResponseResultSet.setHttpResponse(action, contentType, charset) ;
             response.setStatus(HttpSC.OK_200) ;
             ServletOutputStream out = response.getOutputStream() ;
-            if ( RDFLanguages.isQuads(lang) )
-                RDFDataMgr.write(out, dataset, lang) ;
-            else
-                RDFDataMgr.write(out, dataset.getDefaultModel(), lang) ;
-            out.flush() ;
+            try {
+                if ( RDFLanguages.isQuads(lang) )
+                    RDFDataMgr.write(out, dataset, lang) ;
+                else
+                    RDFDataMgr.write(out, dataset.getDefaultModel(), lang) ;
+                out.flush() ;
+            } catch (JenaException ex) { 
+                // Some RDF/XML data is unwritable. All we can do is pretend it's a bad
+                // request (inappropriate content type).
+                if ( lang.equals(Lang.RDFXML) )
+                    ServletOps.errorBadRequest("Failed to write output in RDF/XML: "+ex.getMessage()) ;
+                else
+                    ServletOps.errorOccurred("Failed to write output: "+ex.getMessage(), ex) ;
+            }
         }
+        catch (ActionErrorException ex) { throw ex ; }
         catch (Exception ex) {
             action.log.info("Exception while writing the response model: "+ex.getMessage(), ex) ;
             ServletOps.errorOccurred("Exception while writing the response model: "+ex.getMessage(), ex) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/86974d3d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
index b7b5d07..632f3d6 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
@@ -27,8 +27,9 @@ import javax.servlet.ServletOutputStream ;
 import org.apache.jena.atlas.web.MediaType ;
 import org.apache.jena.atlas.web.TypedOutputStream ;
 import org.apache.jena.graph.Graph ;
-import org.apache.jena.riot.web.HttpNames ;
 import org.apache.jena.riot.* ;
+import org.apache.jena.riot.web.HttpNames ;
+import org.apache.jena.shared.JenaException ;
 
 /** Only the READ operations */
 public class SPARQL_GSP_R extends SPARQL_GSP
@@ -74,8 +75,18 @@ public class SPARQL_GSP_R extends SPARQL_GSP
             Graph g = target.graph() ;
             //Special case RDF/XML to be the plain (faster, less readable) form
             RDFFormat fmt = 
-                ( lang == Lang.RDFXML ) ? RDFFormat.RDFXML_PLAIN : RDFWriterRegistry.defaultSerialization(lang) ;  
-            RDFDataMgr.write(out, g, fmt) ;
+                ( lang == Lang.RDFXML ) ? RDFFormat.RDFXML_PLAIN : RDFWriterRegistry.defaultSerialization(lang) ;
+            try { 
+                RDFDataMgr.write(out, g, fmt) ;
+            } catch (JenaException ex) { 
+                // Some RDF/XML data is unwritable. All we can do is pretend it's a bad
+                // request (inappropriate content type).
+                // Good news - this happens before any output for RDF/XML-ABBREV. 
+                if ( fmt.getLang().equals(Lang.RDFXML) )
+                    ServletOps.errorBadRequest("Failed to write output in RDF/XML: "+ex.getMessage()) ;
+                else
+                    ServletOps.errorOccurred("Failed to write output: "+ex.getMessage(), ex) ;
+            }
             ServletOps.success(action) ;
         } finally { action.endRead() ; }
     }