Bugzilla 54188 - Avoid NPE in PPT2PNG

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1413339 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yegor Kozlov 2012-11-25 11:53:50 +00:00
parent c7c321b0f1
commit 362ded1f94
3 changed files with 18 additions and 0 deletions

View File

@ -34,6 +34,7 @@
<changes>
<release version="3.9-beta1" date="2012-??-??">
<action dev="poi-developers" type="fix">54188 - Avoid NPE in PPT2PNG</action>
<action dev="poi-developers" type="fix">52628 - Replace System.err info messages with a POILogger</action>
<action dev="poi-developers" type="fix">54137 - improved performance of DataFormatter with Fractions</action>
<action dev="poi-developers" type="fix">54099 - Ensure that CTHMerge and CTTcBorders go to poi-ooxml-schemas jar</action>

View File

@ -244,6 +244,11 @@ public final class Freeform extends AutoShape {
public java.awt.Shape getOutline(){
GeneralPath path = getPath();
if(path == null) {
// return empty path if either GEOMETRY__VERTICES or GEOMETRY__SEGMENTINFO is missing, see Bugzilla 54188
return new GeneralPath();
}
Rectangle2D anchor = getAnchor2D();
Rectangle2D bounds = path.getBounds2D();
AffineTransform at = new AffineTransform();

View File

@ -71,4 +71,16 @@ public final class TestFreeform extends TestCase {
java.awt.Shape path2 = p.getOutline();
assertTrue(new Area(path1).equals(new Area(path2)));
}
/**
* Avoid NPE in Freeform.getOutline() if either GEOMETRY__VERTICES or
* GEOMETRY__SEGMENTINFO is missing, see Bugzilla 54188
*/
public void test54188() {
Freeform p = new Freeform();
GeneralPath path = (GeneralPath)p.getOutline();
GeneralPath emptyPath = new GeneralPath();
assertEquals(emptyPath.getBounds2D(), path.getBounds2D());
}
}