[jbpm-commits] JBoss JBPM SVN: r6333 - in jbpm4/trunk/modules: pvm/src/main/java/org/jbpm/pvm/internal/cmd and 5 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed May 12 07:21:11 EDT 2010


Author: alex.guizar at jboss.com
Date: 2010-05-12 07:21:09 -0400 (Wed, 12 May 2010)
New Revision: 6333

Modified:
   jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
Log:
JBPM-2703: close input streams

Modified: jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java
===================================================================
--- jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -75,6 +75,9 @@
     catch (IOException e) {
       throw new JbpmException("could not read resource: " + resource, e);
     }
+    finally {
+      IoUtil.close(stream);
+    }
   }
 
   public static List<String> extractCommands(String fileContents) {

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -51,6 +51,9 @@
     catch (IOException e) {
       throw new JbpmException("could not read resource: " + resourceName, e);
     }
+    finally {
+      IoUtil.close(inputStream);
+    }
   }
 
   public Void execute(Environment environment) throws Exception {

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -115,6 +115,9 @@
     catch (IOException e) {
       throw new JbpmException("couldn't read zip archive", e);
     }
+    finally {
+      IoUtil.close(zipInputStream);
+    }
     return this;
   }
 
@@ -137,21 +140,22 @@
     if (resources == null) {
       resources = new HashMap<String, Lob>();
     }
-    byte[] bytes = null;
+    InputStream inputStream = streamInput.openStream();
     try {
-      InputStream inputStream = streamInput.openStream();
-      bytes = IoUtil.readBytes(inputStream);
-      inputStream.close();
+      byte[] bytes = IoUtil.readBytes(inputStream);
+
+      // Since this method is probably called outside an environment block, we
+      // need to generate the dbid of the Lob later (during the actual deployment).
+      Lob lob = new Lob(bytes, false);
+      resources.put(name, lob);
     }
     catch (IOException e) {
       throw new JbpmException("couldn't read from " + name, e);
     }
+    finally {
+      IoUtil.close(inputStream);
+    }
 
-    // Since this method is probably called outside an environment block, we
-    // need to generate the dbid of the Lob later (during the actual deployment).
-    Lob lob = new Lob(bytes, false);
-    resources.put(name, lob);
-
     return this;
   }
 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -22,27 +22,37 @@
 package org.jbpm.pvm.internal.util;
 
 import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.jbpm.internal.log.Log;
+
 public class IoUtil {
 
   public static final int BUFFERSIZE = 4096;
+  private static final Log log = Log.getLog(IoUtil.class.getName());
 
   private IoUtil() {
     // prevent instantiation
   }
 
-  public static byte[] readBytes(InputStream inputStream) throws IOException {
-    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-    try {
-      transfer(inputStream, outputStream);
+  public static byte[] readBytes(InputStream in) throws IOException {
+    ByteArrayOutputStream out = new ByteArrayOutputStream();
+    transfer(in, out);
+    return out.toByteArray();
+  }
+
+  public static void close(Closeable closeable) {
+    if (closeable != null) {
+      try {
+        closeable.close();
+      }
+      catch (IOException e) {
+        if (log.isDebugEnabled()) log.debug("failed to close stream", e);
+      }
     }
-    finally {
-      inputStream.close();
-    }
-    return outputStream.toByteArray();
   }
 
   public static long transfer(InputStream in, OutputStream out) throws IOException {

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -77,14 +77,21 @@
       + "  <end name='end'/>"
       + "</process>");
 
-    byte[] strip = IoUtil.readBytes(getClass().getResourceAsStream("strip.gif"));
+    InputStream resourceStream = getClass().getResourceAsStream("strip.gif");
+    try {
+      byte[] strip = IoUtil.readBytes(resourceStream);
 
-    // start process instance
-    ProcessInstance processInstance = executionService.startProcessInstanceByKey("varattachment", Collections.singletonMap("strip", strip));
-    assertProcessInstanceEnded(processInstance);
+      // start process instance
+      ProcessInstance processInstance = executionService
+        .startProcessInstanceByKey("varattachment", Collections.singletonMap("strip", strip));
+      assertProcessInstanceEnded(processInstance);
 
-    // examine produced messages
-    examineMessages(wiser.getMessages());
+      // examine produced messages
+      examineMessages(wiser.getMessages());
+    }
+    finally {
+      IoUtil.close(resourceStream);
+    }
   }
 
   public void testFileAttachment() throws MessagingException, IOException, URISyntaxException {
@@ -110,7 +117,8 @@
       + "</process>");
 
     // start process instance
-    ProcessInstance processInstance = executionService.startProcessInstanceByKey("fileattachment");
+    ProcessInstance processInstance = executionService
+      .startProcessInstanceByKey("fileattachment");
     assertProcessInstanceEnded(processInstance);
 
     // examine produced messages
@@ -140,7 +148,8 @@
       + "</process>");
 
     // start process instance
-    ProcessInstance processInstance = executionService.startProcessInstanceByKey("urlattachment");
+    ProcessInstance processInstance = executionService
+      .startProcessInstanceByKey("urlattachment");
     assertProcessInstanceEnded(processInstance);
 
     // examine produced messages
@@ -166,7 +175,8 @@
       + "</process>");
 
     // start process instance
