Reject trailing text after the date in Converter.DATE#435
Open
farkhalit wants to merge 1 commit into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request tightens Converter.DATE parsing so it rejects inputs where a valid Date prefix is followed by extra trailing text, preventing partial parses that could undermine the strictness added in #430.
Changes:
- Switch
Converter.DATEto parse viaParsePositionand require full-string consumption (includingLocale.ENGLISHfallback). - Add a regression test ensuring trailing text after a valid formatted date is rejected.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/main/java/org/apache/commons/cli/Converter.java | Enforces full consumption during date parsing (and preserves English fallback) to reject trailing garbage. |
| src/test/java/org/apache/commons/cli/ConverterTests.java | Adds a test case covering rejection of trailing text after an otherwise valid date. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+89
to
93
| final ParsePosition pos = new ParsePosition(0); | ||
| Date date = format.parse(s, pos); | ||
| if (date == null || pos.getIndex() != s.length()) { | ||
| // Date.toString() always emits English month/day names, so fall back to Locale.ENGLISH | ||
| // when the default locale rejects the documented format. |
garydgregory
requested changes
Jul 23, 2026
garydgregory
left a comment
Member
There was a problem hiding this comment.
@farkhalit
Please review the co-pilot comments. Add another unit test if additional coverage is needed.
Member
|
@farkhalit ping 🔔 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Converter.DATEparses withSimpleDateFormat.parse(String), which stops at the first character it cannot use and ignores whatever follows, so aDate-typed option value likeFri Jun 07 03:18:57 IST 2002 rm -rf /returns a validDateand the trailing text is dropped. That defeats thesetLenient(false)strictness added in #430. Parse from an explicitParsePositionand reject the value unless the whole string is consumed, keeping theLocale.ENGLISHfallback.