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/18 10:56:15 UTC

svn commit: r1423383 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java

Author: andygumbrecht
Date: Tue Dec 18 09:56:14 2012
New Revision: 1423383

URL: http://svn.apache.org/viewvc?rev=1423383&view=rev
Log:
Ensure passivation directory and file exist.

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java?rev=1423383&r1=1423382&r2=1423383&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java Tue Dec 18 09:56:14 2012
@@ -48,10 +48,16 @@ public class SimplePassivater implements
 
         try {
             if (dir != null) {
-                sessionDirectory = SystemInstance.get().getBase().getDirectory(dir);
+                sessionDirectory = SystemInstance.get().getBase().getDirectory(dir).getAbsoluteFile();
             } else {
-                sessionDirectory = new File(System.getProperty("java.io.tmpdir", File.separator + "tmp"));
+                sessionDirectory = new File(System.getProperty("java.io.tmpdir", File.separator + "tmp")).getAbsoluteFile();
             }
+
+            if (!sessionDirectory.exists() && !sessionDirectory.mkdirs()) {
+                throw new java.io.IOException("Failed to create directory: " + sessionDirectory.getAbsolutePath());
+
+            }
+
             logger.info("Using directory " + sessionDirectory + " for stateful session passivation");
         } catch (java.io.IOException e) {
             throw new SystemException(getClass().getName() + ".init(): can't use directory prefix " + dir + ":" + e, e);
@@ -63,6 +69,9 @@ public class SimplePassivater implements
             final String filename = primaryKey.toString().replace(':', '=');
 
             final File sessionFile = new File(sessionDirectory, filename);
+            if (!sessionFile.exists() && !sessionFile.createNewFile()) {
+                throw new Exception("Failed to create passivation file: " + sessionFile.getAbsolutePath());
+            }
 
             logger.info("Passivating to file " + sessionFile);
             final ObjectOutputStream oos = new ObjectOutputStream(IO.write(sessionFile));