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 mr...@apache.org on 2013/04/04 16:50:54 UTC

svn commit: r1464579 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/api/ oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ oak-core/src/main/java/org/...

Author: mreutegg
Date: Thu Apr  4 14:50:53 2013
New Revision: 1464579

URL: http://svn.apache.org/r1464579
Log:
OAK-749: Date PropertyState may cause ClassCastException

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Type.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilder.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStatesTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PropertyDelegate.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Type.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Type.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Type.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Type.java Thu Apr  4 14:50:53 2013
@@ -47,8 +47,8 @@ public final class Type<T> implements Co
     /** Map {@code Double} to {@link PropertyType#DOUBLE} */
     public static final Type<Double> DOUBLE = create(PropertyType.DOUBLE, false);
 
-    /** Map {@code String} to {@link PropertyType#DATE} */
-    public static final Type<String> DATE = create(PropertyType.DATE, false);
+    /** Map {@code Long} to {@link PropertyType#DATE} */
+    public static final Type<Long> DATE = create(PropertyType.DATE, false);
 
     /** Map {@code Boolean} to {@link PropertyType#BOOLEAN} */
     public static final Type<Boolean> BOOLEAN = create(PropertyType.BOOLEAN, false);
@@ -83,8 +83,8 @@ public final class Type<T> implements Co
     /** Map {@code Iterable<Double>} to array of {@link PropertyType#DOUBLE} */
     public static final Type<Iterable<Double>> DOUBLES = create(PropertyType.DOUBLE, true);
 
-    /** Map {@code Iterable<String>} to array of {@link PropertyType#DATE} */
-    public static final Type<Iterable<String>> DATES = create(PropertyType.DATE, true);
+    /** Map {@code Iterable<Long>} to array of {@link PropertyType#DATE} */
+    public static final Type<Iterable<Long>> DATES = create(PropertyType.DATE, true);
 
     /** Map {@code Iterable<Boolean>} to array of {@link PropertyType#BOOLEAN} */
     public static final Type<Iterable<Boolean>> BOOLEANS = create(PropertyType.BOOLEAN, true);

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java Thu Apr  4 14:50:53 2013
@@ -675,6 +675,8 @@ public final class KernelNodeState exten
                         values.add(Conversions.convert(value).toDouble());
                     } else if(type == PropertyType.DECIMAL) {
                         values.add(Conversions.convert(value).toDecimal());
+                    } else if(type == PropertyType.DATE) {
+                        values.add(Conversions.convert(value).toCalendar().getTimeInMillis());
                     } else {
                         values.add(StringCache.get(value));
                     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilder.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilder.java Thu Apr  4 14:50:53 2013
@@ -182,7 +182,7 @@ public class MemoryPropertyBuilder<T> im
                 case PropertyType.DOUBLE:
                     return MultiDoublePropertyState.doubleProperty(name, (Iterable<Double>) values);
                 case PropertyType.DATE:
-                    return MultiLongPropertyState.createDateProperty(name, (Iterable<String>) values);
+                    return MultiLongPropertyState.createDatePropertyFromLong(name, (Iterable<Long>) values);
                 case PropertyType.BOOLEAN:
                     return MultiBooleanPropertyState.booleanProperty(name, (Iterable<Boolean>) values);
                 case PropertyType.DECIMAL:
@@ -202,7 +202,7 @@ public class MemoryPropertyBuilder<T> im
                 case PropertyType.DOUBLE:
                     return DoublePropertyState.doubleProperty(name, (Double) value);
                 case PropertyType.DATE:
-                    return LongPropertyState.createDateProperty(name, (String) value);
+                    return LongPropertyState.createDateProperty(name, (Long) value);
                 case PropertyType.BOOLEAN:
                     return BooleanPropertyState.booleanProperty(name, (Boolean) value);
                 case PropertyType.DECIMAL:
@@ -221,18 +221,10 @@ public class MemoryPropertyBuilder<T> im
             setName(property.getName());
             if (property.isArray()) {
                 isArray = true;
-                if (type == Type.DATE) {
-                    setValues((Iterable<T>) property.getValue(Type.STRINGS));
-                } else {
-                    setValues((Iterable<T>) property.getValue(type.getArrayType()));
-                }
+                setValues((Iterable<T>) property.getValue(type.getArrayType()));
             } else {
                 isArray = false;
-                if (type == Type.DATE) {
-                    setValue((T) property.getValue(Type.STRING));
-                } else {
-                    setValue(property.getValue(type));
-                }
+                setValue(property.getValue(type));
             }
         }
         return this;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java Thu Apr  4 14:50:53 2013
