Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NullPointerException while reading a compressed file #174

Closed
MarcoBerlot opened this issue Dec 15, 2020 · 6 comments
Closed

NullPointerException while reading a compressed file #174

MarcoBerlot opened this issue Dec 15, 2020 · 6 comments

Comments

@MarcoBerlot
Copy link

Describe the bug
Null pointer exception being thrown while attempting to read lz4 file.

java.lang.NullPointerException
at net.jpountz.lz4.LZ4FrameInputStream.read(LZ4FrameInputStream.java:295)
at java.base/java.io.FilterInputStream.read(Unknown Source)

Expected behavior
The file should be properly uncompressed and read.

To Reproduce
Unfortunately I can't provide steps to reproduce since this has happened in our production environment. Here's the function that is reading the lz4 files

private byte[] readCompressedFile(File file) throws IOException {
        LZ4FrameInputStream gis = new LZ4FrameInputStream(new FileInputStream(file));
        ByteArrayOutputStream fos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len;
        while ((len = gis.read(buffer)) != -1) {
            fos.write(buffer, 0, len);
        }
        fos.close();
        gis.close();
        return fos.toByteArray();
    }

System (please complete the following information):

  • OS: CentOS Linux release 7.8.2003 (Core)
  • Compiler: OpenJ9
  • Build System [e.g. Makefile]
  • Other hardware specs [e.g Core 2 duo...]
@odaira
Copy link
Member

odaira commented Dec 16, 2020

Thanks for reporting this. What version of lz4-java are you using?

@MarcoBerlot
Copy link
Author

Java version: 10.0.1 (build 10.0.1+10) x 86_64
openjdk 11.0.9 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

Thanks @odaira

@MarcoBerlot MarcoBerlot changed the title NullPointerException while reading the a compressed file NullPointerException while reading a compressed file Dec 16, 2020
@MarcoBerlot
Copy link
Author

One way that I was able to reproduce this is by passing an empty file. In this case nextFrameInfo(); will return early and ByteBuffer buffer won't be initialized and when it tries to read the file it will encounter a NPE.
I believe a more explicit exception might help in this case, or make sure that the buffer gets initialized also in the case of an empty file.

@odaira
Copy link
Member

odaira commented Dec 17, 2020

@MarcoBerlot These are the versions of your Java runtime, but I would like to know the version of lz4-java you are using.

Java version: 10.0.1 (build 10.0.1+10) x 86_64
openjdk 11.0.9 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

Doesn't your application include a jar file named lz4-java-x.y.z.jar, like lz4-java-1.7.1.jar? Then x.y.z is the version of lz4-java.

@MarcoBerlot
Copy link
Author

@odaira sorry, I did not read it correctly. I'm using version 1.4

@odaira
Copy link
Member

odaira commented Jun 5, 2021

Fixed by 5e23573 and fa30b17. Thank you for your help!

@odaira odaira closed this as completed Jun 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants