You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2012/05/10 16:01:12 UTC

svn commit: r1336700 - in /jackrabbit/oak/trunk: oak-it/jcr/pom.xml oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/value/ValueImpl.java

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;
     }