Author: boisvert
Date: Wed Feb 18 16:09:57 2009
New Revision: 745554
URL: http://svn.apache.org/viewvc?rev=745554&view=rev
Log:
ODE-521: Properly close file handles on .cbp
Modified:
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java
Modified:
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
URL:
http://svn.apache.org/viewvc/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java?rev=745554&r1=745553&r2=745554&view=diff
==============================================================================
--- ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
(original)
+++ ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
Wed Feb 18 16:09:57 2009
@@ -1238,7 +1238,12 @@
private void doHydrate() {
markused();
try {
- _processModel =
deserializeCompiledProcess(_pconf.getCBPInputStream());
+ InputStream inputStream = _pconf.getCBPInputStream();
+ try {
+ _processModel = deserializeCompiledProcess(inputStream);
+ } finally {
+ inputStream.close();
+ }
} catch (Exception e) {
String errmsg = "Error reloading compiled process " +
_pconf.getProcessId() + "; the file appears to be corrupted.";
__log.error(errmsg);
Modified: ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java
URL:
http://svn.apache.org/viewvc/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java?rev=745554&r1=745553&r2=745554&view=diff
==============================================================================
--- ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java (original)
+++ ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java Wed Feb 18
16:09:57 2009
@@ -18,6 +18,7 @@
*/
package org.apache.ode.jbi;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@@ -178,8 +179,14 @@
OdeService service = new OdeService(this, endpoint);
try {
ProcessConf pc = _store.getProcessConfiguration(pid);
- Serializer ofh = new Serializer(pc.getCBPInputStream());
- ProcessModel compiledProcess = ofh.readPModel();
+ ProcessModel compiledProcess = null;
+ InputStream is = pc.getCBPInputStream();
+ try {
+ Serializer ofh = new Serializer(is);
+ compiledProcess = ofh.readPModel();
+ } finally {
+ is.close();
+ }
QName portType = null;
for (Map.Entry<String, Endpoint> provide :
pc.getProvideEndpoints().entrySet()) {
if (provide.getValue().equals(endpoint)) {