A couple of bugfixes.
authorFredrik Tolf <fredrik@dolda2000.com>
Fri, 16 Oct 2009 01:04:32 +0000 (03:04 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Fri, 16 Oct 2009 01:04:32 +0000 (03:04 +0200)
src/dolda/jsvc/ThreadContext.java
src/dolda/jsvc/j2ee/Servlet.java
src/dolda/jsvc/store/FileStore.java

index 2d9931e..486bc91 100644 (file)
@@ -86,9 +86,12 @@ public class ThreadContext extends ThreadGroup {
            boot.interrupt();
            Thread.currentThread().interrupt();
        }
-       if(err[0] != null)
+       if(err[0] != null) {
+           destroy();
            throw(new RuntimeException(err[0]));
+       }
        if(res[0] == null) {
+           destroy();
            logger.log(Level.SEVERE, "No responder returned in spite of no error having happened.");
            throw(new NullPointerException("No responder returned in spite of no error having happened."));
        }
index 2b149c9..d726474 100644 (file)
@@ -31,7 +31,13 @@ public class Servlet extends HttpServlet {
        } catch(ClassNotFoundException e) {
            throw(new ServletException("Invalid JSvc bootstrapper specified", e));
        }
-       tg = new ThreadContext(null, "JSvc service", J2eeContext.create(cfg), bc);
+       ServerContext ctx = J2eeContext.create(cfg);
+       String tgn;
+       if(ctx.name() != null)
+           tgn = "JSvc service for " + ctx.name();
+       else
+           tgn = "JSvc service";
+       tg = new ThreadContext(null, tgn, ctx, bc);
     }
     
     public void destroy() {
index 17a8f88..55c15d7 100644 (file)
@@ -38,8 +38,10 @@ class FileStore extends Store {
        this.base = new java.io.File(base, nm.substring(p));
        AccessController.doPrivileged(new PrivilegedAction<Object>() {
                public Object run() {
-                   if(!FileStore.this.base.mkdirs())
-                       throw(new RuntimeException("Could not create store directory (Java won't tell me why)"));
+                   if(!FileStore.this.base.exists()) {
+                       if(!FileStore.this.base.mkdirs())
+                           throw(new RuntimeException("Could not create store directory (Java won't tell me why)"));
+                   }
                    return(null);
                }
            });