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