aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2012-11-25 11:53:50 +0000
committerYegor Kozlov <yegor@apache.org>2012-11-25 11:53:50 +0000
commitafba4c2a2d43049585e8b2b26f6369d716e5fd89 (patch)
tree3a9ce2204c0da15b0ad3d6e6a6f43b7360e1ab50
parent2599c4f9dffc2b6b0d70d1dd9eb723f3f36c73d7 (diff)
downloadpoi-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
-rw-r--r--src/documentation/content/xdocs/status.xml1
-rw-r--r--src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java5
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hslf/model/TestFreeform.java12
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());
+ }
}