Index: src/test/java/org/apache/jackrabbit/core/value/BinaryValueTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/core/value/BinaryValueTest.java (revision 0) +++ src/test/java/org/apache/jackrabbit/core/value/BinaryValueTest.java (revision 0) @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.jackrabbit.core.value; + +import java.io.ByteArrayInputStream; +import java.util.Random; + +import javax.jcr.RepositoryException; +import javax.jcr.Property; +import javax.jcr.Binary; +import javax.jcr.Node; + +import org.apache.jackrabbit.test.AbstractJCRTest; + +/** + * BinaryValueTest... + */ +public class BinaryValueTest extends AbstractJCRTest { + + public void testDispose10() throws Exception { + checkDispose(10, false); + } + + public void testDispose10k() throws Exception { + checkDispose(10 * 1024, false); + } + + public void testDispose10Save() throws Exception { + checkDispose(10, true); + } + + public void testDispose10kSave() throws Exception { + checkDispose(10 * 1024, true); + } + + protected void checkDispose(int length, boolean save) throws Exception { + Property prop = setProperty(testRootNode.addNode(nodeName1), length); + if (save) { + superuser.save(); + } + checkProperty(prop); + } + + protected Property setProperty(Node node, int length) throws RepositoryException { + Random rand = new Random(); + byte[] data = new byte[length]; + rand.nextBytes(data); + + Binary b = vf.createBinary(new ByteArrayInputStream(data)); + System.out.println(b.getClass() + ": " + System.identityHashCode(b)); + try { + return node.setProperty(propertyName1, b); + } finally { + b.dispose(); + } + } + + protected void checkProperty(Property prop) throws Exception { + for (int i = 0; i < 3; i++) { + Binary b = prop.getBinary(); + try { + System.out.println(b.getClass() + ": " + System.identityHashCode(b)); + b.read(new byte[1], 0); + } finally { + b.dispose(); + } + } + } +} Property changes on: src\test\java\org\apache\jackrabbit\core\value\BinaryValueTest.java ___________________________________________________________________ Added: svn:eol-style + native