[ 
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)

Reply via email to