FULL PRODUCT VERSION :
java 8 build 124 64 bit
ADDITIONAL OS VERSION INFORMATION :
Linux localhost.localdomain 3.12.8-300.fc20.x86_64 #1 SMP Thu Jan 16 01:07:50 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
Following code throws a UnsupportedTemporalTypeException:
LocalDate birthDate = LocalDate.parse("20000129",DateTimeFormatter.BASIC_ISO_DATE);
Duration.between(birthDate, LocalDate.now());
If you look at the source code this is logical:
The method body of Duration.between @ line 475 calls DateTime.untill with SECONDS as TemporalUnit
and SECONDS is not in the switch and thats why the exception is thrown
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
execute following code :
LocalDate birthDate = LocalDate.parse("20000129",DateTimeFormatter.BASIC_ISO_DATE);
Duration.between(birthDate, LocalDate.now());
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
a java.time.Duration
ACTUAL -
exception thrown
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Unsupported unit: Seconds
java.time.temporal.UnsupportedTemporalTypeException
at java.time.LocalDate.until(LocalDate.java:1608)
at java.time.Duration.between(Duration.java:475)
at nl.benooms.java8project.java8project.PersonTest.testAge0YearOld(PersonTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:242)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:137)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
LocalDate birthDate = LocalDate.parse("20000129",DateTimeFormatter.BASIC_ISO_DATE);
Duration.between(birthDate, LocalDate.now());
---------- END SOURCE ----------
java 8 build 124 64 bit
ADDITIONAL OS VERSION INFORMATION :
Linux localhost.localdomain 3.12.8-300.fc20.x86_64 #1 SMP Thu Jan 16 01:07:50 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
Following code throws a UnsupportedTemporalTypeException:
LocalDate birthDate = LocalDate.parse("20000129",DateTimeFormatter.BASIC_ISO_DATE);
Duration.between(birthDate, LocalDate.now());
If you look at the source code this is logical:
The method body of Duration.between @ line 475 calls DateTime.untill with SECONDS as TemporalUnit
and SECONDS is not in the switch and thats why the exception is thrown
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
execute following code :
LocalDate birthDate = LocalDate.parse("20000129",DateTimeFormatter.BASIC_ISO_DATE);
Duration.between(birthDate, LocalDate.now());
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
a java.time.Duration
ACTUAL -
exception thrown
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Unsupported unit: Seconds
java.time.temporal.UnsupportedTemporalTypeException
at java.time.LocalDate.until(LocalDate.java:1608)
at java.time.Duration.between(Duration.java:475)
at nl.benooms.java8project.java8project.PersonTest.testAge0YearOld(PersonTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:242)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:137)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
LocalDate birthDate = LocalDate.parse("20000129",DateTimeFormatter.BASIC_ISO_DATE);
Duration.between(birthDate, LocalDate.now());
---------- END SOURCE ----------