ServerSocial: Handle corrupted or null member data
authorTJ <hacker@iam.tj>
Mon, 8 Jun 2015 06:21:19 +0000 (07:21 +0100)
committerTJ <hacker@iam.tj>
Mon, 8 Jun 2015 06:21:19 +0000 (07:21 +0100)
src/uk/ac/ntu/n0521366/wsyd/server/ServerSocial.java

index 97af45a..25fc039 100644 (file)
@@ -384,7 +384,9 @@ public final class ServerSocial implements NetworkMessageEventListener, Connecti
                 logp(Level.INFO, "Importing test data from {0}", _testData);
                 importCSV(_testData);
             }
-
+        } catch (java.io.StreamCorruptedException e) {
+            logp(Level.SEVERE, "Error, member database file {0} corrupted: {1}", fileName, e.getMessage());
+            ServerSocial.exitRequested = true;
         } catch (IOException e) {
             logp(Level.SEVERE, "Unable to read database file {0}", fileName);
             e.printStackTrace();
@@ -406,7 +408,7 @@ public final class ServerSocial implements NetworkMessageEventListener, Connecti
     public boolean writeMembers(String fileName) {
         boolean result = false;
 
-        if (!_members.isEmpty()) { // don't write an empty database
+        if (_members != null && !_members.isEmpty()) { // don't write an empty database
             try (
                 FileOutputStream f = new FileOutputStream(fileName);
                 ObjectOutputStream out = new ObjectOutputStream(f);