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 2011/11/17 21:54:27 UTC

svn commit: r1203361 - in /incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets: SPARQL_Protocol.java SPARQL_Query.java SPARQL_QueryDataset.java SPARQL_QueryGeneral.java SPARQL_ServletBase.java SPARQL_Update.java

Author: andy
Date: Thu Nov 17 20:54:26 2011
New Revision: 1203361

URL: http://svn.apache.org/viewvc?rev=1203361&view=rev
Log:
Use DatasetDescriptions.  Refactor.

Added:
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Protocol.java
Modified:
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Query.java
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryDataset.java
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryGeneral.java
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_ServletBase.java
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Update.java

Added: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Protocol.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Protocol.java?rev=1203361&view=auto
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Protocol.java (added)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Protocol.java Thu Nov 17 20:54:26 2011
@@ -0,0 +1,112 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openjena.fuseki.servlets;
+
+import static org.openjena.fuseki.HttpNames.paramDefaultGraphURI ;
+import static org.openjena.fuseki.HttpNames.paramNamedGraphURI ;
+
+import java.util.Arrays ;
+import java.util.Collections ;
+import java.util.List ;
+
+import javax.servlet.http.HttpServletRequest ;
+import javax.servlet.http.HttpServletResponse ;
+
+import org.openjena.atlas.iterator.Filter ;
+import org.openjena.atlas.iterator.Iter ;
+import org.openjena.atlas.lib.Lib ;
+import org.openjena.fuseki.servlets.SPARQL_Query.HttpActionQuery ;
+
+import com.hp.hpl.jena.query.Query ;
+import com.hp.hpl.jena.query.QueryParseException ;
+import com.hp.hpl.jena.sparql.core.DatasetDescription ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+
+/** Support for the SPARQL protocol (SPARQL Query, SPARQL Update)
+ */
+public  abstract class SPARQL_Protocol extends SPARQL_ServletBase
+{
+    protected class HttpActionProtocol extends HttpAction {
+        DatasetDescription datasetDesc = null ;
+        
+        public HttpActionProtocol(long id, DatasetGraph dsg, HttpServletRequest request, HttpServletResponse response, boolean verbose)
+        {
+            super(id, dsg, request, response, verbose) ;
+        }
+    }
+    
+    protected SPARQL_Protocol(PlainRequestFlag noQueryStringIsOK, boolean verbose_debug)
+    {
+        super(noQueryStringIsOK, verbose_debug) ;
+    }
+
+    protected static String messageForQPE(QueryParseException ex)
+    {
+        if ( ex.getMessage() != null )
+            return ex.getMessage() ;
+        if ( ex.getCause() != null )
+            return Lib.classShortName(ex.getCause().getClass()) ;
+        return null ;
+    }
+
+    // These are the operations passed on by SPARQL_ServletBase
+//    protected abstract String mapRequestToDataset(String uri) ;
+//    protected abstract void perform(long id, DatasetGraph dsg, HttpServletRequest request, HttpServletResponse response) ;
+//    protected abstract boolean requestNoQueryString(HttpServletRequest request, HttpServletResponse response) ;
+
+    
+    protected static DatasetDescription getDatasetDescription(HttpActionQuery action)
+    {
+        List<String> graphURLs = toStrList(action.request.getParameterValues(paramDefaultGraphURI)) ;
+        List<String> namedGraphs = toStrList(action.request.getParameterValues(paramNamedGraphURI)) ;
+        
+        graphURLs = removeEmptyValues(graphURLs) ;
+        namedGraphs = removeEmptyValues(namedGraphs) ;
+        
+        if ( graphURLs.size() == 0 && namedGraphs.size() == 0 )
+            return null ;
+        return DatasetDescription.create(graphURLs, namedGraphs) ;
+    }
+    
+    protected static DatasetDescription getDatasetDescription(Query query)
+    {
+        return DatasetDescription.create(query) ;
+    }
+   
+    private static List<String> toStrList(String[] array)
+    {
+        if ( array == null )
+            return Collections.emptyList() ;
+        return Arrays.asList(array) ;
+    }
+
+    private static List<String> removeEmptyValues(List<String> list)
+    {
+        return Iter.iter(list).filter(acceptNonEmpty).toList() ;
+    }
+    
+    private static Filter<String> acceptNonEmpty = new Filter<String>(){ 
+        @Override
+        public boolean accept(String item)
+        {
+            return item != null && item.length() != 0 ;
+        }
+    } ;
+}
+

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Query.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Query.java?rev=1203361&r1=1203360&r2=1203361&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Query.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Query.java Thu Nov 17 20:54:26 2011
@@ -19,11 +19,13 @@
 package org.openjena.fuseki.servlets;
 
 import static java.lang.String.format ;
