Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 6619 invoked from network); 8 Nov 2007 08:19:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 8 Nov 2007 08:19:14 -0000 Received: (qmail 9330 invoked by uid 500); 8 Nov 2007 08:19:02 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 9309 invoked by uid 500); 8 Nov 2007 08:19:02 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 9300 invoked by uid 99); 8 Nov 2007 08:19:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Nov 2007 00:19:02 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Nov 2007 08:19:46 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 924FD714233 for ; Thu, 8 Nov 2007 00:18:50 -0800 (PST) Message-ID: <29227551.1194509930585.JavaMail.jira@brutus> Date: Thu, 8 Nov 2007 00:18:50 -0800 (PST) From: "Igor V. Stolyarov (JIRA)" To: commits@harmony.apache.org Subject: [jira] Updated: (HARMONY-5066) [classlib][awt] Harmony crashes when LinuxCursorFactory.createCustomCursor In-Reply-To: <6753639.1194204830767.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-5066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor V. Stolyarov updated HARMONY-5066: --------------------------------------- Attachment: H-5066-RTest.patch Regression tests attached. Thanks, Igor > [classlib][awt] Harmony crashes when LinuxCursorFactory.createCustomCursor > -------------------------------------------------------------------------- > > Key: HARMONY-5066 > URL: https://issues.apache.org/jira/browse/HARMONY-5066 > Project: Harmony > Issue Type: Bug > Components: Classlib > Environment: Linux32 > Reporter: Chunrong Lai > Assignee: Alexey Petrenko > Attachments: 3100.png, H-5066-2.patch, H-5066-RTest.patch, H-5066.patch, H5066.1.patch > > > Harmony has bug in raster databuffer allocation. > Below reproducer crashes (java CursorIconTest 3100.png) > import java.io.*; > import java.awt.*; > import java.awt.image.*; > import javax.swing.*; > import java.awt.event.MouseListener; > public class CursorIconTest extends JFrame { > public CursorIconTest(String imageName) { > super("Cursor Icon Test"); > initComponent(imageName); > } > public static void main(String[] args){ > if(args.length <1) { > System.out.println("Please input a valid image name"); > System.exit(0); > } > CursorIconTest aTest = new CursorIconTest(args[0]); > aTest.setVisible(true); > } > private void initComponent(String imageName) { > Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); > setLocation(d.width / 4, d.height / 4); > setSize(d.width / 2, d.height / 2); > setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); > setResizable(false); > CursorIconPanel iconPanel = new CursorIconPanel(imageName, d.width / 2, d.height / 2); > getContentPane().add(iconPanel); > } > } > class CursorIconPanel extends JPanel implements MouseListener{ > public CursorIconPanel(String nameofImage, int width, int height) { > super(null); > imageName = nameofImage; > tempImage = null; > cursor = null; > textArea = new JTextArea("This is a cursor test!") ; > textArea.setBounds(0, 0, width, height); > add(textArea); > textArea.addMouseListener(this); > } > public void getCursorImage() { > if (tempImage == null) { > tempImage = Toolkit.getDefaultToolkit().getImage(imageName); > MediaTracker imageTracker = new MediaTracker(this); > imageTracker.addImage(tempImage, 0); > try { > imageTracker.waitForID(0); > }catch(InterruptedException e) { > e.printStackTrace(); > } > } > if (cursor == null) { > cursor = Toolkit.getDefaultToolkit().createCustomCursor(tempImage, new Point(16, 16), "TextClick right"); > } > } > public String imageName; > public Image tempImage; > public Cursor cursor; > private JTextArea textArea; > public void mouseEntered(java.awt.event.MouseEvent e) { > getCursorImage(); > textArea.setCursor(cursor); > } > public void mouseExited(java.awt.event.MouseEvent e) {} > public void mousePressed(java.awt.event.MouseEvent e) {} > public void mouseReleased(java.awt.event.MouseEvent e) {} > public void mouseClicked(java.awt.event.MouseEvent e) {} > } > with below trace > java.awt.image.RasterFormatException: dataBuffer is too small > at java.awt.image.Raster.validateDataBuffer(Raster.java:859) > at java.awt.image.Raster.(Raster.java:609) > at java.awt.image.WritableRaster.(WritableRaster.java:33) > at java.awt.image.WritableRaster.(WritableRaster.java:39) > at org.apache.harmony.awt.gl.image.OrdinaryWritableRaster.(OrdinaryWritableRaster.java:44) > at java.awt.image.Raster.createPackedRaster(Raster.java:414) > at java.awt.image.Raster.createPackedRaster(Raster.java:479) > at java.awt.image.BufferedImage.(BufferedImage.java:323) > at org.apache.harmony.awt.wtk.linux.LinuxCursorFactory.convertTo1Bit(LinuxCursorFactory.java:280) > at org.apache.harmony.awt.wtk.linux.LinuxCursorFactory.createCustomCursor(LinuxCursorFactory.java:99) > at java.awt.Toolkit.createCustomNativeCursor(Toolkit.java:1208) > at java.awt.Cursor.getNativeCursor(Cursor.java:235) > at java.awt.Component.setCursor(Component.java:2795) > at java.awt.Component.setCursor(Component.java:2771) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.