[bug-62929] add null check for blip fill. Thanks to Mate Borcsok
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1847004 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
52f0b3b63d
commit
f28629f10d
@ -170,16 +170,25 @@ public class XSLFPictureShape extends XSLFSimpleShape
|
||||
|
||||
@SuppressWarnings("WeakerAccess")
|
||||
protected String getBlipLink(){
|
||||
String link = getBlip().getLink();
|
||||
if (link.isEmpty()) return null;
|
||||
return link;
|
||||
CTBlip blip = getBlip();
|
||||
if (blip != null) {
|
||||
String link = blip.getLink();
|
||||
if (link.isEmpty()) return null;
|
||||
return link;} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("WeakerAccess")
|
||||
protected String getBlipId(){
|
||||
String id = getBlip().getEmbed();
|
||||
if (id.isEmpty()) return null;
|
||||
return id;
|
||||
CTBlip blip = getBlip();
|
||||
if (blip != null) {
|
||||
String id = getBlip().getEmbed();
|
||||
if (id.isEmpty()) return null;
|
||||
return id;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,12 +17,7 @@
|
||||
package org.apache.poi.xslf;
|
||||
|
||||
import static org.apache.poi.POITestCase.assertContains;
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
@ -93,6 +88,25 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
|
||||
public class TestXSLFBugs {
|
||||
private static final POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
|
||||
|
||||
@Test
|
||||
public void bug62929() throws Exception {
|
||||
try(XMLSlideShow ss1 = XSLFTestDataSamples.openSampleDocument("missing-blip-fill.pptx")) {
|
||||
assertEquals(1, ss1.getSlides().size());
|
||||
|
||||
XSLFSlide slide = ss1.getSlides().get(0);
|
||||
|
||||
assertEquals(slide.getShapes().size(), 1);
|
||||
|
||||
XSLFPictureShape picture = (XSLFPictureShape)slide.getShapes().get(0);
|
||||
|
||||
assertEquals(picture.getShapeId(), 662);
|
||||
assertFalse(picture.isExternalLinkedPicture());
|
||||
assertNull(picture.getPictureData());
|
||||
assertNull(picture.getPictureLink());
|
||||
assertNull(picture.getClipping());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bug62736() throws Exception {
|
||||
XMLSlideShow ss1 = XSLFTestDataSamples.openSampleDocument("bug62736.pptx");
|
||||
|
BIN
test-data/slideshow/missing-blip-fill.pptx
Normal file
BIN
test-data/slideshow/missing-blip-fill.pptx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user