diff options
author | Ivan Frade <ifrade@google.com> | 2024-12-09 10:54:51 -0800 |
---|---|---|
committer | Ivan Frade <ifrade@google.com> | 2024-12-09 12:49:43 -0800 |
commit | e081e9b9049ff3ffb085cae40d50ebdfb563ef17 (patch) | |
tree | a6ffa2d2047c5053d6b7ad72b66759e089e7df2d /org.eclipse.jgit.test/tst/org/eclipse | |
parent | b4017a6f8eb97a6509d3772d5ab7aa8ce451c8a9 (diff) | |
download | jgit-e081e9b9049ff3ffb085cae40d50ebdfb563ef17.tar.gz jgit-e081e9b9049ff3ffb085cae40d50ebdfb563ef17.zip |
RawParseUtils: Default to UTC in invalid timezones
PersonIdent used to translate invalid timezones to UTC [1],
but the new java.time code just throws an exception. Also the parsing
used happen on demand, but now is done in the constructor, so the
exception is thrown even if the timezone is not used at all.
Check the parsed timezone and default to UTC if it is out of range.
[1] https://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html#getTimeZone-java.lang.String-
Change-Id: I90dd7d842ac8f44caef3b76d57375dead76bebde
Diffstat (limited to 'org.eclipse.jgit.test/tst/org/eclipse')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_ParsePersonIdentTest.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_ParsePersonIdentTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_ParsePersonIdentTest.java index e517889c83..6d23db81d8 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_ParsePersonIdentTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_ParsePersonIdentTest.java @@ -107,6 +107,21 @@ public class RawParseUtils_ParsePersonIdentTest { assertPersonIdent("Me <me@example.com 1234567890 -0700", null); } + @Test + public void testParsePersonIdent_badTz() { + PersonIdent tooBig = RawParseUtils + .parsePersonIdent("Me <me@example.com> 1234567890 +8315"); + assertEquals(tooBig.getZoneOffset().getTotalSeconds(), 0); + + PersonIdent tooSmall = RawParseUtils + .parsePersonIdent("Me <me@example.com> 1234567890 -8315"); + assertEquals(tooSmall.getZoneOffset().getTotalSeconds(), 0); + + PersonIdent notATime = RawParseUtils + .parsePersonIdent("Me <me@example.com> 1234567890 -0370"); + assertEquals(notATime.getZoneOffset().getTotalSeconds(), 0); + } + private static void assertPersonIdent(String line, PersonIdent expected) { PersonIdent actual = RawParseUtils.parsePersonIdent(line); assertEquals(expected, actual); |