You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2021/05/04 12:50:45 UTC

[maven-resolver] 01/02: [MRESOLVER-171] Resolver fails when compiled on Java 9+ and run on Java 8 due to JDK API breakage

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch 1.6.x
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git

commit 8e4e785261a4237d420b87f604993a4761b3b57f
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon Apr 26 09:08:23 2021 +0200

    [MRESOLVER-171] Resolver fails when compiled on Java 9+ and run on Java 8 due to JDK API breakage
---
 .../aether/connector/basic/ChecksumCalculator.java    | 13 +++++++------
 .../aether/internal/impl/DefaultFileProcessor.java    | 11 ++++++-----
 .../spi/connector/transport/AbstractTransporter.java  | 19 ++++++++++---------
 .../aether/internal/test/util/TestFileProcessor.java  |  9 +++++----
 .../classpath/RecordingTransportListener.java         |  7 ++++---
 .../transport/file/RecordingTransportListener.java    |  7 ++++---
 .../transport/http/RecordingTransportListener.java    |  7 ++++---
 .../transport/wagon/RecordingTransportListener.java   |  7 ++++---
 8 files changed, 44 insertions(+), 36 deletions(-)

diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
index e5a1780..0b1d4b3 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.connector.basic;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -23,6 +23,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -164,8 +165,8 @@ final class ChecksumCalculator
                 {
                     read -= total - dataOffset;
                 }
-                buffer.rewind();
-                buffer.limit( read );
+                ( (Buffer) buffer ).rewind();
+                ( (Buffer) buffer ).limit( read );
                 update( buffer );
             }
 
@@ -199,9 +200,9 @@ final class ChecksumCalculator
     {
         for ( Checksum checksum : checksums )
         {
-            data.mark();
+            ( (Buffer) data ).mark();
             checksum.update( data );
-            data.reset();
+            ( (Buffer) data ).reset();
         }
     }
 
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
index 6ba2915..6ffda48 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.internal.impl;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -25,6 +25,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
 
