On Thu, 17 Jul 2008, Bill Janssen wrote:

Thanks, Andi.

Unfortunately, I've already fixed the Java code so that this is no
longer thrown.  However, maybe I can put together a little test case
for you.

Remember that IllegalArgumentException is an "unchecked" exception,
that can be thrown at any time by any code.

Yes, I know, but it's an exception nonetheless that JNI's ExceptionOccurred() method is telling me about and that fact triggers me to, in turn, throw a C++ exception. The problem is not with your error but with the fact that the C++ exception I throw because of it is not caught.

Andi..


Bill


On Thu, 17 Jul 2008, Bill Janssen wrote:

Exception in thread "main" java.lang.IllegalArgumentException: Unknown image 
type 0

And no stacktrace ?

Yes, I have a stacktrace.  (Or had -- I think I've deleted it.)
What's interesting in it?  I'm trying to create a BufferedImage from
another BufferedImage, read in using ImageIO.read().  The constructor
for BufferedImage is raising this exception.

Exception in thread "main" java.lang.IllegalArgumentException: Unknown image 
type 0
        at java.awt.image.BufferedImage.<init>(BufferedImage.java:490)

The code that it's objecting to is this:

 BufferedImage newImg = new BufferedImage((int)(scl*width), (int)(scl*height), 
oldImg.getType());

Ok, so we've determined that the original error is a user error.
Now, it'd be interesting to see why the JCC-generated code is not catching
the exception as expected and reporting it.

Every generated call into Java is supposed to be surrounded by an INT_CALL()
or OBJ_CALL() macro (defined in macros.h) that expands into a try/catch C++
construct converting the C++ exception into a Python one.

A gdb stacktrace (with symbols) should prove most useful.

Andi..



_______________________________________________
pylucene-dev mailing list
pylucene-dev@osafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to