Author: tallison
Date: Fri Feb 19 15:46:26 2016
New Revision: 1731257

URL: http://svn.apache.org/viewvc?rev=1731257&view=rev
Log:
POI 59030 fix NPE in XWPFTableCell's getVerticalAlignment via Prasad Babu

Added:
    poi/trunk/test-data/document/59030.docx   (with props)
Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
    
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java?rev=1731257&r1=1731256&r2=1731257&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java 
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java 
Fri Feb 19 15:46:26 2016
@@ -224,20 +224,23 @@ public class XWPFTableCell implements IB
         ctshd.setFill(rgbStr);
     }
 
-    /**
-     * Get the vertical alignment of the cell.
-     *
-     * @return the cell alignment enum value
-     */
-    public XWPFVertAlign getVerticalAlignment() {
-        XWPFVertAlign vAlign = null;
-        CTTcPr tcpr = ctTc.getTcPr();
-        if (tcpr != null) {
-            CTVerticalJc va = tcpr.getVAlign();
-            vAlign = stVertAlignTypeMap.get(va.getVal().intValue());
-        }
-        return vAlign;
-    }
+    /**
+     * Get the vertical alignment of the cell.
+     *
+     * @return the cell alignment enum value or <code>null</code>
+     * if no vertical alignment is set.
+     */
+    public XWPFVertAlign getVerticalAlignment() {
+        XWPFVertAlign vAlign = null;
+        CTTcPr tcpr = ctTc.getTcPr();
+        if (tcpr != null) {
+            CTVerticalJc va = tcpr.getVAlign();
+            if (va != null && va.getVal() != null) {
+                vAlign = stVertAlignTypeMap.get(va.getVal().intValue());
+            }
+        }
+        return vAlign;
+    }
 
     /**
      * Set the vertical alignment of the cell.

Modified: 
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java?rev=1731257&r1=1731256&r2=1731257&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java
 (original)
+++ 
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableCell.java
 Fri Feb 19 15:46:26 2016
@@ -19,8 +19,11 @@
 
 package org.apache.poi.xwpf.usermodel;
 
+import java.util.List;
+
 import junit.framework.TestCase;
 
+import org.apache.poi.xwpf.XWPFTestDataSamples;
 import org.apache.poi.xwpf.usermodel.XWPFTableCell.XWPFVertAlign;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHMerge;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;
@@ -103,4 +106,20 @@ public class TestXWPFTableCell extends T
         CTTcBorders tblBorders = tcPr.addNewTcBorders();
         CTVMerge vMerge = tcPr.addNewVMerge();
     }
+
+    public void testCellVerticalAlign() throws Exception{
+        XWPFDocument docx = 
XWPFTestDataSamples.openSampleDocument("59030.docx");
+        List<XWPFTable> tables = docx.getTables();
+        assertEquals(1, tables.size());
+
+        XWPFTable table = tables.get(0);
+
+        List<XWPFTableRow> tableRows = table.getRows();
+        assertEquals(2, tableRows.size());
+
+        assertNull(tableRows.get(0).getCell(0).getVerticalAlignment());
+        assertEquals(XWPFVertAlign.BOTTOM, 
tableRows.get(0).getCell(1).getVerticalAlignment());
+        assertEquals(XWPFVertAlign.CENTER, 
tableRows.get(1).getCell(0).getVerticalAlignment());
+        assertNull(tableRows.get(1).getCell(1).getVerticalAlignment());
+    }
 }

Added: poi/trunk/test-data/document/59030.docx
URL: 
http://svn.apache.org/viewvc/poi/trunk/test-data/document/59030.docx?rev=1731257&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/document/59030.docx
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to