[ https://issues.apache.org/jira/browse/MCOMPILER-592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17887797#comment-17887797 ]
ASF GitHub Bot commented on MCOMPILER-592: ------------------------------------------ stokito commented on code in PR #266: URL: https://github.com/apache/maven-compiler-plugin/pull/266#discussion_r1792987182 ########## src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java: ########## @@ -1152,9 +1152,7 @@ public void execute() { } } - if (outputTimestamp != null - && !outputTimestamp.isEmpty() - && (outputTimestamp.length() > 1 || Character.isDigit(outputTimestamp.charAt(0)))) { + if (StringUtils.isNotBlank(outputTimestamp)) { Review Comment: The `outputTimestamp.length() > 1` really confused me. The one char (not digit) will make the `outputTimestamp` ignored as if it was empty. It looks like I understood why the one char will be ignored. In JIRA I found this: "disable it `<project.build.outputTimestamp>x</project.build.outputTimestamp>`". In the maven-archiver https://github.com/apache/maven-archiver/blob/master/src/main/java/org/apache/maven/archiver/MavenArchiver.java#L703 there is more explanation // no timestamp configured (1 character configuration is useful to override a full value during pom // inheritance) if (outputTimestamp.length() < 2) { return Optional.empty(); } So my PR is invalid. But the `x` value needs to be specified clearly maybe if not in code but at least in comments and documentation. I would rather introduce a special constant value like NO_INHERIT or something like that. > IndexOutOfBoundsException when project.build.outputTimestamp is empty > --------------------------------------------------------------------- > > Key: MCOMPILER-592 > URL: https://issues.apache.org/jira/browse/MCOMPILER-592 > Project: Maven Compiler Plugin > Issue Type: Bug > Affects Versions: 3.12.0, 3.12.1, 3.13.0 > Reporter: Thijs Rijpert > Priority: Minor > > Due to a combination of plugins, it is possible for the > project.build.outputTimestamp property to have an empty string as a value. > This causes an IndexOutOfBoundsException on line 1242 when it tries to access > the first character in the string. > This can be fixed by doing an isEmpty check before doing the charAt check. I > will create an PR for this. > While this bug is caused by another plugin, I think this should be fixed in > the compiler because the error returned (IndexOutOfBoundsException), is vague > and hard to debug. > The workaround for this issue is setting the project.build.outputTimestamp > property with an arbitrary value. -- This message was sent by Atlassian Jira (v8.20.10#820010)