-
Bug
-
Resolution: Fixed
-
P3
-
8u251, 14.0.1, 16
-
b01
-
b29
-
x86_64
-
os_x
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8269459 | 18 | Joe Wang | P3 | Resolved | Fixed | b04 |
JDK-8270648 | 17.0.1 | Joe Wang | P3 | Resolved | Fixed | b03 |
ADDITIONAL SYSTEM INFORMATION :
all version
A DESCRIPTION OF THE PROBLEM :
old Version in com/sun/org/apache/bcel/internal/classfile/Utility.java
new Version in java.xml/com/sun/org/apache/bcel/internal/classfile/Utility.java
function `public static String encode(byte[] bytes, boolean compress) throws IOException {`
if compress is true.
after jdk jdk1.8.0_251
code is
```
if (compress) {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gos = new GZIPOutputStream(baos)) {
gos.write(bytes, 0, bytes.length);
bytes = baos.toByteArray();
}
}
```
gos forget to close,and `bytes = baos.toByteArray();` doesn't work .
so if I called encode and parament compress is true after jdk1.8.0_251,In doesn't work
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
String classname = Utility.encode(bytecode,true); and
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
real compressed BCEL code
ACTUAL -
result always $l$8b$I$A$A$A$A$A$A$A
---------- BEGIN SOURCE ----------
if (compress) {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gos = new GZIPOutputStream(baos)) {
gos.write(bytes, 0, bytes.length);
gos.close();
bytes = baos.toByteArray();
}
}
---------- END SOURCE ----------
FREQUENCY : always
all version
A DESCRIPTION OF THE PROBLEM :
old Version in com/sun/org/apache/bcel/internal/classfile/Utility.java
new Version in java.xml/com/sun/org/apache/bcel/internal/classfile/Utility.java
function `public static String encode(byte[] bytes, boolean compress) throws IOException {`
if compress is true.
after jdk jdk1.8.0_251
code is
```
if (compress) {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gos = new GZIPOutputStream(baos)) {
gos.write(bytes, 0, bytes.length);
bytes = baos.toByteArray();
}
}
```
gos forget to close,and `bytes = baos.toByteArray();` doesn't work .
so if I called encode and parament compress is true after jdk1.8.0_251,In doesn't work
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
String classname = Utility.encode(bytecode,true); and
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
real compressed BCEL code
ACTUAL -
result always $l$8b$I$A$A$A$A$A$A$A
---------- BEGIN SOURCE ----------
if (compress) {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gos = new GZIPOutputStream(baos)) {
gos.write(bytes, 0, bytes.length);
gos.close();
bytes = baos.toByteArray();
}
}
---------- END SOURCE ----------
FREQUENCY : always
- backported by
-
JDK-8269459 BCEL: Utility.encode forget to close
-
- Resolved
-
-
JDK-8270648 BCEL: Utility.encode forget to close
-
- Resolved
-