adoroszlai commented on code in PR #6939:
URL: https://github.com/apache/hadoop/pull/6939#discussion_r1678966782


##########
hadoop-common-project/hadoop-auth/pom.xml:
##########
@@ -272,5 +272,68 @@
         </plugins>
       </build>
     </profile>
+    <profile>
+      <id>java-8</id>
+      <activation>
+        <jdk>1.8</jdk>
+      </activation>
+      <properties>
+        <maven.compiler.source>${javac.version}</maven.compiler.source>
+        <maven.compiler.target>${javac.version}</maven.compiler.target>
+      </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-enforcer-plugin</artifactId>
+            <version>3.0.0</version>
+            <executions>
+              <execution>
+                <id>enforce-java-version</id>
+                <goals>
+                  <goal>enforce</goal>
+                </goals>
+                <configuration>
+                  <rules>
+                    <requireJavaVersion>
+                      <version>1.8</version>
+                    </requireJavaVersion>
+                  </rules>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>x509-suppress</id>
+      <activation>
+        <jdk>[9,)</jdk>
+      </activation>
+      <properties>
+        <maven.compiler.source>${javac.version}</maven.compiler.source>
+        <maven.compiler.target>${javac.version}</maven.compiler.target>

Review Comment:
   > I have experienced a lot of the following error cases when running jar on 
JDK 8 that built with newer JDK with release 8
   
   Using `-target` or `--release`?
   
   Because that's exactly the kind of problem `--release` solves compared to 
`-target`.
   
   It's easy to reproduce the problem and verify the fix:
   
   ```bash
   $ cat > NoSuchMethod.java <<EOF
   import java.nio.ByteBuffer;
   
   public class NoSuchMethod {
   
     public static void main(String[] args) {
       
System.out.println(ByteBuffer.allocate(100).position(20).limit(62).remaining());
     }
   
   }
   EOF
   
   $ usr/lib/jvm/java-11-openjdk-amd64/bin/javac -Xlint:none -source 8 -target 
8 NoSuchMethod.java \
     && /usr/lib/jvm/java-8-openjdk-amd64/bin/java NoSuchMethod
   Exception in thread "main" java.lang.NoSuchMethodError: 
java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
        at NoSuchMethod.main(NoSuchMethod.java:6)
   
   $ /usr/lib/jvm/java-11-openjdk-amd64/bin/javac --release 8 NoSuchMethod.java 
\
     && /usr/lib/jvm/java-8-openjdk-amd64/bin/java NoSuchMethod
   42
   ```



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to