You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2006/02/01 09:59:01 UTC
svn commit: r374024 -
/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/
Author: stefan
Date: Wed Feb 1 00:58:52 2006
New Revision: 374024
URL: http://svn.apache.org/viewcvs?rev=374024&view=rev
Log:
proper stream handling in junit test cases: make sure streams returned by Value.getStream() and Property.getStream() are closed
Modified:
incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/BinaryPropertyTest.java
incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/ExportDocViewTest.java
incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/PropertyUtil.java
incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java
incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyInputStreamTest.java
incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueBinaryTest.java
incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java
Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/BinaryPropertyTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/BinaryPropertyTest.java?rev=374024&r1=374023&r2=374024&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/BinaryPropertyTest.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/BinaryPropertyTest.java Wed Feb 1 00:58:52 2006
@@ -57,10 +57,27 @@
InputStream in2 = val.getStream();
Value otherVal = PropertyUtil.getValue(prop);
InputStream in3 = otherVal.getStream();
- assertSame("Same InputStream object expected when " +
- "Value.getStream is called twice.", in, in2);
- assertNotSame("Value.getStream() called on a new value " +
- "object should return a different Stream object.", in, in3);
+ try {
+ assertSame("Same InputStream object expected when " +
+ "Value.getStream is called twice.", in, in2);
+ assertNotSame("Value.getStream() called on a new value " +
+ "object should return a different Stream object.", in, in3);
+ } finally {
+ // cleaning up
+ try {
+ in.close();
+ } catch (IOException ignore) {}
+ if (in2 != in) {
+ try {
+ in2.close();
+ } catch (IOException ignore) {}
+ }
+ if (in3 != in) {
+ try {
+ in3.close();
+ } catch (IOException ignore) {}
+ }
+ }
}
/**
@@ -99,15 +116,24 @@
} else {
in2 = prop.getStream();
}
- int b = in.read();
- while (b != -1) {
- int b2 = in2.read();
+ try {
+ int b = in.read();
+ while (b != -1) {
+ int b2 = in2.read();
+ assertEquals("Value.getStream() and Property.getStream() " +
+ "return different values.", b, b2);
+ b = in.read();
+ }
assertEquals("Value.getStream() and Property.getStream() " +
- "return different values.", b, b2);
- b = in.read();
+ "return different values.", -1, in2.read());
+ } finally {
+ try {
+ in.close();
+ } catch (IOException ignore) {}
+ try {
+ in2.close();
+ } catch (IOException ignore) {}
}
- assertEquals("Value.getStream() and Property.getStream() " +
- "return different values.", -1, in2.read());
}
/**
Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/ExportDocViewTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/ExportDocViewTest.java?rev=374024&r1=374023&r2=374024&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/ExportDocViewTest.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/ExportDocViewTest.java Wed Feb 1 00:58:52 2006
@@ -963,7 +963,12 @@
if (isBinary) {
for (int i = 0; i < vals.length; i++) {
- exportedVal += encodeBase64(vals[i].getStream());
+ InputStream in = vals[i].getStream();
+ try {
+ exportedVal += encodeBase64(in);
+ } finally {
+ in.close();
+ }
exportedVal += " ";
}
} else {
Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/PropertyUtil.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/PropertyUtil.java?rev=374024&r1=374023&r2=374024&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/PropertyUtil.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/PropertyUtil.java Wed Feb 1 00:58:52 2006
@@ -30,6 +30,8 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.BufferedInputStream;
+import java.io.InputStream;
+import java.io.IOException;
/**
* This class provides various utility methods that are used by the property
@@ -281,14 +283,22 @@
*/
public static long countBytes(Value val) {
int length = 0;
+ InputStream in = null;
try {
- BufferedInputStream bin = new BufferedInputStream(val.getStream());
+ in = val.getStream();
+ BufferedInputStream bin = new BufferedInputStream(in);
while (bin.read() != -1) {
length++;
}
bin.close();
} catch (Exception e) {
length = -1;
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException ignore) {}
+ }
}
return length;
}
Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java?rev=374024&r1=374023&r2=374024&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyConstraintViolationExceptionTest.java Wed Feb 1 00:58:52 2006
@@ -29,6 +29,8 @@
import javax.jcr.nodetype.NodeTypeManager;
import javax.jcr.nodetype.NodeTypeIterator;
import javax.jcr.nodetype.NodeType;
+import java.io.InputStream;
+import java.io.IOException;
/**
* <code>SetPropertyConstraintViolationExceptionTest</code> tests if
@@ -257,14 +259,19 @@
}
// test of signature setProperty(String name, InputStream value)
+ InputStream in = valueNotSatisfied1.getStream();
try {
- node.setProperty(propDef.getName(), valueNotSatisfied1.getStream());
+ node.setProperty(propDef.getName(), in);
node.save();
fail("setProperty(String name, InputStream value) must throw a " +
"ConstraintViolationException if the change would violate a " +
"node type constraint either immediately or on save");
} catch (ConstraintViolationException e) {
// success
+ } finally {
+ try {
+ in.close();
+ } catch (IOException ignore) {}
}
// test of signature setProperty(String name, Value value)
Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyInputStreamTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyInputStreamTest.java?rev=374024&r1=374023&r2=374024&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyInputStreamTest.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetPropertyInputStreamTest.java Wed Feb 1 00:58:52 2006
@@ -54,8 +54,13 @@
testNode.setProperty(propertyName1, is1);
superuser.save();
is1 = new ByteArrayInputStream(bytes1);
- assertTrue("Setting property with Node.setProperty(String, InputStream) and Session.save() not working",
- compareInputStreams(is1, testNode.getProperty(propertyName1).getStream()));
+ InputStream in = testNode.getProperty(propertyName1).getStream();
+ try {
+ assertTrue("Setting property with Node.setProperty(String, InputStream) and Session.save() not working",
+ compareInputStreams(is1, in));
+ } finally {
+ in.close();
+ }
}
/**
@@ -68,8 +73,13 @@
testNode.setProperty(propertyName1, is2);
superuser.save();
is2 = new ByteArrayInputStream(bytes2);
- assertTrue("Modifying property with Node.setProperty(String, InputStream) and Session.save() not working",
- compareInputStreams(is2, testNode.getProperty(propertyName1).getStream()));
+ InputStream in = testNode.getProperty(propertyName1).getStream();
+ try {
+ assertTrue("Modifying property with Node.setProperty(String, InputStream) and Session.save() not working",
+ compareInputStreams(is2, in));
+ } finally {
+ in.close();
+ }
}
/**
@@ -80,8 +90,13 @@
testNode.setProperty(propertyName1, is1);
testRootNode.save();
is1 = new ByteArrayInputStream(bytes1);
- assertTrue("Setting property with Node.setProperty(String, InputStream) and parentNode.save() not working",
- compareInputStreams(is1, testNode.getProperty(propertyName1).getStream()));
+ InputStream in = testNode.getProperty(propertyName1).getStream();
+ try {
+ assertTrue("Setting property with Node.setProperty(String, InputStream) and parentNode.save() not working",
+ compareInputStreams(is1, in));
+ } finally {
+ in.close();
+ }
}
/**
@@ -94,8 +109,13 @@
testNode.setProperty(propertyName1, is2);
testRootNode.save();
is2 = new ByteArrayInputStream(bytes2);
- assertTrue("Modifying property with Node.setProperty(String, InputStream) and parentNode.save() not working",
- compareInputStreams(is2, testNode.getProperty(propertyName1).getStream()));
+ InputStream in = testNode.getProperty(propertyName1).getStream();
+ try {
+ assertTrue("Modifying property with Node.setProperty(String, InputStream) and parentNode.save() not working",
+ compareInputStreams(is2, in));
+ } finally {
+ in.close();
+ }
}
/**
Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueBinaryTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueBinaryTest.java?rev=374024&r1=374023&r2=374024&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueBinaryTest.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueBinaryTest.java Wed Feb 1 00:58:52 2006
@@ -83,7 +83,12 @@
public void testBinarySession() throws RepositoryException, IOException {
property1.setValue(value);
superuser.save();
- compareStream(data, property1.getValue().getStream());
+ InputStream in = property1.getValue().getStream();
+ try {
+ compareStream(data, in);
+ } finally {
+ in.close();
+ }
}
/**
@@ -91,9 +96,19 @@
* parameter and saved from the parent Node
*/
public void testBooleanParent() throws RepositoryException, IOException {
- property1.setValue(value.getStream());
- node.save();
- compareStream(data, property1.getValue().getStream());
+ InputStream in = value.getStream();
+ try {
+ property1.setValue(in);
+ node.save();
+ } finally {
+ in.close();
+ }
+ in = property1.getValue().getStream();
+ try {
+ compareStream(data, in);
+ } finally {
+ in.close();
+ }
}
/**
Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java?rev=374024&r1=374023&r2=374024&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SetValueConstraintViolationExceptionTest.java Wed Feb 1 00:58:52 2006
@@ -30,6 +30,8 @@
import javax.jcr.nodetype.NodeTypeManager;
import javax.jcr.nodetype.NodeTypeIterator;
import javax.jcr.nodetype.NodeType;
+import java.io.InputStream;
+import java.io.IOException;
/**
* <code>SetValueConstraintViolationExceptionTest</code> tests if setValue()
@@ -89,14 +91,19 @@
}
// test of signature setValue(InputStream value)
+ InputStream in = valueNotSatisfied1.getStream();
try {
- prop.setValue(valueNotSatisfied1.getStream());
+ prop.setValue(in);
node.save();
fail("setValue(InputStream value) must throw a ConstraintViolationException " +
"if the change would violate a node type constraint " +
"either immediately or on save");
} catch (ConstraintViolationException e) {
// success
+ } finally {
+ try {
+ in.close();
+ } catch (IOException ignore) {}
}
// test of signature setValue(Value value)