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


Reply via email to