Fix type check in CdmViewerChooser
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / sessions / SessionsViewPart.java
index 406e977de0d172ac4206d9c8f96078cdfb98a7d5..9947664f697bc0e42968293e65e2a22d5690f3d9 100644 (file)
@@ -13,6 +13,7 @@ import java.text.DecimalFormat;
 import java.util.Collection;
 
 import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.statistics.LiveCacheStatistics;
 
 import org.eclipse.jface.action.IMenuManager;
@@ -38,6 +39,7 @@ import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
+import eu.etaxonomy.taxeditor.session.NullSession;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -258,18 +260,11 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
             Collection<ICdmEntitySession> sessions = cdmEntitySessionManager.getSessions();
             txtNoOfSessions.setText(String.valueOf(sessions.size()));
             for(ICdmEntitySession session : sessions) {
-                if(session.getOwner() != null) {
-                    TableItem item = new TableItem(tableSessions, SWT.NULL);
-                    item.setText(session.getOwner().toString());
-                    String activePrefix = "";
-                    if(session.isActive()) {
-                        activePrefix = "*";
-                    }
-                    item.setText(0, activePrefix + session.getOwner().toString());
-                    LiveCacheStatistics cacheStatistics = session.getCacheStatistics();
-                    item.setText(1, getInMemoryStats(cacheStatistics));
-                    item.setText(2, getOnDiskStats(cacheStatistics));
-                }
+                addSession(session);
+            }
+            ICdmEntitySession nullSession = cdmEntitySessionManager.getNullSession();
+            if(nullSession != null) {
+                addSession(nullSession);
             }
             for (int i=0; i<titles.length; i++) {
                 tableSessions.getColumn (i).pack ();
@@ -277,10 +272,10 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
         }
 
         CdmRemoteCacheManager instance = CdmRemoteCacheManager.getInstance();
-        int cdmEnityCacheSize = instance.getDefaultCacheManager().getCacheNames().length;
+        int cdmEnityCacheSize = CacheManager.create().getCacheNames().length;
         txtNoOfCaches.setText(String.valueOf(cdmEnityCacheSize));
 
-        Cache defaultCache = instance.getDefaultCacheManager().getCache(CdmCacher.DEFAULT_CACHE_NAME);
+        Cache defaultCache = CacheManager.create().getCache(CdmCacher.DEFAULT_CACHE_NAME);
         txtDefaultInMemory.setText("");
         txtDefaultOnDisk.setText("");
         if(defaultCache != null) {
@@ -300,22 +295,50 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
 
     }
 
+    private void addSession(ICdmEntitySession session) {
+
+        TableItem item = new TableItem(tableSessions, SWT.NULL);
+
+        String activePrefix = "";
+        if(session.isActive()) {
+            activePrefix = "*";
+        }
+        String sessionOwnerString = "";
+        if(session instanceof NullSession) {
+            sessionOwnerString = "Null Session";
+        } else {
+            if(session.getOwner() != null) {
+                sessionOwnerString = session.getOwner().toString();
+            }
+        }
+        item.setText(0, activePrefix + sessionOwnerString);
+        LiveCacheStatistics cacheStatistics = session.getCacheStatistics();
+        item.setText(1, getInMemoryStats(cacheStatistics));
+        item.setText(2, getOnDiskStats(cacheStatistics));
+    }
+
     private String getInMemoryStats(LiveCacheStatistics statistics) {
-        long localHeapSize = statistics.getLocalHeapSize();
+        if(statistics != null) {
+            long localHeapSize = statistics.getLocalHeapSize();
 
-        long localHeapSizeInBytes = statistics.getLocalHeapSizeInBytes();
-        String localHeapSizeInBytesStr =
-                (new DecimalFormat("#.##")).format(localHeapSizeInBytes/1048576.0);
-        return String.valueOf(localHeapSize) + " objects / " + localHeapSizeInBytesStr + " Mb";
+            long localHeapSizeInBytes = statistics.getLocalHeapSizeInBytes();
+            String localHeapSizeInBytesStr =
+                    (new DecimalFormat("#.##")).format(localHeapSizeInBytes/1048576.0);
+            return String.valueOf(localHeapSize) + " objects / " + localHeapSizeInBytesStr + " Mb";
+        }
+        return "";
     }
 
     private String getOnDiskStats(LiveCacheStatistics statistics) {
-        long localDiskSize = statistics.getLocalDiskSize();
+        if(statistics != null) {
+            long localDiskSize = statistics.getLocalDiskSize();
 
-        long localDiskSizeInBytes = statistics.getLocalDiskSizeInBytes();
-        String localDiskSizeInBytesStr =
-                (new DecimalFormat("#.##")).format(localDiskSizeInBytes/1048576.0);
-        return String.valueOf(localDiskSize) + " objects / " + localDiskSizeInBytesStr + " Mb";
+            long localDiskSizeInBytes = statistics.getLocalDiskSizeInBytes();
+            String localDiskSizeInBytesStr =
+                    (new DecimalFormat("#.##")).format(localDiskSizeInBytes/1048576.0);
+            return String.valueOf(localDiskSize) + " objects / " + localDiskSizeInBytesStr + " Mb";
+        }
+        return "";
     }
 
     /**