Buggy code:
public class CGroup { protected long uuid = 0L ; protected long puid = 0L ; protected long cuid = 0L ; protected Polygon points = new Polygon ( ) ; private GeneralPath pathReferenceShadow ; protected double scaleX = 1.0 ; protected double scaleY = 1.0 ; protected double rotation = 0.0 ; protected double groupArea = 0.0 ; protected LongArraySet childGroups = new LongArraySet ( ) ; protected LongArraySet childStrokes = new LongArraySet ( ) ; protected boolean isDeleted = false ; protected LongArraySet childArrows = new LongArraySet ( ) ; protected String text = "" ; private boolean textSet = false ; protected boolean isPermanent = false ; protected boolean finished = false ; protected static Logger logger = Logger . getLogger ( CGroup . class . getName ( ) ) ; protected int networkLoadCommand = NetworkCommand . GROUP_LOAD ; public CGroup ( long uuid , long cuid , long puid , boolean isPerm ) { } public CGroup ( long uuid , long cuid , long puid ) { } public CGroup ( long uuid , long cuid ) { } public byte [ ] getHashCode ( ) { } public boolean isPermanent ( ) { } public void setPermanent ( boolean perm ) { } public void setText ( String t ) { } public void addPoint ( int x , int y ) { } public void move ( int x , int y ) { } public GeneralPath getPathReference ( ) { } public Polygon getRawPolygon ( ) { } public double getArea ( ) { } public void setParentUUID ( long u ) { } public boolean hasChildGroup ( long childuuid ) { } public long getParentUUID ( ) { } public void addChildArrow ( long uid ) { } public void deleteChildArrow ( long uid ) { } public long [ ] getChildArrows ( ) { } public void setChildStrokes ( long [ ] bglist ) { } public void setChildGroups ( long [ ] gplist ) { } public void setChildArrows ( long [ ] arlist ) { } public long getCanvasUUID ( ) { } public void setCanvasUUID ( long cuid ) { } public void addChildStroke ( long u ) { } public void addChildGroup ( long grpUUID , int x , int y ) { } public void deleteChildStroke ( long u ) { } public long [ ] getChildStrokes ( ) { } public void deleteChildGroup ( long u ) { } public long [ ] getChildGroups ( ) { } public boolean isFinished ( ) { } public void setChildrenColor ( Color col ) { } public Point getPosition ( ) { } public void finish ( ) { } public CalicoPacket [ ] getParentingUpdatePackets ( ) { } public CalicoPacket notifyOfChildItems ( ) { } public void drop ( ) { } public boolean containsPoint ( int x , int y ) { } public boolean containsShape ( Shape shape ) { if ( shape == null ) return false ; Polygon polygon = Geometry . getPolyFromPath ( shape . getPathIterator ( null ) ) ; GeneralPath containerGroup = getPathReference ( ) ; if ( containerGroup == null ) return false ; for ( int i = 0 ; i < ( polygon . npoints ) ; i ++ ) { <START_BUG> if ( ! ( containerGroup . contains ( new Point ( polygon . xpoints [ i ] , polygon . ypoints [ i ] ) ) ) ) { <END_BUG> return false ; } } return true ; } public void delete ( ) { } public void delete ( boolean recurse ) { } public void recheckParentAfterMove ( ) { } public void recheckParentAfterMove ( boolean b ) { } public void recheckParentAfterMove ( int x , int y ) { } public void recheckParentAfterMove ( int x , int y , boolean sendPackets ) { } public long calculateParent ( int x , int y ) { } public boolean canParentChild ( long child , int x , int y ) { } public CalicoPacket [ ] getUpdatePackets ( long uuid , long cuid , long puid , int dx , int dy , boolean captureChildren ) { } public CalicoPacket [ ] getUpdatePackets ( boolean captureChildren ) { } public int compareTo ( CGroup grp ) { } public void calculateParenting ( boolean includeStrokes , int x , int y ) { } public void render ( Graphics2D g , boolean showChildren ) { } public void render ( Graphics2D g ) { } public void setPolygon ( Polygon p ) { } private Rectangle getTextBounds ( String t ) { } public void clearChildGroups ( ) { } public void clearChildStrokes ( ) { } public void clearChildArrows ( ) { } public Properties toProperties ( ) { } public static CGroup getGroup ( long uuid ) { } public Rectangle getBoundsOfObjects ( long [ ] children ) { } public String getText ( ) { } public Rectangle getBoundsOfObjects ( Rectangle [ ] objects ) { } public Rectangle getBoundsOfContents ( ) { } public void shrinkToContents ( ) { } public void setShapeToRoundedRectangle ( Rectangle newBounds ) { } public void setShapeToRoundedRectangle ( Rectangle newBounds , int padding ) { } public void printBounds ( ) { } private void printBounds ( String id , Rectangle bounds ) { } private void applyAffineTransform ( ) { } public PAffineTransform getPTransform ( ) { } public Point2D getMidPoint ( ) { } public void rotate ( double radians ) { } public void rotate ( double radians , Point2D pivotPoint ) { } public void primative_rotate ( double actualRotation ) { } public void scale ( double scaleX , double scaleY ) { } public void scale ( double scaleX , double scaleY , Point2D pivotPoint ) { } public void primative_scale ( double scaleX , double scaleY ) { } public void unparentAllChildren ( ) { }

Fix:
if ( ! ( points . contains ( new Point ( polygon . xpoints [ i ] , polygon . ypoints [ i ] ) ) ) ) {