@@ -89,9 +89,9 @@ abstract class MultiPropertyState<T> ext
                     }
                 });
             case PropertyType.DATE:
-                return (S) Iterables.transform(values, new Function<T, String>() {
+                return (S) Iterables.transform(values, new Function<T, Long>() {
                     @Override
-                    public String apply(T value) {
+                    public Long apply(T value) {
                         return getConverter(value).toDate();
                     }
                 });

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java Thu Apr  4 14:50:53 2013
@@ -177,7 +177,7 @@ public final class PropertyStates {
             case PropertyType.DOUBLE:
                 return DoublePropertyState.doubleProperty(name, Conversions.convert(value).toDouble());
             case PropertyType.DATE:
-                return LongPropertyState.createDateProperty(name, value);
+                return LongPropertyState.createDateProperty(name, Conversions.convert(value).toDate());
             case PropertyType.BOOLEAN:
                 return BooleanPropertyState.booleanProperty(name, Conversions.convert(value).toBoolean());
             case PropertyType.DECIMAL:
@@ -216,8 +216,8 @@ public final class PropertyStates {
                 : DoublePropertyState.doubleProperty(name, (Double) value);
             case PropertyType.DATE:
                 return type.isArray()
-                ? MultiLongPropertyState.createDateProperty(name, (Iterable<String>) value)
-                : LongPropertyState.createDateProperty(name, (String) value);
+                ? MultiLongPropertyState.createDatePropertyFromLong(name, (Iterable<Long>) value)
+                : LongPropertyState.createDateProperty(name, (Long) value);
             case PropertyType.BOOLEAN:
                 return type.isArray()
                 ? MultiBooleanPropertyState.booleanProperty(name, (Iterable<Boolean>) value)

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java Thu Apr  4 14:50:53 2013
@@ -101,12 +101,13 @@ public final class Conversions {
         }
 
         /**
-         * Convert to date. This default implementation is based on {@code ISO8601.parse(String)}.
+         * Convert to date. This default implementation delegates to {@link #toCalendar()}
+         * and returns the <code>getTimeInMillis</code> value of the calendar.
          * @return  date representation of the converted value
          * @throws IllegalArgumentException  if the string cannot be parsed into a date
          */
-        public String toDate() {
-            return convert(toCalendar()).toString();
+        public Long toDate() {
+            return toCalendar().getTimeInMillis();
         }
 
         /**

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueImpl.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueImpl.java Thu Apr  4 14:50:53 2013
@@ -117,7 +117,7 @@ public class ValueImpl implements Value 
             switch (getType()) {
                 case PropertyType.STRING:
                 case PropertyType.BINARY:
-                    String value = propertyState.getValue(Type.DATE, index);
+                    long value = propertyState.getValue(Type.DATE, index);
                     return Conversions.convert(value).toCalendar();
                 case PropertyType.LONG:
                 case PropertyType.DOUBLE:

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java Thu Apr  4 14:50:53 2013
@@ -143,7 +143,7 @@ class ReadWriteVersionManager extends Re
             rootVersion.setProperty(JCR_UUID,
                     IdentifierManager.generateUUID(), Type.STRING);
             rootVersion.setProperty(JCR_PRIMARYTYPE, NT_VERSION, Type.NAME);
-            String now = Conversions.convert(GregorianCalendar.getInstance()).toDate();
+            long now = System.currentTimeMillis();
             rootVersion.setProperty(JCR_CREATED, now, Type.DATE);
             rootVersion.setProperty(JCR_PREDECESSORS,
                     Collections.<String>emptyList(), Type.REFERENCES);

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java Thu Apr  4 14:50:53 2013
@@ -610,7 +610,7 @@ public class SQL2Parser {
                     }
                     LiteralImpl literal = (LiteralImpl) op;
                     PropertyValue value = literal.getLiteralValue();
-                    value = PropertyValues.newDate(value.getValue(Type.STRING));
+                    value = PropertyValues.newDate(value.getValue(Type.DATE));
                     literal = factory.literal(value);
                     return literal;
                 }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java Thu Apr  4 14:50:53 2013
@@ -99,7 +99,7 @@ public final class PropertyValues {
     }
 
     @Nonnull
-    public static PropertyValue newDate(String value) {
+    public static PropertyValue newDate(Long value) {
         return new PropertyStateValue(LongPropertyState.createDateProperty("", value));
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java Thu Apr  4 14:50:53 2013
@@ -252,9 +252,7 @@ public class NodeUtil {
     }
 
     public void setDate(String name, long time) {
-        Calendar cal = GregorianCalendar.getInstance();
-        cal.setTimeInMillis(time);
-        tree.setProperty(name, Conversions.convert(cal).toDate(), DATE);
+        tree.setProperty(name, time, DATE);
     }
 
     public long getLong(String name, long defaultValue) {

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java Thu Apr  4 14:50:53 2013
@@ -21,6 +21,7 @@ import java.util.Arrays;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.spi.state.PropertyBuilder;
+import org.apache.jackrabbit.util.ISO8601;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -74,13 +75,13 @@ public class MemoryPropertyBuilderTest {
 
     @Test
     public void testDateProperty() {
-        PropertyBuilder<String> builder = MemoryPropertyBuilder.array(Type.DATE);
-        String date1 = "1970-01-01T00:00:00.000Z";
-        String date2 = "1971-01-01T00:00:00.000Z";
+        PropertyBuilder<Long> builder = MemoryPropertyBuilder.array(Type.DATE);
+        Long date1 = ISO8601.parse("1970-01-01T00:00:00.000Z").getTimeInMillis();
+        Long date2 = ISO8601.parse("1971-01-01T00:00:00.000Z").getTimeInMillis();
         builder.setName("foo")
                 .addValue(date1)
                 .addValue(date2);
-        assertEquals(MultiLongPropertyState.createDateProperty("foo", Arrays.asList(date1, date2)),
+        assertEquals(MultiLongPropertyState.createDatePropertyFromLong("foo", Arrays.asList(date1, date2)),
                 builder.getPropertyState());
 
         builder.setScalar();
@@ -117,7 +118,7 @@ public class MemoryPropertyBuilderTest {
     public void testAssignFromDate() {
         String date = "1970-01-01T00:00:00.000Z";
         PropertyState source = LongPropertyState.createDateProperty("foo", date);
-        PropertyBuilder<String> builder = MemoryPropertyBuilder.scalar(Type.DATE);
+        PropertyBuilder<Long> builder = MemoryPropertyBuilder.scalar(Type.DATE);
         builder.assignFrom(source);
         assertEquals(source, builder.getPropertyState());
     }
@@ -152,7 +153,7 @@ public class MemoryPropertyBuilderTest {
         String date1 = "1970-01-01T00:00:00.000Z";
         String date2 = "1971-01-01T00:00:00.000Z";
         PropertyState source = MultiLongPropertyState.createDateProperty("foo", Arrays.asList(date1, date2));
-        PropertyBuilder<String> builder = MemoryPropertyBuilder.scalar(Type.DATE);
+        PropertyBuilder<Long> builder = MemoryPropertyBuilder.scalar(Type.DATE);
         builder.assignFrom(source);
         assertEquals(source, builder.getPropertyState());
     }

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStatesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStatesTest.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStatesTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStatesTest.java Thu Apr  4 14:50:53 2013
@@ -60,12 +60,11 @@ public class PropertyStatesTest {
     }
 
     @Test
-    @Ignore("OAK-749")
     public void dateValueFromDateProperty() throws RepositoryException {
-        String expected = ISO8601.format(Calendar.getInstance());
+        long expected = Calendar.getInstance().getTimeInMillis();
         PropertyState dateProperty = PropertyStates.createProperty(
                 "date", expected, Type.DATE);
-        String actual = dateProperty.getValue(Type.DATE);
+        long actual = dateProperty.getValue(Type.DATE);
         assertEquals(expected, actual);
     }
 }

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java Thu Apr  4 14:50:53 2013
@@ -85,7 +85,7 @@ public class SegmentSizeTest {
 
     @Test
     public void testDuplicateDates() {
-        String now = ISO8601.format(Calendar.getInstance());
+        long now = Calendar.getInstance().getTimeInMillis();
 
         NodeBuilder builder = EMPTY_NODE.builder();
         builder.setProperty(PropertyStates.createProperty(

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PropertyDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PropertyDelegate.java?rev=1464579&r1=1464578&r2=1464579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PropertyDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PropertyDelegate.java Thu Apr  4 14:50:53 2013
@@ -66,7 +66,7 @@ public class PropertyDelegate extends It
         return getSingleState().getValue(Type.STRING);
     }
 
-    public String getDate() throws ValueFormatException, InvalidItemStateException {
+    public Long getDate() throws ValueFormatException, InvalidItemStateException {
         return getSingleState().getValue(Type.DATE);
     }