]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/SessionRequestManager.java
Use SLF4J Logger in SessionRequestManager.
[simantics/platform.git] / bundles / org.simantics.db.procore / src / fi / vtt / simantics / procore / internal / SessionRequestManager.java
index 0ec6387ae941b0e9cb9c6358282c3b3849ff9d0d..a29d6ce045bc619ceae803dfe7bf6d48cb03241a 100644 (file)
@@ -4,8 +4,8 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.LinkedList;
 
+import org.simantics.db.Disposable;
 import org.simantics.db.Resource;
-import org.simantics.db.common.utils.Logger;
 import org.simantics.db.exception.CancelTransactionException;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.impl.graph.WriteGraphImpl;
@@ -15,9 +15,13 @@ import org.simantics.db.impl.query.QueryProcessor.SessionRead;
 import org.simantics.db.impl.query.QueryProcessor.SessionTask;
 import org.simantics.db.request.WriteTraits;
 import org.simantics.utils.datastructures.Pair;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class SessionRequestManager {
 
+       private static final Logger LOGGER = LoggerFactory.getLogger(SessionRequestManager.class);
+
        private static boolean DEBUG = false;
        
        enum State {
@@ -122,7 +126,7 @@ public class SessionRequestManager {
                     transactionState.startReadTransaction(thread);
                     task.run(thread);
                 } catch (Throwable t) {
-                    Logger.defaultLogError(new DatabaseException("Read transaction could not be started", t));
+                    LOGGER.error("Read transaction could not be started", t);
                     if(task.throwable != null)
                         task.throwable.set(t);
                     state = State.ERROR;
@@ -148,7 +152,7 @@ public class SessionRequestManager {
                                try {
                                        transactionState.stopReadTransaction();
                                } catch (DatabaseException e) {
-                                       e.printStackTrace();
+                                       LOGGER.error("Read transaction could not be stopped", e);
                                }
                                
                        }
@@ -157,16 +161,6 @@ public class SessionRequestManager {
                
        }
 
-//     public synchronized void stopRead(int thread) {
-//             
-//             try {
-//                     transactionState.stopReadTransaction();
-//             } catch (DatabaseException e) {
-//                     e.printStackTrace();
-//             }
-//             
-//     }
-
        public synchronized void startWrite(int thread, final SessionTask task) {
                
                session.queryProvider2.scheduleAlways(thread, new SessionTask((WriteTraits)task.object, task.thread) {
@@ -177,8 +171,7 @@ public class SessionRequestManager {
                        try {
                                transactionState.startWriteTransaction(thread);
                        } catch (Throwable t) {
-                           DatabaseException e = new DatabaseException("Write transaction could not be started", t);
-                           Logger.defaultLogError(e);
+                           LOGGER.error("Write transaction could not be started", t);
                            return;
                        }
                                task.run(thread);
@@ -213,6 +206,7 @@ public class SessionRequestManager {
                        } else {
                            throw new UnsupportedOperationException("delayedWriteState may only exist when request fails.");
                        }
+                       Disposable.safeDispose(session.clientChanges);
                        session.clientChanges = new ClientChangesImpl(session);
                                        delayedState.finish();
                                        return;
@@ -225,10 +219,10 @@ public class SessionRequestManager {
                                WriteGraphImpl graph = writeState.getGraph();
 
                                if(writeState.isExcepted()) {
-                                   
+
                                    if(!(writeState.exception instanceof CancelTransactionException))
-                                       writeState.exception.printStackTrace();
-                                   
+                                       LOGGER.error("Write request failed", writeState.exception);
+
                                    transactionState.cancelWriteTransaction(graph);
 
                                } else {
@@ -242,6 +236,7 @@ public class SessionRequestManager {
 
                                }
 
+                               Disposable.safeDispose(session.clientChanges);
                                session.clientChanges = new ClientChangesImpl(session);
 
                                WriteState<?> state = session.writeState;
@@ -254,20 +249,6 @@ public class SessionRequestManager {
 
        }
 
-//     public synchronized void stopWrite(int thread) {
-//             
-//        session.clientChanges = new ClientChangesImpl(session);
-//
-//        WriteState<?> state = session.writeState;
-//
-//        System.err.println("D");
-//        state.finish();
-//        System.err.println("E");
-//        
-//        session.writeState = null;
-//        
-//     }
-
        public synchronized void ceased(int thread) {
 
                if(State.WRITE == state) {
@@ -398,7 +379,7 @@ public class SessionRequestManager {
                        try {
                                value.second.binaryFile.close();
                        } catch (IOException e) {
-                               Logger.defaultLogError("I/O exception while closing random access value file " + value.second.binaryFile.file() + " for resource " + value.first , e);
+                               LOGGER.error("I/O exception while closing random access value file " + value.second.binaryFile.file() + " for resource " + value.first , e);
                        }
                }
        }