Fix type check in CdmViewerChooser
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / sessions / SessionsViewPart.java
index 3db7c9ce8a29fb00884047a9bbec0d4287b35401..9947664f697bc0e42968293e65e2a22d5690f3d9 100644 (file)
@@ -39,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;
 
 /**
@@ -259,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 ();
@@ -301,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 "";
     }
 
     /**