-import static org.openjena.fuseki.HttpNames.paramQuery ;
+import static org.openjena.fuseki.HttpNames.* ;
 
 import java.io.IOException ;
 import java.io.InputStream ;
+import java.util.Arrays ;
 import java.util.Enumeration ;
+import java.util.HashSet ;
 import java.util.Set ;
 
 import javax.servlet.http.HttpServletRequest ;
@@ -38,22 +40,14 @@ import org.openjena.fuseki.migrate.WebIO
 import org.openjena.riot.ContentType ;
 import org.openjena.riot.WebContent ;
 
-import com.hp.hpl.jena.query.Dataset ;
-import com.hp.hpl.jena.query.Query ;
-import com.hp.hpl.jena.query.QueryException ;
-import com.hp.hpl.jena.query.QueryExecution ;
-import com.hp.hpl.jena.query.QueryExecutionFactory ;
-import com.hp.hpl.jena.query.QueryFactory ;
-import com.hp.hpl.jena.query.QueryParseException ;
-import com.hp.hpl.jena.query.ResultSet ;
-import com.hp.hpl.jena.query.Syntax ;
+import com.hp.hpl.jena.query.* ;
 import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
 import com.hp.hpl.jena.sparql.resultset.SPARQLResult ;
 
-public abstract class SPARQL_Query extends SPARQL_ServletBase
+public abstract class SPARQL_Query extends SPARQL_Protocol
 {
-    protected class HttpActionQuery extends HttpAction {
+    protected class HttpActionQuery extends HttpActionProtocol {
         public HttpActionQuery(long id, DatasetGraph dsg, HttpServletRequest request, HttpServletResponse response, boolean verbose)
         {
             super(id, dsg, request, response, verbose) ;
@@ -92,20 +86,23 @@ public abstract class SPARQL_Query exten
     {
         validate(request) ;
         HttpActionQuery action = new HttpActionQuery(id, dsg, request, response, verbose_debug) ;
+        // GET
         if ( request.getMethod().equals(HttpNames.METHOD_GET) )
         {
             executeWithParameter(action) ;
             return ;
         }
 
-        // POST
         ContentType ct = FusekiLib.contentType(request) ;
         String incoming = ct.getContentType() ;
+        
+        // POST application/sparql-query
         if (WebContent.contentTypeSPARQLQuery.equals(incoming))
         {
             executeBody(action) ;
             return ;
         }
+        // POST application/x-www-form-url
         if (WebContent.contentTypeForm.equals(incoming))
         {
             executeWithParameter(action) ;
@@ -115,16 +112,15 @@ public abstract class SPARQL_Query exten
         error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "Bad content type: "+incoming) ;
     }
 
-//    // All the params we support
-//    private static String[] params_ = { paramQuery, paramDefaultGraphURI, paramNamedGraphURI, 
-//                                        paramQueryRef,
-//                                        paramStyleSheet,
-//                                        paramAccept,
-//                                        paramOutput1, paramOutput2, 
-//                                        paramCallback, 
-//                                        paramForceAccept } ;
-//    private static Set<String> params = new HashSet<String>(Arrays.asList(params_)) ;
-//    
+    // All the params we support
+    private static String[] params_ = { paramQuery, paramDefaultGraphURI, paramNamedGraphURI, 
+                                        paramQueryRef,
+                                        paramStyleSheet,
+                                        paramAccept,
+                                        paramOutput1, paramOutput2, 
+                                        paramCallback, 
+                                        paramForceAccept } ;
+    protected static Set<String> allParams = new HashSet<String>(Arrays.asList(params_)) ;
     /** Called to validate arguments */
     protected abstract void validate(HttpServletRequest request) ;
     
@@ -232,11 +228,11 @@ public abstract class SPARQL_Query exten
             
             // Force some query execution now.
             // Do this to force the query to do something that should touch any underlying database,
-            // and hence ensure the communications layer is working.  MySQL can time out after  
-            // 8 hours of an idle connection
+            // and hence ensure the communications layer is working.
+            // MySQL can time out after 8 hours of an idle connection
             rs.hasNext() ;
 
-//            // Not necessary if we are inside readlock under end of sending results. 
+//            // Not necessary if we are inside a read lock until the end of sending results. 
 //            rs = ResultSetFactory.copyResults(rs) ;
 
             log.info(format("[%d] OK/select", action.id)) ;

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryDataset.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryDataset.java?rev=1203361&r1=1203360&r2=1203361&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryDataset.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryDataset.java Thu Nov 17 20:54:26 2011
@@ -18,18 +18,6 @@
 
 package org.openjena.fuseki.servlets;
 
-import static org.openjena.fuseki.HttpNames.paramAccept ;
-import static org.openjena.fuseki.HttpNames.paramCallback ;
-import static org.openjena.fuseki.HttpNames.paramForceAccept ;
-import static org.openjena.fuseki.HttpNames.paramOutput1 ;
-import static org.openjena.fuseki.HttpNames.paramOutput2 ;
-import static org.openjena.fuseki.HttpNames.paramQuery ;
-import static org.openjena.fuseki.HttpNames.paramStyleSheet ;
-
-import java.util.Arrays ;
-import java.util.HashSet ;
-import java.util.Set ;
-
 import javax.servlet.http.HttpServletRequest ;
 import javax.servlet.http.HttpServletResponse ;
 
@@ -38,7 +26,6 @@ import org.openjena.fuseki.HttpNames ;
 import com.hp.hpl.jena.query.Dataset ;
 import com.hp.hpl.jena.query.DatasetFactory ;
 import com.hp.hpl.jena.query.Query ;
-import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
 
 public class SPARQL_QueryDataset extends SPARQL_Query
 {
@@ -50,31 +37,15 @@ public class SPARQL_QueryDataset extends
     
     static String[] tails = { HttpNames.ServiceQuery, HttpNames.ServiceQueryAlt } ;
     
-    // All the params we support
-    private static String[] params_ = { paramQuery, 
-                                        //paramDefaultGraphURI, paramNamedGraphURI, -- only a fixed dataset 
-                                        //paramQueryRef,
-                                        paramStyleSheet,
-                                        paramAccept,
-                                        paramOutput1, paramOutput2, 
-                                        paramCallback, 
-                                        paramForceAccept } ;
-    private static Set<String> params = new HashSet<String>(Arrays.asList(params_)) ;
-    
     @Override
     protected void validate(HttpServletRequest request)
     {
-        validate(request, params) ;
+        validate(request, allParams) ;
     }
 
     @Override
     protected void validateQuery(HttpActionQuery action, Query query)
-    {
-        // TEMP
-        // Push checking whether a dataset description is acceptable down to a TDB dataset.
-        if ( ! (action.dsg instanceof DatasetGraphTDB) && query.hasDatasetDescription() )
-            errorBadRequest("Query may not include a dataset description (FROM/FROM NAMED)") ;
-    }
+    { }
    
     @Override
     protected Dataset decideDataset(HttpActionQuery action, Query query, String queryStringLog) 

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryGeneral.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryGeneral.java?rev=1203361&r1=1203360&r2=1203361&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryGeneral.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_QueryGeneral.java Thu Nov 17 20:54:26 2011
@@ -19,24 +19,12 @@
 package org.openjena.fuseki.servlets;
 
 import static java.lang.String.format ;
-import static org.openjena.fuseki.HttpNames.paramAccept ;
-import static org.openjena.fuseki.HttpNames.paramCallback ;
-import static org.openjena.fuseki.HttpNames.paramDefaultGraphURI ;
-import static org.openjena.fuseki.HttpNames.paramForceAccept ;
-import static org.openjena.fuseki.HttpNames.paramNamedGraphURI ;
-import static org.openjena.fuseki.HttpNames.paramOutput1 ;
-import static org.openjena.fuseki.HttpNames.paramOutput2 ;
-import static org.openjena.fuseki.HttpNames.paramQuery ;
-import static org.openjena.fuseki.HttpNames.paramQueryRef ;
-import static org.openjena.fuseki.HttpNames.paramStyleSheet ;
 
-import java.util.* ;
+import java.util.List ;
 
 import javax.servlet.http.HttpServletRequest ;
 import javax.servlet.http.HttpServletResponse ;
 
-import org.openjena.atlas.iterator.Filter ;
-import org.openjena.atlas.iterator.Iter ;
 import org.openjena.atlas.lib.InternalErrorException ;
 import org.openjena.fuseki.migrate.GraphLoadUtils ;
 import org.openjena.riot.RiotException ;
@@ -46,10 +34,11 @@ import com.hp.hpl.jena.query.DatasetFact
 import com.hp.hpl.jena.query.Query ;
 import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.rdf.model.ModelFactory ;
+import com.hp.hpl.jena.sparql.core.DatasetDescription ;
 
 public class SPARQL_QueryGeneral extends SPARQL_Query
 {
-    final int MaxTriples = 100*1000 ; 
+    final static int MaxTriples = 100*1000 ; 
     
     public SPARQL_QueryGeneral(boolean verbose)
     { 
@@ -59,21 +48,10 @@ public class SPARQL_QueryGeneral extends
     public SPARQL_QueryGeneral()
     { this(false) ; }
 
-    // All the params we support
-    private static String[] params_ = { paramQuery, 
-                                        paramDefaultGraphURI, paramNamedGraphURI,
-                                        paramQueryRef,
-                                        paramStyleSheet,
-                                        paramAccept,
-                                        paramOutput1, paramOutput2, 
-                                        paramCallback, 
-                                        paramForceAccept } ;
-    private static Set<String> params = new HashSet<String>(Arrays.asList(params_)) ;
-    
     @Override
     protected void validate(HttpServletRequest request)
     {
-        validate(request, params) ;
+        validate(request, allParams) ;
     }
 
     @Override
@@ -87,12 +65,15 @@ public class SPARQL_QueryGeneral extends
     @Override
     protected Dataset decideDataset(HttpActionQuery action, Query query, String queryStringLog) 
     {
-        Dataset ds = datasetFromProtocol(action) ;
-        if ( ds == null )
-            ds = datasetFromQuery(action, query) ;
-        if ( ds == null )
+        action.datasetDesc = getDatasetDescription(action) ;
+        // To the context.
+        DatasetDescription datasetDesc = action.datasetDesc ;
+        if ( datasetDesc == null )
+            datasetDesc = getDatasetDescription(query) ;
+        if ( datasetDesc == null )
             errorBadRequest("No dataset description in protocol request or in the query string") ;
-        return ds ;
+
+        return datasetFromDescription(action, datasetDesc) ;
     }
     
     @Override
@@ -102,45 +83,23 @@ public class SPARQL_QueryGeneral extends
         return false ;
     }
 
-    private boolean datasetInProtocol(HttpServletRequest request)
-    {
-        String d = request.getParameter(paramDefaultGraphURI) ;
-        if ( d != null && !d.equals("") )
-            return true ;
-        
-        List<String> n = toStrList(request.getParameterValues(paramNamedGraphURI)) ;
-        if ( n != null && n.size() > 0 )
-            return true ;
-        return false ;
-    }
-    
-    protected Dataset datasetFromProtocol(HttpActionQuery action)
-    {
-        List<String> graphURLs = toStrList(action.request.getParameterValues(paramDefaultGraphURI)) ;
-        List<String> namedGraphs = toStrList(action.request.getParameterValues(paramNamedGraphURI)) ;
-        return datasetFromDescription(action, graphURLs, namedGraphs) ;
-    }
-    
-    protected Dataset datasetFromQuery(HttpActionQuery action, Query query)
-    {
-        List<String> graphURLs = query.getGraphURIs() ;
-        List<String> namedGraphs = query.getNamedGraphURIs() ;
-        return datasetFromDescription(action, graphURLs, namedGraphs) ;
-    }
-    
     /**
-     * Construct a Dataset based on a list of IRIs for the default graph
-     * and list of IRI s for he named graphs 
+     * Construct a Dataset based on a dadaset description.
      */
     
-    protected Dataset datasetFromDescription(HttpActionQuery action, List<String> graphURLs, List<String> namedGraphs)
+    protected static Dataset datasetFromDescription(HttpActionQuery action, DatasetDescription datasetDesc)
     {
         try {
-            graphURLs = removeEmptyValues(graphURLs) ;
-            namedGraphs = removeEmptyValues(namedGraphs) ;
+            if ( datasetDesc == null )
+                return null ;
+            if ( datasetDesc.isEmpty() )
+                return null ;
+            
+            List<String> graphURLs = datasetDesc.getDefaultGraphURIs() ;
+            List<String> namedGraphs = datasetDesc.getNamedGraphURIs() ;
             
             if ( graphURLs.size() == 0 && namedGraphs.size() == 0 )
-                return null ;
+                    return null ;
             
             Dataset dataset = DatasetFactory.createMem() ;
             // Look in cache for loaded graphs!!
@@ -202,26 +161,5 @@ public class SPARQL_QueryGeneral extends
             errorBadRequest("Parameter error: "+ex.getMessage());
             return null ;
         }
-        
-    }
-
-    private List<String> toStrList(String[] array)
-    {
-        if ( array == null )
-            return Collections.emptyList() ;
-        return Arrays.asList(array) ;
     }
-
-    private  List<String> removeEmptyValues(List<String> list)
-    {
-        return Iter.iter(list).filter(acceptNonEmpty).toList() ;
-    }
-    
-    private static Filter<String> acceptNonEmpty = new Filter<String>(){ 
-        @Override
-        public boolean accept(String item)
-        {
-            return item != null && item.length() != 0 ;
-        }
-    } ;
 }

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_ServletBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_ServletBase.java?rev=1203361&r1=1203360&r2=1203361&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_ServletBase.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_ServletBase.java Thu Nov 17 20:54:26 2011
@@ -31,24 +31,22 @@ import javax.servlet.http.HttpServlet ;
 import javax.servlet.http.HttpServletRequest ;
 import javax.servlet.http.HttpServletResponse ;
 
-import org.openjena.atlas.lib.Lib ;
 import org.openjena.fuseki.Fuseki ;
 import org.openjena.fuseki.HttpNames ;
 import org.openjena.fuseki.http.HttpSC ;
-import org.openjena.fuseki.server.DatasetRegistry ;
 import org.openjena.fuseki.server.DatasetRef ;
+import org.openjena.fuseki.server.DatasetRegistry ;
 import org.slf4j.Logger ;
 
-import com.hp.hpl.jena.query.ARQ;
-import com.hp.hpl.jena.query.QueryCancelledException;
-import com.hp.hpl.jena.query.QueryParseException ;
+import com.hp.hpl.jena.query.ARQ ;
+import com.hp.hpl.jena.query.QueryCancelledException ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
 
 public abstract class SPARQL_ServletBase extends HttpServlet
 {
     protected static final Logger log = Fuseki.requestLog ;
     protected static AtomicLong requestIdAlloc = new AtomicLong(0) ;
-    private final PlainRequestFlag noQueryString ;
+    private final PlainRequestFlag queryStringHandling ;
     protected final boolean verbose_debug ;
 
     // Flag for whether a request (no query string) is handled as a regular operation or
@@ -57,7 +55,7 @@ public abstract class SPARQL_ServletBase
     
     protected SPARQL_ServletBase(PlainRequestFlag noQueryStringIsOK, boolean verbose_debug)
     {
-        this.noQueryString = noQueryStringIsOK ;
+        this.queryStringHandling = noQueryStringIsOK ;
         this.verbose_debug = verbose_debug ;
     }
     
@@ -75,7 +73,7 @@ public abstract class SPARQL_ServletBase
         setCommonHeaders(response) ;
         
         try {
-            if ( request.getQueryString() == null && noQueryString == PlainRequestFlag.DIFFERENT )
+            if ( request.getQueryString() == null && queryStringHandling == PlainRequestFlag.DIFFERENT )
             {
                 boolean requestContinue = requestNoQueryString(request, response) ;
                 if ( ! requestContinue ) 
@@ -333,16 +331,7 @@ public abstract class SPARQL_ServletBase
         return string ; 
     }
     
-    protected static String messageForQPE(QueryParseException ex)
-    {
-        if ( ex.getMessage() != null )
-            return ex.getMessage() ;
-        if ( ex.getCause() != null )
-            return Lib.classShortName(ex.getCause().getClass()) ;
-        return null ;
-    }
-
-    public static void setCommonHeaders(HttpServletResponse httpResponse)
+   public static void setCommonHeaders(HttpServletResponse httpResponse)
     {
         httpResponse.setHeader(HttpNames.hAccessControlAllowOrigin, "*") ;
         httpResponse.setHeader(HttpNames.hServer, Fuseki.serverHttpName) ;

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Update.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Update.java?rev=1203361&r1=1203360&r2=1203361&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Update.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/openjena/fuseki/servlets/SPARQL_Update.java Thu Nov 17 20:54:26 2011
@@ -47,11 +47,11 @@ import com.hp.hpl.jena.update.UpdateExce
 import com.hp.hpl.jena.update.UpdateFactory ;
 import com.hp.hpl.jena.update.UpdateRequest ;
 
-public class SPARQL_Update extends SPARQL_ServletBase
+public class SPARQL_Update extends SPARQL_Protocol
 {
     private static String updateParseBase = "http://example/base/" ;
     
-    private class HttpActionUpdate extends HttpAction {
+    private class HttpActionUpdate extends HttpActionProtocol {
         public HttpActionUpdate(long id, DatasetGraph dsg, HttpServletRequest request, HttpServletResponse response, boolean verbose)
         {
             super(id, dsg, request, response, verbose) ;
@@ -228,7 +228,7 @@ public class SPARQL_Update extends SPARQ
             req = UpdateFactory.create(requestStr, updateParseBase) ;
         }
         catch (UpdateException ex) { errorBadRequest(ex.getMessage()) ; req = null ; }
-        catch (QueryParseException ex) { errorBadRequest(ex.getMessage()) ; req = null ; }
+        catch (QueryParseException ex) { errorBadRequest(messageForQPE(ex)) ; req = null ; }
         execute(action, req) ;
         successPage(action,"Update succeeded") ;
     }