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 2020/05/02 18:28:39 UTC

[maven-wagon] 01/01: [WAGON-592] Wagon 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 WAGON-592
in repository https://gitbox.apache.org/repos/asf/maven-wagon.git

commit 92c0d2a858a38d9b3d0aefc0f9298d5c31c7e508
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sat May 2 20:27:35 2020 +0200

    [WAGON-592] Wagon fails when compiled on Java 9+ and run on Java 8 due to JDK API breakage
    
    Cast to Buffer to avoid java.lang.NoSuchMethodError.
    See https://github.com/mongodb/mongo-java-driver/commit/21c91bd364d38489e0bbe2e390efdb3746ee3fff
    for details.
---
 .../java/org/apache/maven/wagon/AbstractWagon.java | 24 +++++++++++----------
 .../wagon/shared/http/AbstractHttpClientWagon.java | 25 +++++++++++-----------
 2 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java b/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java
index 95ad47e..25e4a36 100644
--- a/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java
+++ b/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java
@@ -42,6 +42,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.channels.Channels;
 import java.nio.channels.ReadableByteChannel;
@@ -599,28 +600,29 @@ public abstract class AbstractWagon
             if ( read == -1 )
             {
                 // EOF, but some data has not been written yet.
-                if ( buffer.position() != 0 )
+                if ( ( (Buffer) buffer ).position() != 0 )
                 {
-                    buffer.flip();
-                    fireTransferProgress( transferEvent, buffer.array(), buffer.limit() );
-                    output.write( buffer.array(), 0, buffer.limit() );
+                    ( (Buffer) buffer ).flip();
+                    fireTransferProgress( transferEvent, buffer.array(), ( (Buffer) buffer ).limit() );
+                    output.write( buffer.array(), 0, ( (Buffer) buffer ).limit() );
+                    ( (Buffer) buffer ).clear();
                 }
 
                 break;
             }
 
-            // Prevent minichunking / fragmentation: when less than half the buffer is utilized,
+            // Prevent minichunking/fragmentation: when less than half the buffer is utilized,
             // read some more bytes before writing and firing progress.
-            if ( buffer.position() < halfBufferCapacity )
+            if ( ( (Buffer) buffer ).position() < halfBufferCapacity )
             {
                 continue;
             }
 
-            buffer.flip();
-            fireTransferProgress( transferEvent, buffer.array(), buffer.limit() );
-            output.write( buffer.array(), 0, buffer.limit() );
-            remaining -= buffer.limit();
-            buffer.clear();
+            ( (Buffer) buffer ).flip();
+            fireTransferProgress( transferEvent, buffer.array(), ( (Buffer) buffer ).limit() );
+            output.write( buffer.array(), 0, ( (Buffer) buffer ).limit() );
+            remaining -= ( (Buffer) buffer ).limit();
+            ( (Buffer) buffer ).clear();
         }
         output.flush();
     }
diff --git a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
index fc809a7..e8a9405 100644
--- a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
+++ b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
@@ -91,6 +91,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.RandomAccessFile;
+import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.channels.Channels;
 import java.nio.channels.ReadableByteChannel;
@@ -213,29 +214,29 @@ public abstract class AbstractHttpClientWagon
                     if ( read == -1 )
                     {
                         // EOF, but some data has not been written yet.
-                        if ( buffer.position() != 0 )
+                        if ( ( (Buffer) buffer ).position() != 0 )
                         {
-                            buffer.flip();
-                            fireTransferProgress( transferEvent, buffer.array(), buffer.limit() );
-                            output.write( buffer.array(), 0, buffer.limit() );
-                            buffer.clear();
+                            ( (Buffer) buffer ).flip();
+                            fireTransferProgress( transferEvent, buffer.array(), ( (Buffer) buffer ).limit() );
+                            output.write( buffer.array(), 0, ( (Buffer) buffer ).limit() );
+                            ( (Buffer) buffer ).clear();
                         }
 
                         break;
                     }
 
-                    // Prevent minichunking / fragmentation: when less than half the buffer is utilized,
+                    // Prevent minichunking/fragmentation: when less than half the buffer is utilized,
                     // read some more bytes before writing and firing progress.
-                    if ( buffer.position() < halfBufferCapacity )
+                    if ( ( (Buffer) buffer ).position() < halfBufferCapacity )
                     {
                         continue;
                     }
 
-                    buffer.flip();
-                    fireTransferProgress( transferEvent, buffer.array(), buffer.limit() );
-                    output.write( buffer.array(), 0, buffer.limit() );
-                    remaining -= buffer.limit();
-                    buffer.clear();
+                    ( (Buffer) buffer ).flip();
+                    fireTransferProgress( transferEvent, buffer.array(), ( (Buffer) buffer ).limit() );
+                    output.write( buffer.array(), 0, ( (Buffer) buffer ).limit() );
+                    remaining -= ( (Buffer) buffer ).limit();
+                    ( (Buffer) buffer ).clear();
 
                 }
                 output.flush();