You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2016/05/08 13:28:11 UTC

svn commit: r1742816 - in /poi: site/src/documentation/content/xdocs/status.xml trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java

Author: kiwiwings
Date: Sun May  8 13:28:11 2016
New Revision: 1742816

URL: http://svn.apache.org/viewvc?rev=1742816&view=rev
Log:
#59434 - Cannot add a picture on a slide that already have an image with an hyperlink on it

Modified:
    poi/site/src/documentation/content/xdocs/status.xml
    poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java

Modified: poi/site/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/status.xml?rev=1742816&r1=1742815&r2=1742816&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/status.xml (original)
+++ poi/site/src/documentation/content/xdocs/status.xml Sun May  8 13:28:11 2016
@@ -40,6 +40,7 @@
     </devs>
 
     <release version="3.15-beta2" date="2016-07-??">
+        <action dev="PD" type="fix" fixes-bug="59434">Cannot add a picture on a slide that already have an image with an hyperlink on it</action>
         <action dev="PD" type="fix" fixes-bug="59383">SS Common performance regression: DataFormatter no longer caches formats</action>
         <action dev="PD" type="fix" fixes-bug="59327">HSLF/XSLF: Setting text direction on a table cell has no effect</action>
         <action dev="PD" type="add" fixes-bug="58648">Regression: Fix handling of whitespaces in formulas after it was slightly broken by the changes to support the intersection operator</action>

Modified: poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java?rev=1742816&r1=1742815&r2=1742816&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java Sun May  8 13:28:11 2016
@@ -359,6 +359,9 @@ public class POIXMLDocumentPart {
         String ppn = part.getPackagePart().getPartName().getName();
         try {
             for (PackageRelationship pr : packagePart.getRelationships()) {
+                if (pr.getTargetMode() == TargetMode.EXTERNAL) {
+                    continue;
+                }
                 PackagePart pp = packagePart.getRelatedPart(pr);
                 if (ppn.equals(pp.getPartName().getName())) {
                     return pr;

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java?rev=1742816&r1=1742815&r2=1742816&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java Sun May  8 13:28:11 2016
@@ -37,13 +37,15 @@ import java.util.Collection;
 
 import javax.imageio.ImageIO;
 
+import org.apache.poi.POIDataSamples;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.POIXMLDocumentPart.RelationPart;
-import org.apache.poi.sl.usermodel.PaintStyle;
+import org.apache.poi.sl.usermodel.PictureData;
 import org.apache.poi.sl.usermodel.PictureData.PictureType;
 import org.apache.poi.xslf.usermodel.DrawingParagraph;
 import org.apache.poi.xslf.usermodel.DrawingTextBody;
 import org.apache.poi.xslf.usermodel.XMLSlideShow;
+import org.apache.poi.xslf.usermodel.XSLFHyperlink;
 import org.apache.poi.xslf.usermodel.XSLFPictureData;
 import org.apache.poi.xslf.usermodel.XSLFPictureShape;
 import org.apache.poi.xslf.usermodel.XSLFRelation;
@@ -56,7 +58,8 @@ import org.junit.Test;
 
 
 public class TestXSLFBugs {
-
+    private static final POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
+    
     @Test
     public void bug51187() throws Exception {
        XMLSlideShow ss1 = XSLFTestDataSamples.openSampleDocument("51187.pptx");
@@ -416,15 +419,17 @@ public class TestXSLFBugs {
     }
 
     @Test
-    public void bug55791a() {
+    public void bug55791a() throws IOException {
         XMLSlideShow ppt = XSLFTestDataSamples.openSampleDocument("45541_Footer.pptx");
         removeAndCreateSlide(ppt);
+        ppt.close();
     }
 
     @Test
-    public void bug55791b() {
+    public void bug55791b() throws IOException {
         XMLSlideShow ppt = XSLFTestDataSamples.openSampleDocument("SampleShow.pptx");
         removeAndCreateSlide(ppt);
+        ppt.close();
     }
 
     private void removeAndCreateSlide(XMLSlideShow ppt) {
@@ -434,10 +439,37 @@ public class TestXSLFBugs {
     }
 
     @Test
-    public void blibFillAlternateContent() throws IOException  {
+    public void blibFillAlternateContent() throws IOException {
         XMLSlideShow ppt = XSLFTestDataSamples.openSampleDocument("2411-Performance_Up.pptx");
         XSLFPictureShape ps = (XSLFPictureShape)ppt.getSlides().get(4).getShapes().get(0);
         assertNotNull(ps.getPictureData());
         ppt.close();
     }
+
+    @Test
+    public void bug59434() throws IOException {
+        String url1 = "http://poi.apache.org/changes.html";
+        String url2 = "http://poi.apache.org/faq.html";
+        XMLSlideShow ppt1 = new XMLSlideShow();
+        PictureData pd1 = ppt1.addPicture(slTests.readFile("tomcat.png"), PictureType.PNG);
+        PictureData pd2 = ppt1.addPicture(slTests.readFile("santa.wmf"), PictureType.WMF);
+        XSLFSlide slide = ppt1.createSlide();
+        XSLFPictureShape ps1 = slide.createPicture(pd1);
+        ps1.setAnchor(new Rectangle2D.Double(20, 20, 100, 100));
+        XSLFHyperlink hl1 = ps1.createHyperlink();
+        hl1.linkToUrl(url1);
+        XSLFPictureShape ps2 = slide.createPicture(pd2);
+        ps2.setAnchor(new Rectangle2D.Double(120, 120, 100, 100));
+        XSLFHyperlink hl2 = ps2.createHyperlink();
+        hl2.linkToUrl(url2);
+        XMLSlideShow ppt2 = XSLFTestDataSamples.writeOutAndReadBack(ppt1);
+        ppt1.close();
+        slide = ppt2.getSlides().get(0);
+        ps1 = (XSLFPictureShape)slide.getShapes().get(0);
+        ps2 = (XSLFPictureShape)slide.getShapes().get(1);
+        assertEquals(url1, ps1.getHyperlink().getAddress());
+        assertEquals(url2, ps2.getHyperlink().getAddress());
+    
+        ppt2.close();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org