]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/scl/GraphModuleSourceRepository.java
Improved exceptions & logging & debugging of GraphModuleSourceRepository
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / scl / GraphModuleSourceRepository.java
index 3d767f520250e4c8d343fb55256183fd52bc4934..f3f5b917067a887a992b948a52760a3813b13f6e 100644 (file)
@@ -51,7 +51,7 @@ public enum GraphModuleSourceRepository implements ModuleSourceRepository {
             else
                 return Simantics.getAvailableRequestProcessor().syncRequest(request);
         } catch (DatabaseException e) {
-            LOGGER.error("Failed to read graph module " + moduleName + ".", e);
+            LOGGER.error("Failed to read graph module {}.",  moduleName, e);
             return null;
         }
     }
@@ -96,10 +96,15 @@ public enum GraphModuleSourceRepository implements ModuleSourceRepository {
         @Override
         public void exception(ReadGraph graph, Throwable t)
                 throws DatabaseException {
-            t.printStackTrace();
+            LOGGER.error("Could not listen {}", this, t);
             if(alreadyExecutedOnce && listener != null)
                 fireUpdate(graph);
         }
+
+        @Override
+        public String toString() {
+            return moduleName + " " + listener + " (" + alreadyExecutedOnce + ") [" + getClass().toString() + "]";
+        }
     };
     
     public static class GraphModuleSource extends StringModuleSource {
@@ -121,7 +126,7 @@ public enum GraphModuleSourceRepository implements ModuleSourceRepository {
             try {
                 Simantics.getSession().syncRequest(new WriteModuleSource(getModuleName(), newSourceText));
             } catch (DatabaseException e) {
-                e.printStackTrace();
+                LOGGER.error("Could not update {} with newSourceText {}", this, newSourceText);
             }
         }
         
@@ -197,8 +202,9 @@ public enum GraphModuleSourceRepository implements ModuleSourceRepository {
     
     @Override
     public void forAllModules(TObjectProcedure<String> procedure) {
+        THashSet<String> moduleURIs = null;
         try {
-            THashSet<String> moduleURIs = Simantics.getAvailableRequestProcessor().syncRequest(new Read<THashSet<String>>() {
+            moduleURIs = Simantics.getAvailableRequestProcessor().syncRequest(new Read<THashSet<String>>() {
                 @Override
                 public THashSet<String> perform(ReadGraph graph)
                         throws DatabaseException {
@@ -207,7 +213,7 @@ public enum GraphModuleSourceRepository implements ModuleSourceRepository {
             });
             moduleURIs.forEach(procedure);
         } catch (DatabaseException e) {
-            e.printStackTrace();
+            LOGGER.error("Could not execute procedure {} for all modules {}", procedure, String.valueOf(moduleURIs), e);
         }
     }