diff options
author | Yegor Kozlov <yegor@apache.org> | 2012-11-25 11:53:50 +0000 |
---|---|---|
committer | Yegor Kozlov <yegor@apache.org> | 2012-11-25 11:53:50 +0000 |
commit | afba4c2a2d43049585e8b2b26f6369d716e5fd89 (patch) | |
tree | 3a9ce2204c0da15b0ad3d6e6a6f43b7360e1ab50 | |
parent | 2599c4f9dffc2b6b0d70d1dd9eb723f3f36c73d7 (diff) | |
download | poi-afba4c2a2d43049585e8b2b26f6369d716e5fd89.tar.gz poi-afba4c2a2d43049585e8b2b26f6369d716e5fd89.zip |
Bugzilla 54188 - Avoid NPE in PPT2PNG
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1413339 13f79535-47bb-0310-9956-ffa450edef68
3 files changed, 18 insertions, 0 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index f4ae431eee..cd23b88fed 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -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> diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java b/src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java index 97c818e519..10c468ced7 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java +++ b/src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java @@ -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(); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestFreeform.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestFreeform.java index 73e31e5755..6ff4870386 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestFreeform.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestFreeform.java @@ -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()); + } } |