On Thu, 2 Feb 2023 08:27:55 GMT, Amit Kumar <d...@openjdk.org> wrote:

>> DeInflate.java test fails on s390x platform because size for out1 array 
>> which is responsible for storing the compressed data is insufficient. And 
>> being unable to write whole compressed data on array, on s390 whole data 
>> can't be recovered after compression. So this fix increase Array size (for 
>> s390).
>
> Amit Kumar has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   change acc to Alan comments

Alan, with these changes I've pasted the output below:

diff --git a/test/jdk/java/util/zip/DeInflate.java 
b/test/jdk/java/util/zip/DeInflate.java
index 9ad0aa5d250..eaf1fb2ba45 100644
--- a/test/jdk/java/util/zip/DeInflate.java
+++ b/test/jdk/java/util/zip/DeInflate.java
@@ -131,9 +131,14 @@ public class DeInflate {
 
         ByteArrayOutputStream baos = new ByteArrayOutputStream(len);
         while (!def.finished()) {
-            int temp_counter = def.deflate(out1);
-            m += temp_counter;
-            baos.write(out1, 0, temp_counter);
+            int remaining = out1.length - m;
+            int temp_value = def.deflate(out1, m, remaining);
+            System.out.println("compressed: " + temp_value); 
+            System.out.println("is finished: " + def.finished());
+//            if (remaining == 0) {
+//                throw new RuntimeException("out1 is small");
+//            }
+            m += temp_value;
         }
         out1 = baos.toByteArray();
         baos.reset();
@@ -142,9 +147,11 @@ public class DeInflate {
         int n = 0;
 
         while (!inf.finished()) {
-            int temp_counter = inf.inflate(out2);
-            n += temp_counter;
-            baos.write(out2, 0,  temp_counter);
+            int remaining = out2.length - n;
+            if (remaining == 0) {
+                throw new RuntimeException("out2 is small");
+            }
+            n += inf.inflate(out2, n, remaining);
         }


I'm getting this output:

level:-1, strategy: 0, dowrap: false
compressed: 524454
is finished: true
result: Failed. Execution failed: `main' threw exception: 
java.lang.ArrayIndexOutOfBoundsException: Range [524454, 524454 + 0) out of 
bounds for length 0

-------------

PR: https://git.openjdk.org/jdk/pull/12283

Reply via email to