ASF Bugzilla – Attachment 36453 Details for
Bug 63200
[PATCH] Fix rare NPE on getFillPaint
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
test case and fix for bug63200
bug63200.txt (text/plain), 5.27 KB, created by
Mate Borcsok
on 2019-02-22 14:42:58 UTC
(
hide
)
Description:
test case and fix for bug63200
Filename:
MIME Type:
Creator:
Mate Borcsok
Created:
2019-02-22 14:42:58 UTC
Size:
5.27 KB
patch
obsolete
>diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java >index a11b62abb..349111a98 100644 >--- a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java >+++ b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java >@@ -24,6 +24,7 @@ import java.awt.geom.Rectangle2D; > import java.io.IOException; > import java.io.InputStream; > import java.util.Arrays; >+import java.util.Optional; > > import org.apache.poi.openxml4j.exceptions.InvalidFormatException; > import org.apache.poi.openxml4j.opc.PackagePart; >@@ -46,19 +47,7 @@ import org.apache.poi.xslf.model.PropertyFetcher; > import org.apache.poi.xslf.usermodel.XSLFPropertiesDelegate.XSLFFillProperties; > import org.apache.xmlbeans.XmlCursor; > import org.apache.xmlbeans.XmlObject; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTGradientFillProperties; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTGradientStop; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTGroupShapeProperties; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeStyle; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillProperties; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrix; >-import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference; >-import org.openxmlformats.schemas.drawingml.x2006.main.STPathShadeType; >+import org.openxmlformats.schemas.drawingml.x2006.main.*; > import org.openxmlformats.schemas.presentationml.x2006.main.CTBackgroundProperties; > import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder; > import org.openxmlformats.schemas.presentationml.x2006.main.CTShape; >@@ -431,7 +420,9 @@ public abstract class XSLFShape implements Shape<XSLFShape,XSLFTextParagraph> { > protected static PaintStyle selectPaint(final CTGradientFillProperties gradFill, CTSchemeColor phClr, final XSLFTheme theme) { > > @SuppressWarnings("deprecation") >- final CTGradientStop[] gs = gradFill.getGsLst().getGsArray(); >+ final CTGradientStop[] gs = Optional.ofNullable(gradFill.getGsLst()) >+ .map(CTGradientStopList::getGsArray) >+ .orElse(new CTGradientStop[0]); > > Arrays.sort(gs, (o1, o2) -> { > int pos1 = o1.getPos(); >diff --git a/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java b/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java >index 8867d6940..262077eef 100644 >--- a/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java >+++ b/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java >@@ -61,24 +61,7 @@ import org.apache.poi.sl.usermodel.ShapeType; > import org.apache.poi.sl.usermodel.Slide; > import org.apache.poi.sl.usermodel.VerticalAlignment; > import org.apache.poi.util.IOUtils; >-import org.apache.poi.xslf.usermodel.XMLSlideShow; >-import org.apache.poi.xslf.usermodel.XSLFAutoShape; >-import org.apache.poi.xslf.usermodel.XSLFGroupShape; >-import org.apache.poi.xslf.usermodel.XSLFHyperlink; >-import org.apache.poi.xslf.usermodel.XSLFNotes; >-import org.apache.poi.xslf.usermodel.XSLFPictureData; >-import org.apache.poi.xslf.usermodel.XSLFPictureShape; >-import org.apache.poi.xslf.usermodel.XSLFRelation; >-import org.apache.poi.xslf.usermodel.XSLFShape; >-import org.apache.poi.xslf.usermodel.XSLFSlide; >-import org.apache.poi.xslf.usermodel.XSLFSlideLayout; >-import org.apache.poi.xslf.usermodel.XSLFSlideMaster; >-import org.apache.poi.xslf.usermodel.XSLFTable; >-import org.apache.poi.xslf.usermodel.XSLFTableCell; >-import org.apache.poi.xslf.usermodel.XSLFTableRow; >-import org.apache.poi.xslf.usermodel.XSLFTextBox; >-import org.apache.poi.xslf.usermodel.XSLFTextParagraph; >-import org.apache.poi.xslf.usermodel.XSLFTextRun; >+import org.apache.poi.xslf.usermodel.*; > import org.junit.Ignore; > import org.junit.Test; > import org.openxmlformats.schemas.drawingml.x2006.main.CTOuterShadowEffect; >@@ -88,6 +71,23 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTShape; > public class TestXSLFBugs { > private static final POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); > >+ @Test >+ public void bug63200() throws Exception { >+ try(XMLSlideShow ss1 = XSLFTestDataSamples.openSampleDocument("gradient-fill-in-group.pptx")) { >+ assertEquals(1, ss1.getSlides().size()); >+ >+ XSLFSlide slide = ss1.getSlides().get(0); >+ >+ assertEquals(slide.getShapes().size(), 1); >+ XSLFGroupShape group = (XSLFGroupShape)slide.getShapes().get(0); >+ assertEquals(group.getShapes().size(), 2); >+ XSLFAutoShape oval = (XSLFAutoShape)group.getShapes().get(0); >+ XSLFAutoShape arrow = (XSLFAutoShape)group.getShapes().get(1); >+ assertEquals(oval.getFillColor(), null); >+ assertEquals(arrow.getFillColor(), null); >+ } >+ } >+ > @Test > public void bug62929() throws Exception { > try(XMLSlideShow ss1 = XSLFTestDataSamples.openSampleDocument("missing-blip-fill.pptx")) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 63200
:
36452
| 36453