Hi all I think this is non-bug difference.
If successor of CubicCurve2D returns null instead of bounds then Harmony throws NPE in contains() method while RI doesn't. It seems like RI doesn't use getBounds2D() to implement contains() method while Harmony does. I see three possibilities 1. Exclude using of getBounds2D() from contains(). In this case algorithm efficiency will slow down because it's part of optimization. 2. Add at contains() method an additional bounds calculation. In this case we will get strange code duplication. 3. Stay as non-bug difference. It's very strange situation if shape returns null bounds but such shapes are drawn well (run the test). Comments? 2006/9/22, Denis Kishenko (JIRA) <[EMAIL PROTECTED]>:
[classlib][awt] Successor of CubicCurve2D throws NPE in contains() if getBounds2D() returns null ------------------------------------------------------------------------------------------------- Key: HARMONY-1538 URL: http://issues.apache.org/jira/browse/HARMONY-1538 Project: Harmony Issue Type: Bug Components: Classlib Reporter: Denis Kishenko If successor of CubicCurve2D returns null instead of bounds then Harmony throws NPE while RI doesn't. Harmony use shape bounds getBounds2D() to implement contains() and intersects() methods but It seems like RI doesn't use bounds for this. ============== Test.java ================= import java.awt.Frame; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.*; public class Test { static public void main(String[] args) { final CubicCurve2DImpl obj = new CubicCurve2DImpl(100, 100, 200, 200, 200, 100, 100, 200); Frame f = new Frame("Test") { public void paint(Graphics g) { ((Graphics2D)g).draw(obj); } }; f.setSize(600, 400); f.show(); System.out.println("obj.contains="+obj.contains(0, 0)); } } class CubicCurve2DImpl extends java.awt.geom.CubicCurve2D.Double { public CubicCurve2DImpl(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { super(x1, y1, x2, y2, x3, y3, x4, y4); } public Rectangle2D getBounds2D() { return null; } } ========= RI Output ========= obj.contains=false ======== Harmony output ===== java.lang.NullPointerException at org.apache.harmony.awt.gl.Crossing.crossShape(Crossing.java:506) at java.awt.geom.CubicCurve2D.contains(CubicCurve2D.java:537) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
-- Denis M. Kishenko Intel Middleware Products Division --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]