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 2017/10/13 15:32:25 UTC
[2/4] jena git commit: JENA-1401: Use JDK-provided thread-safe set.
JENA-1401: Use JDK-provided thread-safe set.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/57951c90
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/57951c90
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/57951c90
Branch: refs/heads/master
Commit: 57951c902e0f8a8c5567c6dd0f4d1ba72e3ea0d7
Parents: c991ae4
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 13 15:16:48 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 13 15:17:02 2017 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/fuseki/async/AsyncPool.java | 8 +++++++-
.../java/org/apache/jena/fuseki/mgt/ActionSleep.java | 8 ++------
.../main/java/org/apache/jena/fuseki/mgt/Backup.java | 15 +++++++++++----
3 files changed, 20 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/57951c90/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/async/AsyncPool.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/async/AsyncPool.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/async/AsyncPool.java
index 90645f5..2be9000 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/async/AsyncPool.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/async/AsyncPool.java
@@ -51,7 +51,13 @@ public class AsyncPool
synchronized(mutex) {
String taskId = Long.toString(++counter) ;
Fuseki.serverLog.info(format("Task : %s : %s",taskId, displayName)) ;
- Callable<Object> c = Executors.callable(task) ;
+ Callable<Object> c = ()->{
+ try { task.run(); }
+ catch (Throwable th) {
+ Fuseki.serverLog.warn(format("Exception in task %s execution", taskId), th);
+ }
+ return null;
+ };
AsyncTask asyncTask = new AsyncTask(c, this, taskId, displayName, dataService, requestId) ;
/* Future<Object> future = */ executor.submit(asyncTask);
runningTasks.put(taskId, asyncTask) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/57951c90/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionSleep.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionSleep.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionSleep.java
index 94d7ad8..1f7a540 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionSleep.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionSleep.java
@@ -31,7 +31,7 @@ import org.apache.jena.fuseki.servlets.HttpAction ;
import org.apache.jena.fuseki.servlets.ServletOps ;
import org.slf4j.Logger ;
-/** A task that kicks off a asynchornous operation that simply waits and exits. For testing. */
+/** A task that kicks off a asynchronous operation that simply waits and exits. For testing. */
public class ActionSleep extends ActionCtl /* Not ActionAsyncTask - that is a container-item based.c */
{
private static final long serialVersionUID = 1925107412069359647L;
@@ -55,12 +55,8 @@ public class ActionSleep extends ActionCtl /* Not ActionAsyncTask - that is a co
protected Runnable createRunnable(HttpAction action) {
String name = action.getDatasetName() ;
- if ( name == null ) {
-// action.log.error("Null for dataset name in item request") ;
-// ServletOps.errorOccurred("Null for dataset name in item request");
-// return null ;
+ if ( name == null )
name = "''" ;
- }
String interval = action.request.getParameter("interval") ;
int sleepMilli = 5000 ;
http://git-wip-us.apache.org/repos/asf/jena/blob/57951c90/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
index 8c9a125..644e953 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
@@ -19,7 +19,9 @@
package org.apache.jena.fuseki.mgt;
import java.io.* ;
+import java.util.Collections;
import java.util.Set ;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.zip.GZIPOutputStream ;
import org.apache.jena.atlas.io.IO ;
@@ -34,7 +36,6 @@ import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.Transactional ;
import org.apache.jena.sparql.core.TransactionalNull ;
-import org.eclipse.jetty.util.ConcurrentHashSet ;
/** Perform a backup */
public class Backup
@@ -58,23 +59,29 @@ public class Backup
// Record of all backups so we don't attempt to backup the
// same dataset multiple times at the same time.
- private static Set<DatasetGraph> activeBackups = new ConcurrentHashSet<>() ;
+ private static Set<DatasetGraph> activeBackups = Collections.newSetFromMap(new ConcurrentHashMap<>());
/** Perform a backup.
- * A backup is a dump of the datset in comrpessed N-Quads, done inside a transaction.
+ * A backup is a dump of the dataset in comrpessed N-Quads, done inside a transaction.
*/
public static void backup(Transactional transactional, DatasetGraph dsg, String backupfile) {
+
+ Log.info(Fuseki.serverLog, "Backup("+backupfile+"):1");
+
if ( transactional == null )
transactional = new TransactionalNull() ;
transactional.begin(ReadWrite.READ);
try {
Backup.backup(dsg, backupfile) ;
+ } catch (Exception ex) {
+ Log.warn(Fuseki.serverLog, "Exception in backup", ex);
}
finally {
transactional.end() ;
}
+ Log.info(Fuseki.serverLog, "Backup("+backupfile+"):2");
}
-
+
/** Perform a backup.
*
* @see #backup(Transactional, DatasetGraph, String)