Browse Source

Try to avoid one NPE that popped up in commoncrawl-corpus tests

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1828375 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_4_0_0_FINAL
Dominik Stadler 6 years ago
parent
commit
4b7d19bcfe

+ 1
- 1
src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java View File

@@ -66,7 +66,7 @@ public class XSLFFileHandler extends SlideShowHandler {
@Override
@Test
public void test() throws Exception {
File file = new File("test-data/slideshow/ae.ac.uaeu.faculty_nafaachbili_GeomLec1.pptx");
File file = new File("test-data/slideshow/ca.ubc.cs.people_~emhill_presentations_HowWeRefactor.pptx");
try (InputStream stream = new FileInputStream(file)) {
handleFile(stream, file.getPath());
}

+ 10
- 2
src/java/org/apache/poi/sl/draw/DrawShape.java View File

@@ -66,7 +66,15 @@ public class DrawShape implements Drawable {
if (tx == null) {
tx = new AffineTransform();
}
final Rectangle2D anchor = tx.createTransformedShape(ps.getAnchor()).getBounds2D();

// we saw one document failing here, probably the format is slightly broken, but
// maybe better to try to handle it more gracefully
java.awt.Shape transformedShape = tx.createTransformedShape(ps.getAnchor());
if(transformedShape == null) {
return;
}

final Rectangle2D anchor = transformedShape.getBounds2D();

char cmds[] = isHSLF ? new char[]{ 'h','v','r' } : new char[]{ 'r','h','v' };
for (char ch : cmds) {
@@ -184,7 +192,7 @@ public class DrawShape implements Drawable {
}

AffineTransform tx = (AffineTransform)graphics.getRenderingHint(Drawable.GROUP_TRANSFORM);
if(tx != null && !tx.isIdentity()) {
if(tx != null && !tx.isIdentity() && tx.createTransformedShape(anchor) != null) {
anchor = tx.createTransformedShape(anchor).getBounds2D();
}
return anchor;

+ 3
- 0
src/java/org/apache/poi/sl/draw/DrawSimpleShape.java View File

@@ -405,6 +405,9 @@ public class DrawSimpleShape extends DrawShape {
}

Rectangle2D anchor = getAnchor(graphics, sh);
if(anchor == null) {
return lst;
}
for (Path p : geom) {

double w = p.getW(), h = p.getH(), scaleX = Units.toPoints(1), scaleY = scaleX;

+ 4
- 0
src/java/org/apache/poi/sl/draw/DrawTextShape.java View File

@@ -45,6 +45,10 @@ public class DrawTextShape extends DrawSimpleShape {
TextShape<?,?> s = getShape();
Rectangle2D anchor = DrawShape.getAnchor(graphics, s);
if(anchor == null) {
return;
}

Insets2D insets = s.getInsets();
double x = anchor.getX() + insets.left;
double y = anchor.getY();

BIN
test-data/slideshow/ca.ubc.cs.people_~emhill_presentations_HowWeRefactor.pptx View File


Loading…
Cancel
Save