-    ProcessInstance processInstance = executionService.startProcessInstanceByKey("resattachment");
+    ProcessInstance processInstance = executionService
+      .startProcessInstanceByKey("resattachment");
     assertProcessInstanceEnded(processInstance);
 
     // examine produced messages

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -24,7 +24,6 @@
  */
 package org.jbpm.test.deploy;
 
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.zip.ZipInputStream;
@@ -33,43 +32,32 @@
 import org.jbpm.api.ProcessDefinition;
 import org.jbpm.test.JbpmTestCase;
 
-
 /**
- * Test case for the various ways of setting a process, image, etc as input
- * of a deployment.
+ * Test case for the various ways of setting a process, image, etc as input of a deployment.
  * 
  * @author Joram Barrez
  */
 public class DeploymentResourceTest extends JbpmTestCase {
 
-  
-  public void testZippedResourceDeployment() {
-    InputStream inputStream = null;
+  public void testZippedResourceDeployment() throws IOException {
+    InputStream inputStream = getClass().getResourceAsStream("process.zip");
+    ZipInputStream zipInputStream = new ZipInputStream(inputStream);
     try {
-      inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("org/jbpm/test/deploy/process.zip");
-      ZipInputStream zipInputStream = new ZipInputStream(inputStream);
-      
       NewDeployment newDeployment = repositoryService.createDeployment();
       newDeployment.addResourcesFromZipInputStream(zipInputStream);
       String deployId = newDeployment.deploy();
-      
-      ProcessDefinition procDef = repositoryService.createProcessDefinitionQuery()
-                                                   .deploymentId(deployId)
-                                                   .uniqueResult();
+
+      ProcessDefinition procDef = repositoryService
+        .createProcessDefinitionQuery()
+        .deploymentId(deployId)
+        .uniqueResult();
       assertNotNull(procDef);
       assertEquals("ImageTest", procDef.getName());
       repositoryService.deleteDeploymentCascade(deployId);
-      
-    } finally {
-      if (inputStream != null) {
-        try {
-          inputStream.close();
-        } catch (IOException e) {
-          fail(e.getMessage());
-        }
-      }
     }
-    
+    finally {
+      zipInputStream.close();
+    }
   }
-  
+
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -49,16 +49,26 @@
     String imageResourceName = processDefinition.getImageResourceName();
     assertEquals("org/jbpm/test/deploy/ImageTest.png", imageResourceName);
 
-    InputStream inputStream = repositoryService.getResourceAsStream(processDefinition
-      .getDeploymentId(), imageResourceName);
-    byte[] imageBytes = IoUtil.readBytes(inputStream);
+    InputStream imageStream = repositoryService
+      .getResourceAsStream(deploymentId, imageResourceName);
+    try {
+      byte[] imageBytes = IoUtil.readBytes(imageStream);
 
-    inputStream = Thread
-      .currentThread()
-      .getContextClassLoader()
-      .getResourceAsStream("org/jbpm/test/deploy/ImageTest.png");
-    byte[] expectedImageBytes = IoUtil.readBytes(inputStream);
-    assertTrue(Arrays.equals(expectedImageBytes, imageBytes));
+      InputStream expectedImageStream = Thread
+        .currentThread()
+        .getContextClassLoader()
+        .getResourceAsStream("org/jbpm/test/deploy/ImageTest.png");
+      try {
+        byte[] expectedImageBytes = IoUtil.readBytes(expectedImageStream);
+        assertTrue(Arrays.equals(expectedImageBytes, imageBytes));
+      }
+      finally {
+        IoUtil.close(expectedImageStream);
+      }
+    }
+    finally {
+      IoUtil.close(imageStream);
+    }
 
     repositoryService.deleteDeploymentCascade(deploymentId);
   }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java	2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java	2010-05-12 11:21:09 UTC (rev 6333)
@@ -61,9 +61,14 @@
       .getStartFormResourceName(processDefinitionId, null);
     assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
 
-    InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition
+    InputStream formStream = repositoryService.getResourceAsStream(processDefinition
       .getDeploymentId(), startFormResourceName);
-    assertEquals("start task form", new String(IoUtil.readBytes(formInputStream)));
+    try {
+      assertEquals("start task form", new String(IoUtil.readBytes(formStream)));
+    }
+    finally {
+      IoUtil.close(formStream);
+    }
   }
 
   public void testFormInNamedStartActivity() throws IOException {
@@ -92,9 +97,13 @@
       .getStartFormResourceName(processDefinitionId, "start");
     assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
 
-    InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition
+    InputStream formStream = repositoryService.getResourceAsStream(processDefinition
       .getDeploymentId(), startFormResourceName);
-    String formContents = new String(IoUtil.readBytes(formInputStream));
-    assertEquals("start task form", formContents);
+    try {
+      assertEquals("start task form", new String(IoUtil.readBytes(formStream)));
+    }
+    finally {
+      IoUtil.close(formStream);
+    }
   }
 }



More information about the jbpm-commits mailing list