DefaultDrawing.draw(Graphics2D) method is broken: if the passed in Graphics2D object doesn't have clip region set, method throws NullPointerException. Other method DefaultDrawing.draw(Graphics2D, Collection<Figure>) checks if Graphics2D.getClipBounds() == null, but DefaultDrawing.draw(Graphics2D) doesn't which results in NullPointerException at line 55 in DefaultDrawing.java: f.getDrawingArea().intersects(clipRect) -> clipRect cannot be null.