You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2012/12/24 12:55:59 UTC

svn commit: r1425637 - /openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java

Author: andygumbrecht
Date: Mon Dec 24 11:55:59 2012
New Revision: 1425637

URL: http://svn.apache.org/viewvc?rev=1425637&view=rev
Log:
Fix potential null pointer and fallback to local temp dir.

Modified:
    openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java

Modified: openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java?rev=1425637&r1=1425636&r2=1425637&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java (original)
+++ openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java Mon Dec 24 11:55:59 2012
@@ -223,10 +223,28 @@ public class Container {
 
     private String getBaseDir() {
         try {
+
             final String dir = configuration.getDir();
-            if (dir != null) return dir;
-            final File file = File.createTempFile("apache-tomee", "-home");
+            if (dir != null) {
+                return dir;
+            }
+
+            File file;
+
+            try {
+                file = File.createTempFile("apache-tomee", "-home");
+            } catch (Throwable e) {
+
+                final File tmp = new File("tmp");
+                if (!tmp.exists() && !tmp.mkdirs()) {
+                    throw new IOException("Failed to create local tmp directory: " + tmp.getAbsolutePath());
+                }
+
+                file = File.createTempFile("apache-tomee", "-home", tmp);
+            }
+
             return file.getAbsolutePath();
+
         } catch (IOException e) {
             throw new TomEERuntimeException(e);
         }
@@ -239,6 +257,7 @@ public class Container {
         OpenEJB.destroy();
     }
 
+    @SuppressWarnings("UnusedDeclaration")
     public AppContext deploy(final String name, final File file) throws OpenEJBException, IOException, NamingException {
         return deploy(name, file, false);
     }
@@ -287,7 +306,7 @@ public class Container {
             context = assembler.createApplication(appInfo);
         }
 
-        moduleIds.put(name, appInfo.path);
+        moduleIds.put(name, null != appInfo ? appInfo.path : null);
         infos.put(name, appInfo);
         appContexts.put(name, context);
 
@@ -313,6 +332,7 @@ public class Container {
         return defaultValue;
     }
 
+    @SuppressWarnings("UnusedDeclaration")
     public AppInfo getInfo(final String name) {
         return infos.get(name);
     }