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));


Reply via email to