diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java index 5aa11f1de..f38ea9701 100644 --- a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java +++ b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java @@ -175,8 +175,15 @@ public abstract class XSLFTextShape extends XSLFSimpleShape * @return created paragraph run */ public XSLFTextParagraph addNewTextParagraph() { - CTTextBody txBody = getTextBody(true); - CTTextParagraph p = txBody.addNewP(); + CTTextBody txBody = getTextBody(false); + CTTextParagraph p; + if (txBody == null) { + txBody = getTextBody(true); + p = txBody.getPArray(0); + p.removeR(0); + } else { + p = txBody.addNewP(); + } XSLFTextParagraph paragraph = new XSLFTextParagraph(p, this); _paragraphs.add(paragraph); return paragraph; diff --git a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java index 525f55ef7..798dc472a 100644 --- a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java +++ b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java @@ -194,7 +194,8 @@ public class TestXSLFAutoShape { assertEquals(1000, p.getXmlObject().getPPr().getLnSpc().getSpcPts().getVal()); assertFalse(p.getXmlObject().getPPr().getLnSpc().isSetSpcPct()); - assertFalse(p.getXmlObject().getPPr().isSetAlgn()); + // align is set in autoshape prototype + assertTrue(p.getXmlObject().getPPr().isSetAlgn()); assertEquals(TextAlign.LEFT, p.getTextAlign()); p.setTextAlign(TextAlign.LEFT); assertTrue(p.getXmlObject().getPPr().isSetAlgn());