You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2015/11/04 22:10:21 UTC

svn commit: r1712652 - in /sling/trunk/testing/mocks/jcr-mock/src: main/java/org/apache/sling/testing/mock/jcr/MockProperty.java test/java/org/apache/sling/testing/mock/jcr/MockPropertyTest.java

Author: sseifert
Date: Wed Nov  4 21:10:21 2015
New Revision: 1712652

URL: http://svn.apache.org/viewvc?rev=1712652&view=rev
Log:
SLING-5257 MockProperty getType generates java.lang.ArrayIndexOutOfBoundsException when the underlying array value is empty

Modified:
    sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java
    sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockPropertyTest.java

Modified: sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java?rev=1712652&r1=1712651&r2=1712652&view=diff
==============================================================================
--- sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java (original)
+++ sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java Wed Nov  4 21:10:21 2015
@@ -25,6 +25,7 @@ import java.util.Calendar;
 import javax.jcr.Binary;
 import javax.jcr.Node;
 import javax.jcr.Property;
+import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.Value;
@@ -197,7 +198,12 @@ class MockProperty extends AbstractItem
 
     @Override
     public int getType() throws RepositoryException {
-        return this.itemData.getValues()[0].getType();
+        if (this.itemData.getValues().length > 0) {
+            return this.itemData.getValues()[0].getType();
+        }
+        else {
+            return PropertyType.UNDEFINED;
+        }    
     }
 
     @Override

Modified: sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockPropertyTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockPropertyTest.java?rev=1712652&r1=1712651&r2=1712652&view=diff
==============================================================================
--- sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockPropertyTest.java (original)
+++ sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockPropertyTest.java Wed Nov  4 21:10:21 2015
@@ -30,6 +30,7 @@ import java.util.Calendar;
 
 import javax.jcr.Node;
 import javax.jcr.Property;
+import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.Value;
@@ -237,4 +238,12 @@ public class MockPropertyTest {
         assertArrayEquals(new long[] { 2 }, prop1.getLengths());
     }
 
+    @Test
+    public void testEmptyArrayGetType() throws RepositoryException {
+        this.node1.setProperty("prop1", new Value[] {});
+        Property prop1 = this.node1.getProperty("prop1");
+        assertTrue(prop1.isMultiple());
+        assertEquals(PropertyType.UNDEFINED, prop1.getType());
+    }
+    
 }