Stackoverflow for empty UTC data
Hi,
When the UTC data is empty (not using UTC), an infinite loop is created starting from AbsoluteDate.toString(...)
Exception in thread "main" java.lang.StackOverflowError
....
at org.orekit.errors.OrekitException.buildMessage(OrekitException.java:166)
at org.orekit.errors.OrekitException.getMessage(OrekitException.java:126)
at org.orekit.errors.OrekitException.getLocalizedMessage(OrekitException.java:138)
at java.lang.Throwable.toString(Throwable.java:343)
at java.lang.Throwable.(Throwable.java:242)
at java.lang.Exception.(Exception.java:77)
at java.lang.RuntimeException.(RuntimeException.java:77)
at org.orekit.time.AbsoluteDate.toString(AbsoluteDate.java:797)
at java.text.MessageFormat.subformat(MessageFormat.java:1246)
at java.text.MessageFormat.format(MessageFormat.java:836)
at java.text.Format.format(Format.java:140)
at org.orekit.errors.OrekitException.buildMessage(OrekitException.java:166)
at org.orekit.errors.OrekitException.getMessage(OrekitException.java:126)
at org.orekit.errors.OrekitException.getLocalizedMessage(OrekitException.java:138)
at java.lang.Throwable.toString(Throwable.java:343)
at java.lang.Throwable.(Throwable.java:242)
at java.lang.Exception.(Exception.java:77)
at java.lang.RuntimeException.(RuntimeException.java:77)
at org.orekit.time.AbsoluteDate.toString(AbsoluteDate.java:797)
at java.lang.String.valueOf(String.java:2826)
at java.io.PrintStream.println(PrintStream.java:771)
at AbsoluteDateStackOverflow.main(TestFrames1.java:27)
I've attached the class that generates this error.
This means that you must setup UTC. However this conflics with the javadoc for UTCTAILoader.loadTimeSteps that states
sorted UTC-TAI offsets entries (may be empty)
There doesn't seem to be a "simple" way to avoid this issue in AbsoluteDate. Perhaps a warning can be added to the UTCTAILoader javadoc that some valid entries must exist?
Simon Billemont
(from redmine: issue id 111, created on 2012-09-07, closed on 2012-09-07)
- Uploads:
- AbsoluteDateStackOverflow.java Minimal case that generates a StackOverflowError