You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2011/12/01 12:04:09 UTC

svn commit: r1209033 - in /jackrabbit/trunk: jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/GetPropertyTest.java jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java

Author: tripod
Date: Thu Dec  1 11:04:08 2011
New Revision: 1209033

URL: http://svn.apache.org/viewvc?rev=1209033&view=rev
Log:
JCR-3163 NPE in RepositoryServiceImpl.getPropertyInfo()

Modified:
    jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/GetPropertyTest.java
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java

Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/GetPropertyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/GetPropertyTest.java?rev=1209033&r1=1209032&r2=1209033&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/GetPropertyTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/GetPropertyTest.java Thu Dec  1 11:04:08 2011
@@ -271,4 +271,16 @@ public class GetPropertyTest extends Abs
             rw.logout();
         }
     }
+
+    public void testGetDeepEmptyStringProperty() throws RepositoryException, NotExecutableException {
+        Node n = testRootNode.getNode(nodeName1);
+        Node n2 = n.addNode(nodeName2);
+        Node n3 = n2.addNode(nodeName3);
+        Node n4 = n3.addNode(nodeName4);
+        Property emptyProp = n4.setProperty(propertyName1, "");
+        testRootNode.save();
+
+        Property p = readOnly.getProperty(emptyProp.getPath());
+        assertEquals("", p.getString());
+    }
 }

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java?rev=1209033&r1=1209032&r2=1209033&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java Thu Dec  1 11:04:08 2011
@@ -413,9 +413,10 @@ public class RepositoryServiceImpl exten
                     QValue qValue = getQValueFactory(sessionInfo).create(length, uri, QValueFactoryImpl.NO_INDEX) ;
                     return new PropertyInfoImpl(propertyId, p, propertyType, qValue);
                 }
-            } else if (props.contains(JCR_GET_STRING) && props.get(JCR_GET_STRING).getValue() != null) {
+            } else if (props.contains(JCR_GET_STRING)) {
                 // single valued non-binary property
-                String str = props.get(JCR_GET_STRING).getValue().toString();
+                Object v = props.get(JCR_GET_STRING).getValue();
+                String str = (v == null) ? "" : v.toString();
                 QValue qValue = ValueFormat.getQValue(str, propertyType, getNamePathResolver(sessionInfo), getQValueFactory(sessionInfo));
                 return new PropertyInfoImpl(propertyId, p, propertyType, qValue);
             } else {