fathzer opened a new issue, #989:
URL: https://github.com/apache/maven-compiler-plugin/issues/989

   ### Affected version
   
   latest (docker image 3.9.11-eclipse-temurin-25)
   
   ### Bug description
   
   I have the following classes in a non standard tree (the files are directly 
in src, instead of src/main/java).
   
   ```java
   package com.test;
   
   public enum State {
        FINISHED,
        PENDING
   }
   ```
   
   ```java
   package com.test;
   
   import javax.swing.SwingWorker;
   
   public class Test extends SwingWorker<Void, Void> {
        
        @Override
        public Void doInBackground() throws Exception {
                Object state2 = State.FINISHED;
                return null;
        }
   }
   ```
   
   And the following pom.xml
   
   ```xml
   <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.test</groupId>
        <artifactId>compile-bug</artifactId>
        <version>0.0.1</version>
        <properties>
                
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                <maven.install.skip>true</maven.install.skip>
                <maven.deploy.skip>true</maven.deploy.skip>
        </properties>
   
        <build>
                <sourceDirectory>src</sourceDirectory>
        </build>
   </project>
   ```
   
   When I compile this project using latest Docker maven image (currently 
3.9.11-eclipse-temurin-25), I get the following error message:
   ```bash
   docker run --rm -v $(pwd):/app -v ~/.m2:/root/.m2 -w /app maven:latest mvn 
clean compile
   ```
   
   ```
   [INFO] -------------------------------------------------------------
   [INFO] -------------------------------------------------------------
   [ERROR] COMPILATION ERROR : 
   [INFO] -------------------------------------------------------------
   [ERROR] /app/src/com/test/Test.java:[9,38] cannot find symbol
     symbol:   variable FINISHED
     location: class java.util.concurrent.Future.State
   [INFO] 1 error
   ```
   
   The compiler is misleading between the `Future.State` imported in the 
superclass of `Test` and the `State` class available in the same package than 
`Test`.
   
   I also check `maven:3-eclipse-temurin-21` with the same failure.
   
   If I do one of the following, the problem disappears:
   - Use an quite old release of maven (maven:3-jdk-8)
   - Put the source files in default source directory and remove the pom's 
build section.
   - Add a `import static com.test.State.*;` in `Test.java` and replace 
`State.FINISHED` by `FINISHED`.
   
   
   The [following project](https://github.com/fathzer/maven-compiler-bug) 
contains a ready to use Maven project to reproduce the bug.
   
   Thanks for reading!
   
   PS: JDK 8 does not have a Future.State class (introduced in Java 19). This 
could explain why the compilation is working.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to