harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vasily Zakharov (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-3602) [classlib][awt][drlvm][netbeans] OffscreenImage.flush() sets interrupt flag
Date Mon, 09 Apr 2007 18:59:32 GMT
[classlib][awt][drlvm][netbeans] OffscreenImage.flush() sets interrupt flag
---------------------------------------------------------------------------

                 Key: HARMONY-3602
                 URL: https://issues.apache.org/jira/browse/HARMONY-3602
             Project: Harmony
          Issue Type: Bug
          Components: App-Oriented Bug Reports, Classlib, DRLVM
            Reporter: Vasily Zakharov


The following piece of code causes interrupt flag to be set on the current thread:

public class Test {
    public static void main(String args[]) throws Exception {
        java.awt.Image img = java.awt.Toolkit.getDefaultToolkit().createImage(Thread.currentThread().getContextClassLoader().getResource("test.gif"));
        new javax.swing.ImageIcon(img); // Loads the image.
        img.flush(); // ERROR: Sets interrupt flag.
        System.out.println(Thread.currentThread().isInterrupted() ? "FAIL" : "SUCCESS");
    }
}

Please put the attached test.gif (it's a trivial image, nothing special, but it should exist)
to current directory before running the test.

The stack of calls causing interrupt flag to be set is:
	org.apache.harmony.awt.gl.image.ImageDecoder.terminate() :128
	org.apache.harmony.awt.gl.image.DecodingImageSource.removeConsumer(ImageConsumer) :105
	org.apache.harmony.awt.gl.image.OffscreenImage.stopProduction() :426
	org.apache.harmony.awt.gl.image.OffscreenImage.flush() :133

Probably ImageDecoder.terminate() should not use Thread.currentThread() do determine a thread
to interrupt.

Output on RI:

SUCCESS

Output on Harmony/IBM VM:

SUCCESS

Output on Harmony/DRL VM:

FAIL

This looks like a clear AWT problem, however the problem only occurs on DRL VM, so probably
some issue (race condition, lack of synchronization or something like that) exists there also.

The problem was discovered while trying to run NetBeans on Harmony.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message