-
Bug
-
Resolution: Fixed
-
P2
-
6u29, 7u3, 8
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8018955 | 7u45 | Oleg Pekhovskiy | P2 | Closed | Fixed | b01 |
JDK-2228239 | 7u40 | Oleg Pekhovskiy | P2 | Closed | Fixed | b08 |
FULL PRODUCT VERSION :
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]
A DESCRIPTION OF THE PROBLEM :
java.lang.InternalError when first invoke "Graphics2D.drawLine" on mouseMoved. XorMode and Antialiasing enabled.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
no errors
ACTUAL -
exception on first drawLine
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.InternalError: Unable to Stroke shape (attempt to validate Pipe with invalid SurfaceData)
at sun.java2d.pipe.LoopPipe.getStrokeSpans(LoopPipe.java:282)
at sun.java2d.pipe.LoopPipe.draw(LoopPipe.java:182)
at sun.java2d.pipe.PixelToShapeConverter.drawLine(PixelToShapeConverter.java:34)
at sun.java2d.pipe.ValidatePipe.drawLine(ValidatePipe.java:44)
at sun.java2d.SunGraphics2D.drawLine(SunGraphics2D.java:2111)
at TestX$MyComp.paintLine(TestX.java:44)
at TestX$MyComp.mouseMoved(TestX.java:29)
at java.awt.Component.processMouseMotionEvent(Component.java:6335)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3285)
at java.awt.Component.processEvent(Component.java:6059)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4653)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4249)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
at java.awt.Container.dispatchEventImpl(Container.java:2083)
at java.awt.Window.dispatchEventImpl(Window.java:2482)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:648)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:621)
at java.awt.EventQueue$2.run(EventQueue.java:619)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestX
{
public static void main(String[] args)
{
JFrame f = new JFrame();
f.add(new MyComp());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500, 500);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
private static class MyComp extends JLabel implements MouseMotionListener
{
public MyComp()
{
addMouseMotionListener(this);
}
@Override
public void mouseMoved(MouseEvent e)
{
paintLine(getBackground(), (Graphics2D) getGraphics());
}
protected static void paintLine(Color bg, Graphics2D g2D)
{
g2D.setXORMode(bg);
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
int x1 = 100;
int y1 = 100;
int x2 = 200;
int y2 = 200;
try
{
g2D.drawLine(x1, y1, x2, y2);
}
catch (InternalError e)
{
e.printStackTrace();
}
}
@Override
public void mouseDragged(MouseEvent e)
{
}
}
}
---------- END SOURCE ----------
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]
A DESCRIPTION OF THE PROBLEM :
java.lang.InternalError when first invoke "Graphics2D.drawLine" on mouseMoved. XorMode and Antialiasing enabled.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
no errors
ACTUAL -
exception on first drawLine
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.InternalError: Unable to Stroke shape (attempt to validate Pipe with invalid SurfaceData)
at sun.java2d.pipe.LoopPipe.getStrokeSpans(LoopPipe.java:282)
at sun.java2d.pipe.LoopPipe.draw(LoopPipe.java:182)
at sun.java2d.pipe.PixelToShapeConverter.drawLine(PixelToShapeConverter.java:34)
at sun.java2d.pipe.ValidatePipe.drawLine(ValidatePipe.java:44)
at sun.java2d.SunGraphics2D.drawLine(SunGraphics2D.java:2111)
at TestX$MyComp.paintLine(TestX.java:44)
at TestX$MyComp.mouseMoved(TestX.java:29)
at java.awt.Component.processMouseMotionEvent(Component.java:6335)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3285)
at java.awt.Component.processEvent(Component.java:6059)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4653)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4249)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
at java.awt.Container.dispatchEventImpl(Container.java:2083)
at java.awt.Window.dispatchEventImpl(Window.java:2482)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:648)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:621)
at java.awt.EventQueue$2.run(EventQueue.java:619)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestX
{
public static void main(String[] args)
{
JFrame f = new JFrame();
f.add(new MyComp());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500, 500);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
private static class MyComp extends JLabel implements MouseMotionListener
{
public MyComp()
{
addMouseMotionListener(this);
}
@Override
public void mouseMoved(MouseEvent e)
{
paintLine(getBackground(), (Graphics2D) getGraphics());
}
protected static void paintLine(Color bg, Graphics2D g2D)
{
g2D.setXORMode(bg);
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
int x1 = 100;
int y1 = 100;
int x2 = 200;
int y2 = 200;
try
{
g2D.drawLine(x1, y1, x2, y2);
}
catch (InternalError e)
{
e.printStackTrace();
}
}
@Override
public void mouseDragged(MouseEvent e)
{
}
}
}
---------- END SOURCE ----------
- backported by
-
JDK-2228239 InternalError when drawLine with Xor and Antialiasing
-
- Closed
-
-
JDK-8018955 InternalError when drawLine with Xor and Antialiasing
-
- Closed
-