Graphics.copyArea bug?

Hello,

I have a problem when using copyArea to scroll an image with a negative dx value (that is, scroll an image to the left) with an opaque picture format.

Here is a simple test I performed in a JFrame:


public class TestFrame extends javax.swing.JFrame
{

    private BufferedImage buffer = null;
    /**
     * Creates new form TestFrame
     */
    public TestFrame()
    {
        try
        {
            BufferedImage img = ImageIO.read(new File("/home/lauwenmark/tmp/test.jpg"));
            this.buffer = new BufferedImage(1600, 1200, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = this.buffer.createGraphics();
            g2d.drawImage(img, 0, 0, this);
            g2d.dispose();
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
            this.buffer = new BufferedImage(1600, 1200, BufferedImage.TYPE_INT_RGB);
        }
    }

    @Override
    public void paint(Graphics g)
    {
        Graphics2D g2d = (Graphics2D)g;
        super.paint(g);
        g2d.drawImage(this.buffer, 0, 0, this);
    }

And I scroll using this:


        Graphics2D g2d = buffer.createGraphics();
        g2d.copyArea(64, 0, this.buffer.getWidth()-64, this.buffer.getHeight(), -64, 0);
        g2d.dispose();
        this.repaint();

When this.buffer is of TYPE_INT_ARGB, it works as expected. However, when using TYPE_INT_RGB, it doesn’t and ends up corrupting the display like this:


http://img705.imageshack.us/img705/8176/cran5.png

Uploaded with ImageShack.us

Where am I doing it wrong? Or is it a bug in copyArea?

Question has already gotten answers here:

https://forums.oracle.com/forums/thread.jspa?threadID=2334244