import java.io.ByteArrayInputStream; 
import java.io.InputStream; 
import java.util.Base64; 
import javax.imageio.ImageIO; 

public class PngReaderNPEIssue { 

// PNG image test case (encoded as base64) 
private static String inputImageBase64 = "iVBORw0KGgoAAAANSUhEUgAAACA" + 
"AAAAgCAMAAABEpIrGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAA" + 
"AAA9QABBFZszM////AAAAM5lmmf/MPkyvFQAAAGFJREFUeNrckzEOwCAMA5OY/7+5NBQ" + 
"J1DphYaA3sPgkCwtEE0TVAm7BCkfMBaHgp4JvFwjPulSoITAabwHwk1a0PBB6TSBM+bc" + 
"w5ERIlkQiTEPuqTj2ydWbSUhEUgAAUWzl8yZcAgwA0mYDNbDXy5oAAA=="; 

public static void main(String[] args) throws java.io.IOException { 
// Convert test case into input stream 
byte[] inputBytes = Base64.getDecoder().decode(inputImageBase64); 
InputStream in = new ByteArrayInputStream(inputBytes); 

// Attempt to read PNG 
ImageIO.read(in); // Throws java.lang.NullPointerException! 
} 
} 