@@ -44,7 +45,7 @@ public class DefaultFileProcessor
      * Thread-safe variant of {@link File#mkdirs()}. Creates the directory named by the given abstract pathname,
      * including any necessary but nonexistent parent directories. Note that if this operation fails it may have
      * succeeded in creating some of the necessary parent directories.
-     * 
+     *
      * @param directory The directory to create, may be {@code null}.
      * @return {@code true} if and only if the directory was created, along with all necessary parent directories;
      *         {@code false} otherwise
@@ -229,8 +230,8 @@ public class DefaultFileProcessor
             {
                 try
                 {
-                    buffer.rewind();
-                    buffer.limit( bytes );
+                    ( (Buffer) buffer ).rewind();
+                    ( (Buffer) buffer ).limit( bytes );
                     listener.progressed( buffer );
                 }
                 catch ( Exception e )
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
index 21a0da3..39e632c 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.spi.connector.transport;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -22,6 +22,7 @@ package org.eclipse.aether.spi.connector.transport;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -53,7 +54,7 @@ public abstract class AbstractTransporter
 
     /**
      * Implements {@link #peek(PeekTask)}, gets only called if the transporter has not been closed.
-     * 
+     *
      * @param task The existence check to perform, must not be {@code null}.
      * @throws Exception If the existence of the specified resource could not be confirmed.
      */
@@ -69,7 +70,7 @@ public abstract class AbstractTransporter
 
     /**
      * Implements {@link #get(GetTask)}, gets only called if the transporter has not been closed.
-     * 
+     *
      * @param task The download to perform, must not be {@code null}.
      * @throws Exception If the transfer failed.
      */
@@ -80,7 +81,7 @@ public abstract class AbstractTransporter
      * Performs stream-based I/O for the specified download task and notifies the configured transport listener.
      * Subclasses might want to invoke this utility method from within their {@link #implGet(GetTask)} to avoid
      * boilerplate I/O code.
-     * 
+     *
      * @param task The download to perform, must not be {@code null}.
      * @param is The input stream to download the data from, must not be {@code null}.
      * @param close {@code true} if the supplied input stream should be automatically closed, {@code false} to leave the
@@ -149,7 +150,7 @@ public abstract class AbstractTransporter
 
     /**
      * Implements {@link #put(PutTask)}, gets only called if the transporter has not been closed.
-     * 
+     *
      * @param task The upload to perform, must not be {@code null}.
      * @throws Exception If the transfer failed.
      */
@@ -160,7 +161,7 @@ public abstract class AbstractTransporter
      * Performs stream-based I/O for the specified upload task and notifies the configured transport listener.
      * Subclasses might want to invoke this utility method from within their {@link #implPut(PutTask)} to avoid
      * boilerplate I/O code.
-     * 
+     *
      * @param task The upload to perform, must not be {@code null}.
      * @param os The output stream to upload the data to, must not be {@code null}.
      * @param close {@code true} if the supplied output stream should be automatically closed, {@code false} to leave
@@ -251,8 +252,8 @@ public abstract class AbstractTransporter
         for ( int read = is.read( array ); read >= 0; read = is.read( array ) )
         {
             os.write( array, 0, read );
-            buffer.rewind();
-            buffer.limit( read );
+            ( (Buffer) buffer ).rewind();
+            ( (Buffer) buffer ).limit( read );
             listener.transportProgressed( buffer );
         }
     }
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
index 118ef13..00089a7 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.internal.test.util;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -26,6 +26,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
 
@@ -218,8 +219,8 @@ public class TestFileProcessor
             {
                 try
                 {
-                    buffer.rewind();
-                    buffer.limit( bytes );
+                    ( (Buffer) buffer ).rewind();
+                    ( (Buffer) buffer ).limit( bytes );
                     listener.progressed( buffer );
                 }
                 catch ( Exception e )
diff --git a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/RecordingTransportListener.java b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/RecordingTransportListener.java
index 9447d39..8d453b1 100644
--- a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/RecordingTransportListener.java
+++ b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/RecordingTransportListener.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.classpath;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,6 +20,7 @@ package org.eclipse.aether.transport.classpath;
  */
 
 import java.io.ByteArrayOutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 
 import org.eclipse.aether.spi.connector.transport.TransportListener;
@@ -63,7 +64,7 @@ class RecordingTransportListener
         throws TransferCancelledException
     {
         progressedCount++;
-        baos.write( data.array(), data.arrayOffset() + data.position(), data.remaining() );
+        baos.write( data.array(), data.arrayOffset() + ( (Buffer) data ).position(), data.remaining() );
         if ( cancelProgress )
         {
             throw new TransferCancelledException();
diff --git a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/RecordingTransportListener.java b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/RecordingTransportListener.java
index c6331e0..76e3585 100644
--- a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/RecordingTransportListener.java
+++ b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/RecordingTransportListener.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.file;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,6 +20,7 @@ package org.eclipse.aether.transport.file;
  */
 
 import java.io.ByteArrayOutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 
 import org.eclipse.aether.spi.connector.transport.TransportListener;
@@ -63,7 +64,7 @@ class RecordingTransportListener
         throws TransferCancelledException
     {
         progressedCount++;
-        baos.write( data.array(), data.arrayOffset() + data.position(), data.remaining() );
+        baos.write( data.array(), data.arrayOffset() + ( (Buffer) data ).position(), data.remaining() );
         if ( cancelProgress )
         {
             throw new TransferCancelledException();
diff --git a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RecordingTransportListener.java b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RecordingTransportListener.java
index d88a320..e7ca7c9 100644
--- a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RecordingTransportListener.java
+++ b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RecordingTransportListener.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.http;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,6 +20,7 @@ package org.eclipse.aether.transport.http;
  */
 
 import java.io.ByteArrayOutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 
 import org.eclipse.aether.spi.connector.transport.TransportListener;
@@ -63,7 +64,7 @@ class RecordingTransportListener
         throws TransferCancelledException
     {
         progressedCount++;
-        baos.write( data.array(), data.arrayOffset() + data.position(), data.remaining() );
+        baos.write( data.array(), data.arrayOffset() + ( (Buffer) data ).position(), data.remaining() );
         if ( cancelProgress )
         {
             throw new TransferCancelledException();
diff --git a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/RecordingTransportListener.java b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/RecordingTransportListener.java
index 7f61985..3f1859d 100644
--- a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/RecordingTransportListener.java
+++ b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/RecordingTransportListener.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.wagon;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,6 +20,7 @@ package org.eclipse.aether.transport.wagon;
  */
 
 import java.io.ByteArrayOutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 
 import org.eclipse.aether.spi.connector.transport.TransportListener;
@@ -63,7 +64,7 @@ class RecordingTransportListener
         throws TransferCancelledException
     {
         progressedCount++;
-        baos.write( data.array(), data.arrayOffset() + data.position(), data.remaining() );
+        baos.write( data.array(), data.arrayOffset() + ( (Buffer) data ).position(), data.remaining() );
         if ( cancelProgress )
         {
             throw new TransferCancelledException();