From 4c366e571aa6962755bd9d9470df2ec3fd8e2565 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <ylecaillez@forgerock.com>
Date: Wed, 09 Dec 2015 13:42:55 +0000
Subject: [PATCH] OPENDJ-2526: NegativeArraySizeException in OnDiskMergeImporter during OpenAM embedded DJ upgrade (DJ 2.6 -> 3.0)

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
index 76ff156..ad6f42b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
@@ -2656,7 +2656,7 @@
   }
 
   /** Buffer used by {@link InMemorySortedChunk} to store and sort data. */
-  private interface Buffer extends Closeable
+  interface Buffer extends Closeable
   {
     void writeInt(int position, int value);
 
@@ -2764,7 +2764,7 @@
     }
 
     /** Off-heap buffer using Unsafe memory access. */
-    private final class OffHeapBuffer implements Buffer
+    static final class OffHeapBuffer implements Buffer
     {
       private final long address;
       private final int size;
@@ -2774,7 +2774,7 @@
         @Override
         public int read() throws IOException
         {
-          return unsafe.getByte(address + position++);
+          return unsafe.getByte(address + position++) & 0xFF;
         }
       };
       private final OutputStream asOutputStream = new OutputStream()
@@ -2878,7 +2878,7 @@
       }
 
       @Override
-      public void close() throws IOException
+      public void close()
       {
         if (!closed)
         {
@@ -2888,8 +2888,8 @@
       }
     }
 
-    /** Off-heap buffer using Unsafe memory access. */
-    private final class HeapBuffer implements Buffer
+    /** Heap buffer using ByteBuffer. */
+    static final class HeapBuffer implements Buffer
     {
       private final ByteBuffer buffer;
       private final OutputStream asOutputStream = new OutputStream()

--
Gitblit v1.10.0