This is an automated email from the ASF dual-hosted git repository. lkishalmi pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new 30a8cefa5a Prevent AOBE on empty bad class files. 30a8cefa5a is described below commit 30a8cefa5a73f258b61939729e845672e66826fe Author: Laszlo Kishalmi <laszlo.kisha...@gmail.com> AuthorDate: Thu Dec 22 10:33:17 2022 -0800 Prevent AOBE on empty bad class files. --- .../lib/nbjavac/services/NBClassReader.java | 34 ++++++++++++---------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/java/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java b/java/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java index d1ca38a3c1..9bad23cc29 100644 --- a/java/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java +++ b/java/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java @@ -88,23 +88,25 @@ public class NBClassReader extends ClassReader { JavaFileObject origFile = c.classfile; try (InputStream in = origFile.openInputStream()) { byte[] data = readFile(in); - int major = (Byte.toUnsignedInt(data[6]) << 8) + Byte.toUnsignedInt(data[7]); - int maxMajor = ClassFile.Version.MAX().major; - if (maxMajor < major) { - if (log.currentSourceFile() != null) { - log.warning(0, Warnings.BigMajorVersion(origFile, major, maxMajor)); - } - data[6] = (byte) (maxMajor >> 8); - data[7] = (byte) (maxMajor & 0xFF); - byte[] dataFin = data; - c.classfile = new ForwardingJavaFileObject(origFile) { - @Override - public InputStream openInputStream() throws IOException { - return new ByteArrayInputStream(dataFin); + if (data.length > 8) { + int major = (Byte.toUnsignedInt(data[6]) << 8) + Byte.toUnsignedInt(data[7]); + int maxMajor = ClassFile.Version.MAX().major; + if (maxMajor < major) { + if (log.currentSourceFile() != null) { + log.warning(0, Warnings.BigMajorVersion(origFile, major, maxMajor)); } - }; - super.readClassFile(c); - return ; + data[6] = (byte) (maxMajor >> 8); + data[7] = (byte) (maxMajor & 0xFF); + byte[] dataFin = data; + c.classfile = new ForwardingJavaFileObject(origFile) { + @Override + public InputStream openInputStream() throws IOException { + return new ByteArrayInputStream(dataFin); + } + }; + super.readClassFile(c); + return ; + } } } catch (IOException ex) { Logger.getLogger(NBClassReader.class.getName()).log(Level.FINE, null, ex); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists