Author: reschke Date: Thu May 10 14:01:12 2012 New Revision: 1336700 URL: http://svn.apache.org/viewvc?rev=1336700&view=rev Log: OAK-16: make Value.getStream() return the same stream instance
Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1336700&r1=1336699&r2=1336700&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original) +++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Thu May 10 14:01:12 2012 @@ -46,7 +46,6 @@ <value> org.apache.jackrabbit.test.api.NodeReadMethodsTest#testGetPrimaryItem org.apache.jackrabbit.test.api.NodeReadMethodsTest#testGetUUID -org.apache.jackrabbit.test.api.BinaryPropertyTest#testSameStream org.apache.jackrabbit.test.api.BinaryPropertyTest#testRandomAccess org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUIDFailure org.apache.jackrabbit.test.api.SessionReadMethodsTest#testGetNodeByUUID Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java?rev=1336700&r1=1336699&r2=1336700&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java (original) +++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java Thu May 10 14:01:12 2012 @@ -48,6 +48,8 @@ class ValueImpl implements Value { private final CoreValue value; private final NamePathMapper namePathMapper; + + private InputStream stream = null; /** * Constructs a {@code ValueImpl} object based on a {@code CoreValue} @@ -191,19 +193,21 @@ class ValueImpl implements Value { */ @Override public InputStream getStream() throws IllegalStateException, RepositoryException { - InputStream stream; - switch (getType()) { - case PropertyType.NAME: - case PropertyType.PATH: - try { - stream = new ByteArrayInputStream(getString().getBytes("UTF-8")); - } catch (UnsupportedEncodingException ex) { - throw new RepositoryException("UTF-8 is not supported", ex); - } - break; - default: - stream = value.getNewStream(); + if (stream == null) { + switch (getType()) { + case PropertyType.NAME: + case PropertyType.PATH: + try { + stream = new ByteArrayInputStream(getString().getBytes("UTF-8")); + } catch (UnsupportedEncodingException ex) { + throw new RepositoryException("UTF-8 is not supported", ex); + } + break; + default: + stream = value.getNewStream(); + } } + return stream; }