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/07/24 21:39:55 UTC
svn commit: r1506672 - in
/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki: mgt/ server/
servlets/
Author: andy
Date: Wed Jul 24 19:39:55 2013
New Revision: 1506672
URL: http://svn.apache.org/r1506672
Log:
Abstraction for things with counter sets.
Added:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/Counters.java
Modified:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/mgt/StatsServlet.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServiceRef.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/mgt/StatsServlet.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/mgt/StatsServlet.java?rev=1506672&r1=1506671&r2=1506672&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/mgt/StatsServlet.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/mgt/StatsServlet.java Wed Jul 24 19:39:55 2013
@@ -78,9 +78,9 @@ public class StatsServlet extends HttpSe
DatasetRef desc = DatasetRegistry.get().get(ds) ;
JsonObject stats = new JsonObject() ;
datasets.put(ds, stats) ;
- stats.put(CounterName.Requests.name(), desc.counters.value(CounterName.Requests)) ;
- stats.put(CounterName.RequestsGood.name(), desc.counters.value(CounterName.RequestsGood)) ;
- stats.put(CounterName.RequestsBad.name(), desc.counters.value(CounterName.RequestsBad)) ;
+ stats.put(CounterName.Requests.name(), desc.getCounters().value(CounterName.Requests)) ;
+ stats.put(CounterName.RequestsGood.name(), desc.getCounters().value(CounterName.RequestsGood)) ;
+ stats.put(CounterName.RequestsBad.name(), desc.getCounters().value(CounterName.RequestsBad)) ;
JsonObject services = new JsonObject() ;
// JsonArray endpoints = new JsonArray() ;
@@ -103,8 +103,8 @@ public class StatsServlet extends HttpSe
}
private void statsJSON(JsonObject epStats, ServiceRef srvRef) {
- for (CounterName cn : srvRef.counters.counters()) {
- Counter c = srvRef.counters.get(cn) ;
+ for (CounterName cn : srvRef.getCounters().counters()) {
+ Counter c = srvRef.getCounters().get(cn) ;
epStats.put(cn.name(), c.value()) ;
}
}
@@ -129,27 +129,27 @@ public class StatsServlet extends HttpSe
private void statsTxt(ServletOutputStream out, DatasetRef desc) throws IOException
{
out.println("Dataset: "+desc.name) ;
- out.println(" Requests = "+desc.counters.value(CounterName.Requests)) ;
- out.println(" Good = "+desc.counters.value(CounterName.RequestsGood)) ;
- out.println(" Bad = "+desc.counters.value(CounterName.RequestsBad)) ;
+ out.println(" Requests = "+desc.getCounters().value(CounterName.Requests)) ;
+ out.println(" Good = "+desc.getCounters().value(CounterName.RequestsGood)) ;
+ out.println(" Bad = "+desc.getCounters().value(CounterName.RequestsBad)) ;
out.println(" SPARQL Query:") ;
- out.println(" Request = "+desc.query.counters.value(CounterName.Requests)) ;
- out.println(" Good = "+desc.query.counters.value(CounterName.RequestsGood)) ;
- out.println(" Bad requests = "+desc.query.counters.value(CounterName.RequestsBad)) ;
- out.println(" Timeouts = "+desc.query.counters.value(CounterName.QueryTimeouts)) ;
- out.println(" Bad exec = "+desc.query.counters.value(CounterName.QueryExecErrors)) ;
+ out.println(" Request = "+desc.query.getCounters().value(CounterName.Requests)) ;
+ out.println(" Good = "+desc.query.getCounters().value(CounterName.RequestsGood)) ;
+ out.println(" Bad requests = "+desc.query.getCounters().value(CounterName.RequestsBad)) ;
+ out.println(" Timeouts = "+desc.query.getCounters().value(CounterName.QueryTimeouts)) ;
+ out.println(" Bad exec = "+desc.query.getCounters().value(CounterName.QueryExecErrors)) ;
out.println(" SPARQL Update:") ;
- out.println(" Request = "+desc.update.counters.value(CounterName.Requests)) ;
- out.println(" Good = "+desc.update.counters.value(CounterName.RequestsGood)) ;
- out.println(" Bad requests = "+desc.update.counters.value(CounterName.RequestsBad)) ;
- out.println(" Bad exec = "+desc.update.counters.value(CounterName.UpdateExecErrors)) ;
+ out.println(" Request = "+desc.update.getCounters().value(CounterName.Requests)) ;
+ out.println(" Good = "+desc.update.getCounters().value(CounterName.RequestsGood)) ;
+ out.println(" Bad requests = "+desc.update.getCounters().value(CounterName.RequestsBad)) ;
+ out.println(" Bad exec = "+desc.update.getCounters().value(CounterName.UpdateExecErrors)) ;
out.println(" Upload:") ;
- out.println(" Requests = "+desc.upload.counters.value(CounterName.Requests)) ;
- out.println(" Good = "+desc.upload.counters.value(CounterName.RequestsGood)) ;
- out.println(" Bad = "+desc.upload.counters.value(CounterName.RequestsBad)) ;
+ out.println(" Requests = "+desc.upload.getCounters().value(CounterName.Requests)) ;
+ out.println(" Good = "+desc.upload.getCounters().value(CounterName.RequestsGood)) ;
+ out.println(" Bad = "+desc.upload.getCounters().value(CounterName.RequestsBad)) ;
out.println(" SPARQL Graph Store Protocol:") ;
out.println(" GETs = "+gspValue(desc, CounterName.GSPget)+ " (good="+gspValue(desc, CounterName.GSPgetGood)+"/bad="+gspValue(desc, CounterName.GSPgetBad)+")") ;
@@ -160,8 +160,8 @@ public class StatsServlet extends HttpSe
}
private long gspValue(DatasetRef desc, CounterName cn) {
- long x1 = desc.readGraphStore.counters.value(cn) ;
- long x2 = desc.readWriteGraphStore.counters.value(cn) ;
+ long x1 = desc.readGraphStore.getCounters().value(cn) ;
+ long x2 = desc.readWriteGraphStore.getCounters().value(cn) ;
return x1+x2 ;
}
Added: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/Counters.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/Counters.java?rev=1506672&view=auto
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/Counters.java (added)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/Counters.java Wed Jul 24 19:39:55 2013
@@ -0,0 +1,25 @@
+/**
+ * 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.apache.jena.fuseki.server;
+
+/** Objects that have a counter set */
+public interface Counters {
+ public CounterSet getCounters() ;
+}
+
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java?rev=1506672&r1=1506671&r2=1506672&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java Wed Jul 24 19:39:55 2013
@@ -26,7 +26,7 @@ import org.apache.jena.fuseki.Fuseki ;
import com.hp.hpl.jena.query.ReadWrite ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
-public class DatasetRef implements DatasetMXBean
+public class DatasetRef implements DatasetMXBean, Counters
{
public String name = null ;
public DatasetGraph dataset = null ;
@@ -40,7 +40,10 @@ public class DatasetRef implements Datas
// Dataset-level counters.
- public final CounterSet counters = new CounterSet() ;
+ private final CounterSet counters = new CounterSet() ;
+ @Override
+ public CounterSet getCounters() { return counters ; }
+
private Map<String, ServiceRef> endpoints = new HashMap<String, ServiceRef>() ;
private List<ServiceRef> serviceRefs = new ArrayList<ServiceRef>() ;
private boolean initialized = false ;
@@ -173,28 +176,28 @@ public class DatasetRef implements Datas
}
private void addCounters() {
- counters.add(CounterName.Requests) ;
- counters.add(CounterName.RequestsGood) ;
- counters.add(CounterName.RequestsBad) ;
-
- query.counters.add(CounterName.Requests) ;
- query.counters.add(CounterName.RequestsGood) ;
- query.counters.add(CounterName.RequestsBad) ;
- query.counters.add(CounterName.QueryTimeouts) ;
- query.counters.add(CounterName.QueryExecErrors) ;
-
- update.counters.add(CounterName.Requests) ;
- update.counters.add(CounterName.RequestsGood) ;
- update.counters.add(CounterName.RequestsBad) ;
- update.counters.add(CounterName.UpdateExecErrors) ;
-
- upload.counters.add(CounterName.Requests) ;
- upload.counters.add(CounterName.RequestsGood) ;
- upload.counters.add(CounterName.RequestsBad) ;
+ getCounters().add(CounterName.Requests) ;
+ getCounters().add(CounterName.RequestsGood) ;
+ getCounters().add(CounterName.RequestsBad) ;
+
+ query.getCounters().add(CounterName.Requests) ;
+ query.getCounters().add(CounterName.RequestsGood) ;
+ query.getCounters().add(CounterName.RequestsBad) ;
+ query.getCounters().add(CounterName.QueryTimeouts) ;
+ query.getCounters().add(CounterName.QueryExecErrors) ;
+
+ update.getCounters().add(CounterName.Requests) ;
+ update.getCounters().add(CounterName.RequestsGood) ;
+ update.getCounters().add(CounterName.RequestsBad) ;
+ update.getCounters().add(CounterName.UpdateExecErrors) ;
+
+ upload.getCounters().add(CounterName.Requests) ;
+ upload.getCounters().add(CounterName.RequestsGood) ;
+ upload.getCounters().add(CounterName.RequestsBad) ;
- addCountersForGSP(readWriteGraphStore.counters, false) ;
+ addCountersForGSP(readWriteGraphStore.getCounters(), false) ;
if ( readGraphStore != readWriteGraphStore )
- addCountersForGSP(readGraphStore.counters, true) ;
+ addCountersForGSP(readGraphStore.getCounters(), true) ;
}
private void addCountersForGSP(CounterSet cs, boolean readWrite) {
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServiceRef.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServiceRef.java?rev=1506672&r1=1506671&r2=1506672&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServiceRef.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServiceRef.java Wed Jul 24 19:39:55 2013
@@ -22,11 +22,14 @@ import java.util.ArrayList ;
import java.util.List ;
/** Configuration of an individual service */
-public class ServiceRef implements ServiceMXBean
+public class ServiceRef implements ServiceMXBean, Counters
{
public final String name ;
+
// Service-level counters.
- public final CounterSet counters = new CounterSet() ;
+ private final CounterSet counters = new CounterSet() ;
+ @Override
+ public CounterSet getCounters() { return counters ; }
/** Endpoints (as absolute path URLs) */
public List<String> endpoints = new ArrayList<String>() ;
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java?rev=1506672&r1=1506671&r2=1506672&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java Wed Jul 24 19:39:55 2013
@@ -224,10 +224,10 @@ public abstract class SPARQL_Query exten
queryStringLog = formatForLog(query) ;
validateQuery(action, query) ;
} catch (ActionErrorException ex) {
- action.srvRef.counters.inc(RequestsBad) ;
+ incCounter(action.srvRef, RequestsBad) ;
throw ex ;
} catch (QueryParseException ex) {
- action.srvRef.counters.inc(RequestsBad) ;
+ incCounter(action.srvRef, RequestsBad) ;
errorBadRequest("Parse error: \n" + queryString + "\n\r" + messageForQPE(ex)) ;
}
// Should not happen.
@@ -247,11 +247,11 @@ public abstract class SPARQL_Query exten
sendResults(action, result, query.getPrologue()) ;
} catch (QueryCancelledException ex) {
// Additional counter information.
- action.srvRef.counters.inc(QueryTimeouts) ;
+ incCounter(action.srvRef, QueryTimeouts) ;
throw ex ;
} catch (QueryExecException ex) {
// Additional counter information.
- action.srvRef.counters.inc(QueryExecErrors) ;
+ incCounter(action.srvRef, QueryExecErrors) ;
throw ex ;
} finally {
if ( qExec != null )
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java?rev=1506672&r1=1506671&r2=1506672&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java Wed Jul 24 19:39:55 2013
@@ -222,78 +222,78 @@ public abstract class SPARQL_REST extend
// Counter wrappers
protected void doGet$(HttpAction action) {
- action.srvRef.counters.inc(CounterName.GSPget) ;
+ incCounter(action.srvRef, CounterName.GSPget) ;
try {
doGet(action) ;
- action.srvRef.counters.inc(CounterName.GSPgetGood) ;
+ incCounter(action.srvRef, CounterName.GSPgetGood) ;
} catch ( ActionErrorException ex) {
- action.srvRef.counters.inc(CounterName.GSPgetBad) ;
+ incCounter(action.srvRef, CounterName.GSPgetBad) ;
throw ex ;
}
}
protected void doHead$(HttpAction action) {
- action.srvRef.counters.inc(CounterName.GSPhead) ;
+ incCounter(action.srvRef, CounterName.GSPhead) ;
try {
doHead(action) ;
- action.srvRef.counters.inc(CounterName.GSPheadGood) ;
+ incCounter(action.srvRef, CounterName.GSPheadGood) ;
} catch ( ActionErrorException ex) {
- action.srvRef.counters.inc(CounterName.GSPheadBad) ;
+ incCounter(action.srvRef, CounterName.GSPheadBad) ;
throw ex ;
}
}
protected void doPost$(HttpAction action) {
- action.srvRef.counters.inc(CounterName.GSPpost) ;
+ incCounter(action.srvRef, CounterName.GSPpost) ;
try {
doPost(action) ;
- action.srvRef.counters.inc(CounterName.GSPpostGood) ;
+ incCounter(action.srvRef, CounterName.GSPpostGood) ;
} catch ( ActionErrorException ex) {
- action.srvRef.counters.inc(CounterName.GSPpostBad) ;
+ incCounter(action.srvRef, CounterName.GSPpostBad) ;
throw ex ;
}
}
protected void doPatch$(HttpAction action) {
- action.srvRef.counters.inc(CounterName.GSPpatch) ;
+ incCounter(action.srvRef, CounterName.GSPpatch) ;
try {
doPatch(action) ;
- action.srvRef.counters.inc(CounterName.GSPpatchGood) ;
+ incCounter(action.srvRef, CounterName.GSPpatchGood) ;
} catch ( ActionErrorException ex) {
- action.srvRef.counters.inc(CounterName.GSPpatchBad) ;
+ incCounter(action.srvRef, CounterName.GSPpatchBad) ;
throw ex ;
}
}
protected void doDelete$(HttpAction action) {
- action.srvRef.counters.inc(CounterName.GSPdelete) ;
+ incCounter(action.srvRef, CounterName.GSPdelete) ;
try {
doDelete(action) ;
- action.srvRef.counters.inc(CounterName.GSPdeleteGood) ;
+ incCounter(action.srvRef, CounterName.GSPdeleteGood) ;
} catch ( ActionErrorException ex) {
- action.srvRef.counters.inc(CounterName.GSPdeleteBad) ;
+ incCounter(action.srvRef, CounterName.GSPdeleteBad) ;
throw ex ;
}
}
protected void doPut$(HttpAction action) {
- action.srvRef.counters.inc(CounterName.GSPput) ;
+ incCounter(action.srvRef, CounterName.GSPput) ;
try {
doPut(action) ;
- action.srvRef.counters.inc(CounterName.GSPputGood) ;
+ incCounter(action.srvRef, CounterName.GSPputGood) ;
} catch ( ActionErrorException ex) {
- action.srvRef.counters.inc(CounterName.GSPputBad) ;
+ incCounter(action.srvRef, CounterName.GSPputBad) ;
throw ex ;
}
}
protected void doOptions$(HttpAction action) {
- action.srvRef.counters.inc(CounterName.GSPoptions) ;
+ incCounter(action.srvRef, CounterName.GSPoptions) ;
try {
doOptions(action) ;
- action.srvRef.counters.inc(CounterName.GSPoptionsGood) ;
+ incCounter(action.srvRef, CounterName.GSPoptionsGood) ;
} catch ( ActionErrorException ex) {
- action.srvRef.counters.inc(CounterName.GSPoptionsBad) ;
+ incCounter(action.srvRef, CounterName.GSPoptionsBad) ;
throw ex ;
}
}
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java?rev=1506672&r1=1506671&r2=1506672&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_ServletBase.java Wed Jul 24 19:39:55 2013
@@ -32,10 +32,9 @@ import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
+import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.fuseki.HttpNames ;
-import org.apache.jena.fuseki.server.DatasetRef ;
-import org.apache.jena.fuseki.server.DatasetRegistry ;
-import org.apache.jena.fuseki.server.ServiceRef ;
+import org.apache.jena.fuseki.server.* ;
import org.apache.jena.web.HttpSC ;
import com.hp.hpl.jena.query.ARQ ;
@@ -172,35 +171,51 @@ public abstract class SPARQL_ServletBase
// Called directly by the UberServlet which has not done any stats by this point.
protected void executeLifecycle(HttpAction action)
{
- action.dsRef.counters.inc(Requests) ;
- action.srvRef.counters.inc(Requests) ;
+ incCounter(action.dsRef, Requests) ;
+ incCounter(action.srvRef, Requests) ;
startRequest(action) ;
try {
validate(action) ;
} catch (ActionErrorException ex) {
- action.dsRef.counters.inc(RequestsBad) ;
+ incCounter(action.dsRef,RequestsBad) ;
throw ex ;
}
try {
perform(action) ;
// Success
- action.srvRef.counters.inc(RequestsGood) ;
- action.dsRef.counters.inc(RequestsGood) ;
+ incCounter(action.srvRef, RequestsGood) ;
+ incCounter(action.dsRef, RequestsGood) ;
} catch (ActionErrorException ex) {
- action.srvRef.counters.inc(RequestsBad) ;
- action.dsRef.counters.inc(RequestsBad) ;
+ incCounter(action.srvRef, RequestsBad) ;
+ incCounter(action.dsRef, RequestsBad) ;
throw ex ;
} catch (QueryCancelledException ex) {
- action.srvRef.counters.inc(RequestsBad) ;
- action.dsRef.counters.inc(RequestsBad) ;
+ incCounter(action.srvRef, RequestsBad) ;
+ incCounter(action.dsRef, RequestsBad) ;
throw ex ;
} finally {
finishRequest(action) ;
}
}
-
+
+ protected static void incCounter(Counters counters, CounterName name) {
+ try {
+ counters.getCounters().inc(name) ;
+ } catch (Exception ex) {
+ Fuseki.serverLog.warn("Exception on counter inc", ex) ;
+ }
+ }
+
+ protected static void decCounter(Counters counters, CounterName name) {
+ try {
+ counters.getCounters().dec(name) ;
+ } catch (Exception ex) {
+ Fuseki.serverLog.warn("Exception on counter dec", ex) ;
+ }
+ }
+
@SuppressWarnings("unused") // ServletException
protected void doPatch(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java?rev=1506672&r1=1506671&r2=1506672&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java Wed Jul 24 19:39:55 2013
@@ -245,11 +245,11 @@ public class SPARQL_Update extends SPARQ
action.commit() ;
} catch (UpdateException ex) {
action.abort() ;
- action.srvRef.counters.inc(UpdateExecErrors) ;
+ incCounter(action.srvRef, UpdateExecErrors) ;
errorBadRequest(ex.getMessage()) ;
} catch (QueryParseException ex) {
action.abort() ;
- action.srvRef.counters.inc(UpdateExecErrors) ;
+ incCounter(action.srvRef, UpdateExecErrors) ;
errorBadRequest(messageForQPE(ex)) ;
} catch (Throwable ex) {
if ( ! ( ex instanceof ActionErrorException ) )