VamsasSession Fix session constructor/initialisation if the session directory already...
[vamsas.git] / src / uk / ac / vamsas / client / simpleclient / VamsasSession.java
index a70fe54..e2e170c 100644 (file)
@@ -117,7 +117,20 @@ public class VamsasSession {
   private void initLog() throws IOException {
     // LATER: make dedicated appender format for session log.
     Appender app = slog.getAppender("SESSION_LOG");
-    slog.addAppender(new FileAppender(app.getLayout(), new File(sessionDir, SESSION_LOG).getAbsolutePath()));
+   // slog.addAppender(new FileAppender(app.getLayout(), new File(sessionDir, SESSION_LOG).getAbsolutePath()));
+    
+    //Appender app = slog.getAppender("SESSION_LOG");
+    if (app == null) log.info("No appender for SESSION_LOG");
+  
+    if (slog!= null && app != null)
+      {
+        if (app instanceof FileAppender)
+          {
+            File sessionLogFile =  new File(this.sessionDir, ((FileAppender)app).getFile());
+            slog.addAppender(new FileAppender(app.getLayout(), sessionLogFile.getAbsolutePath()));
+          }
+        // slog.removeAppender("SESSION_LOG");
+      }
   }
   
   /**
@@ -137,30 +150,32 @@ public class VamsasSession {
   
   /**
    * sets up the vamsas session files and watchers in sessionDir
-   * @param sessionDir
+   * @param sessionDir1
    */
-  protected VamsasSession(File sessionDir) throws IOException {
-    if (sessionDir==null)
+  protected VamsasSession(File sessionDir1) throws IOException {
+    if (sessionDir1==null)
       throw new Error("Null directory for VamsasSession.");
-    if (sessionDir.exists()) {
-      if (!sessionDir.isDirectory() || !sessionDir.canWrite() || !sessionDir.canRead())
-        throw new IOException("Cannot access '"+sessionDir+"' as a read/writable Directory.");
-      if (checkSessionFiles(sessionDir)) {
+    if (sessionDir1.exists()) {
+      if (!sessionDir1.isDirectory() || !sessionDir1.canWrite() || !sessionDir1.canRead())
+        throw new IOException("Cannot access '"+sessionDir1+"' as a read/writable Directory.");
+      if (checkSessionFiles(sessionDir1)) {
+        createSessionFiles();
+      }
         // session files exist in the directory
-        this.sessionDir = sessionDir;
+        this.sessionDir = sessionDir1;
         initSessionObjects();
         slog.debug("Initialising additional VamsasSession instance");
-        log.debug("Attached to VamsasSession in "+sessionDir);
-      } 
+        log.debug("Attached to VamsasSession in "+sessionDir1);
+      //} 
     } else {
       // start from scratch
-      if (!sessionDir.mkdir())
-        throw new IOException("Failed to make VamsasSession directory in "+sessionDir);
-      this.sessionDir = sessionDir; 
+      if (!sessionDir1.mkdir())
+        throw new IOException("Failed to make VamsasSession directory in "+sessionDir1);
+      this.sessionDir = sessionDir1; 
       createSessionFiles();
       initSessionObjects();
       slog.debug("Session directory created.");
-      log.debug("Initialised VamsasSession in "+sessionDir);
+      log.debug("Initialised VamsasSession in "+sessionDir1);
     }
   }
   /**