[OLINGO-1367]OData V2: Code fix with EdmTime
diff --git a/odata2-lib/odata-client-core/src/test/java/org/apache/olingo/odata2/client/core/ep/deserializer/JsonPropertyDeserializerTest.java b/odata2-lib/odata-client-core/src/test/java/org/apache/olingo/odata2/client/core/ep/deserializer/JsonPropertyDeserializerTest.java
index 8054475..82274ae 100644
--- a/odata2-lib/odata-client-core/src/test/java/org/apache/olingo/odata2/client/core/ep/deserializer/JsonPropertyDeserializerTest.java
+++ b/odata2-lib/odata-client-core/src/test/java/org/apache/olingo/odata2/client/core/ep/deserializer/JsonPropertyDeserializerTest.java
@@ -190,9 +190,6 @@
dateTime.set(Calendar.HOUR_OF_DAY, 23);
dateTime.set(Calendar.MINUTE, 32);
dateTime.set(Calendar.SECOND, 3);
- dateTime.set(Calendar.YEAR, 0);
- dateTime.set(Calendar.MONTH, 0);
- dateTime.set(Calendar.DAY_OF_YEAR, 0);
assertEquals(dateTime, resultMap.get("Name"));
}
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmTime.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmTime.java
index 740e1e7..0def486 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmTime.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmTime.java
@@ -77,12 +77,15 @@
Calendar dateTimeValue = Calendar.getInstance();
dateTimeValue.clear();
- dateTimeValue.set(Calendar.YEAR,
- matcher.group(1) == null ? 0 : Integer.parseInt(matcher.group(1)));
- dateTimeValue.set(Calendar.MONTH,
- matcher.group(2) == null ? 0 : Integer.parseInt(matcher.group(2)));
- dateTimeValue.set(Calendar.DAY_OF_YEAR,
- matcher.group(3) == null ? 0 : Integer.parseInt(matcher.group(3)));
+ if (matcher.group(1) != null) {
+ dateTimeValue.set(Calendar.YEAR, Integer.parseInt(matcher.group(1)));
+ }
+ if (matcher.group(2) != null) {
+ dateTimeValue.set(Calendar.MONTH, Integer.parseInt(matcher.group(2)));
+ }
+ if (matcher.group(3) != null) {
+ dateTimeValue.set(Calendar.DAY_OF_YEAR, Integer.parseInt(matcher.group(3)));
+ }
dateTimeValue.set(Calendar.HOUR_OF_DAY,
matcher.group(4) == null ? 0 : Integer.parseInt(matcher.group(4)));
dateTimeValue.set(Calendar.MINUTE,
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java
index bab2d91..b0ce2f5 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java
@@ -1655,9 +1655,6 @@
dateTime.set(Calendar.HOUR_OF_DAY, 23);
dateTime.set(Calendar.MINUTE, 32);
dateTime.set(Calendar.SECOND, 3);
- dateTime.set(Calendar.YEAR, 0);
- dateTime.set(Calendar.MONTH, 0);
- dateTime.set(Calendar.DAY_OF_YEAR, 0);
assertEquals(dateTime, instance.valueOfString("PT23H32M3S", EdmLiteralKind.DEFAULT, null, Calendar.class));
assertEquals(Long.valueOf(dateTime.getTimeInMillis()), instance.valueOfString("PT84723S", EdmLiteralKind.DEFAULT,
null, Long.class));
@@ -1715,26 +1712,18 @@
dateTime.clear();
dateTime.set(Calendar.MINUTE, 0);
dateTime.set(Calendar.SECOND, 0);
- dateTime.set(Calendar.YEAR, 0);
- dateTime.set(Calendar.MONTH, 0);
- dateTime.set(Calendar.DAY_OF_YEAR, 0);
dateTime.set(Calendar.HOUR_OF_DAY, 24);
assertEquals(dateTime.getTimeInMillis(),
instance.valueOfString("PT24H", EdmLiteralKind.DEFAULT, null, Time.class).getTime());
dateTime.clear();
dateTime.set(Calendar.MINUTE, 0);
dateTime.set(Calendar.SECOND, 99999);
- dateTime.set(Calendar.YEAR, 0);
- dateTime.set(Calendar.MONTH, 0);
- dateTime.set(Calendar.DAY_OF_YEAR, 0);
dateTime.set(Calendar.HOUR_OF_DAY, 0);
assertEquals(dateTime.getTimeInMillis(),
instance.valueOfString("PT99999S", EdmLiteralKind.DEFAULT, null, Time.class).getTime());
dateTime.clear();
dateTime.set(Calendar.MINUTE, 10);
dateTime.set(Calendar.SECOND, 10);
- dateTime.set(Calendar.YEAR, 0);
- dateTime.set(Calendar.MONTH, 0);
dateTime.set(Calendar.DAY_OF_YEAR, 10);
dateTime.set(Calendar.HOUR_OF_DAY, 10);
assertEquals(dateTime.getTimeInMillis(),
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/JsonPropertyConsumerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/JsonPropertyConsumerTest.java
index 09dd38a..36b1cca 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/JsonPropertyConsumerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/JsonPropertyConsumerTest.java
@@ -185,9 +185,6 @@
dateTime.set(Calendar.HOUR_OF_DAY, 23);
dateTime.set(Calendar.MINUTE, 32);
dateTime.set(Calendar.SECOND, 3);
- dateTime.set(Calendar.YEAR, 0);
- dateTime.set(Calendar.MONTH, 0);
- dateTime.set(Calendar.DAY_OF_YEAR, 0);
assertEquals(dateTime, resultMap.get("Name"));
}