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