-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
1.4.0
-
x86
-
linux
Name: rmT116609 Date: 08/27/2002
FULL PRODUCT VERSION :
java version "1.4.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03)
Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode)
also
java version "1.4.1-rc"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-rc-b19)
Java HotSpot(TM) Client VM (build 1.4.1-rc-b19, mixed mode)
FULL OPERATING SYSTEM VERSION :
rpm -query glibc returns glibc-2.2.4-13
uname -a returns
Linux lnx37 2.4.7-10smp #1 SMP Thu Sep 6 17:09:31 EDT
2001 i686 unknown
cat /etc/redhat-release returns
Red Hat Linux release 7.2 (Enigma)
Additional Operating System's: Windows 2000
A DESCRIPTION OF THE PROBLEM :
I'm trying to debug some code that uses JNI, and my initial course of action was to add -Xcheck:jni to the command line.
Under runtime version 1.4.0_01 this produced the following stack trace:
FATAL ERROR in native method: Calling other JNI
functions in the scope of
Get/ReleasePrimitiveArrayCritical or
Get/ReleaseStringCritical
at
com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native
Method)
at
com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:926)
at
javax.imageio.ImageWriter.write(ImageWriter.java:591)
at
javax.imageio.ImageIO.write(ImageIO.java:1365)
at
javax.imageio.ImageIO.write(ImageIO.java:1403)
<remainder of stack trace removed>
Under 1.4.1-rc, the error still happens, but instead of a stack trace I receive the following string:
Warning: Calling other JNI functions in the scope of Get/ReleasePrimitiveArrayCritical or
Get/ReleaseStringCritical
I am assuming that this is still the same error, because I do not call any of the above mentioned critical methods in my own native code.
It would seem that the error reports from JRE 1.4.0 are more useful to me since they include a stack trace. However, since the JPEGWriter class is causing a fatal error, I cannot fully debug the behaviour of my code with the Xcheck:jni switch.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Compile source code given (JavaTest class)
2. Run with command 'java -Xcheck:jni JavaTest"
EXPECTED VERSUS ACTUAL BEHAVIOR :
I would expect to see the output "success" before the program completes.
However, under JRE 1.4.0_01-b03 I receive the following output:
$ java -Xcheck:jni JavaTest
FATAL ERROR in native method: Calling other JNI
functions in the scope of
Get/ReleasePrimitiveArrayCritical or
Get/ReleaseStringCritical
at
com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native
Method)
at
com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:926)
at
javax.imageio.ImageWriter.write(ImageWriter.java:591)
at
javax.imageio.ImageIO.write(ImageIO.java:1365)
at
javax.imageio.ImageIO.write(ImageIO.java:1403)
at JavaTest.main(JavaTest.java:22)
ERROR MESSAGES/STACK TRACES THAT OCCUR :
FATAL ERROR in native method: Calling other JNI functions in the scope of
Get/ReleasePrimitiveArrayCritical or Get/ReleaseStringCritical
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native
Method)
at
com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:926)
at javax.imageio.ImageWriter.write(ImageWriter.java:591)
at javax.imageio.ImageIO.write(ImageIO.java:1365)
at javax.imageio.ImageIO.write(ImageIO.java:1403)
at JavaTest.main(JavaTest.java:22)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
class JavaTest
{
public static void main(String [] args)
{
// create a new image
BufferedImage img = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB);
// create a file object to write to
File f = new File("output.jpeg");
// write the image to a jpeg files
try
{
ImageIO.write(img, "jpeg", f);
}
catch (IOException e)
{
e.printStackTrace();
}
// we'll never get here.
System.out.println("success");
return;
}
}
---------- END SOURCE ----------
CUSTOMER WORKAROUND :
The only workaround is to remove -Xcheck:jni from the command line, but that defeats the purpose.
(Review ID: 163655)
======================================================================
- duplicates
-
JDK-4528643 Native JPEG code makes JNI calls in scope of GetPrimitiveArrayCritical
-
- Resolved
-