You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jo...@apache.org on 2008/05/15 19:49:23 UTC
svn commit: r656757 - in /poi/trunk/src:
documentation/content/xdocs/changes.xml
documentation/content/xdocs/status.xml
scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
Author: josh
Date: Thu May 15 10:49:23 2008
New Revision: 656757
URL: http://svn.apache.org/viewvc?rev=656757&view=rev
Log:
bug 45000 - Fixed NPE in ListLevel when numberText is null
Modified:
poi/trunk/src/documentation/content/xdocs/changes.xml
poi/trunk/src/documentation/content/xdocs/status.xml
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
Modified: poi/trunk/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/changes.xml?rev=656757&r1=656756&r2=656757&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/changes.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/changes.xml Thu May 15 10:49:23 2008
@@ -37,6 +37,7 @@
<!-- Don't forget to update status.xml too! -->
<release version="3.1-beta2" date="2008-05-??">
+ <action dev="POI-DEVELOPERS" type="fix">45000 - Fixed NPE in ListLevel when numberText is null</action>
<action dev="POI-DEVELOPERS" type="fix">44985 - Properly update TextSpecInfoAtom when the parent text is changed</action>
<action dev="POI-DEVELOPERS" type="fix">41187 - fixed HSSFSheet to properly read xls files without ROW records</action>
<action dev="POI-DEVELOPERS" type="fix">44950 - fixed HSSFFormulaEvaluator.evaluateInCell() and Area3DEval.getValue() also added validation for number of elements in AreaEvals</action>
Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=656757&r1=656756&r2=656757&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Thu May 15 10:49:23 2008
@@ -34,6 +34,7 @@
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.1-beta2" date="2008-05-??">
+ <action dev="POI-DEVELOPERS" type="fix">45000 - Fixed NPE in ListLevel when numberText is null</action>
<action dev="POI-DEVELOPERS" type="fix">44985 - Properly update TextSpecInfoAtom when the parent text is changed</action>
<action dev="POI-DEVELOPERS" type="fix">41187 - fixed HSSFSheet to properly read xls files without ROW records</action>
<action dev="POI-DEVELOPERS" type="fix">44950 - fixed HSSFFormulaEvaluator.evaluateInCell() and Area3DEval.getValue() also added validation for number of elements in AreaEvals</action>
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java?rev=656757&r1=656756&r2=656757&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java Thu May 15 10:49:23 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -16,22 +15,20 @@
limitations under the License.
==================================================================== */
-
package org.apache.poi.hwpf.model;
+import java.util.Arrays;
+
import org.apache.poi.util.BitField;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hwpf.usermodel.CharacterProperties;
-import org.apache.poi.hwpf.usermodel.ParagraphProperties;
-
-import org.apache.poi.hwpf.sprm.ParagraphSprmCompressor;
-import org.apache.poi.hwpf.sprm.CharacterSprmCompressor;
-
-import java.util.Arrays;
-
-public class ListLevel
+/**
+ *
+ */
+public final class ListLevel
{
+ private static final int RGBXCH_NUMS_SIZE = 9;
+
private int _iStartAt;
private byte _nfc;
private byte _info;
@@ -70,7 +67,7 @@
_grpprlPapx = new byte[0];
_grpprlChpx = new byte[0];
_numberText = new char[0];
- _rgbxchNums = new byte[9];
+ _rgbxchNums = new byte[RGBXCH_NUMS_SIZE];
if (numbered)
{
@@ -90,12 +87,11 @@
_nfc = buf[offset++];
_info = buf[offset++];
- _rgbxchNums = new byte[9];
- for (int x = 0; x < 9; x++)
- {
- _rgbxchNums[x] = buf[offset++];
- }
- _ixchFollow = buf[offset++];
+ _rgbxchNums = new byte[RGBXCH_NUMS_SIZE];
+ System.arraycopy(buf, offset, _rgbxchNums, 0, RGBXCH_NUMS_SIZE);
+ offset += RGBXCH_NUMS_SIZE;
+
+ _ixchFollow = buf[offset++];
_dxaSpace = LittleEndian.getInt(buf, offset);
offset += LittleEndian.INT_SIZE;
_dxaIndent = LittleEndian.getInt(buf, offset);
@@ -207,8 +203,8 @@
offset += LittleEndian.INT_SIZE;
buf[offset++] = _nfc;
buf[offset++] = _info;
- System.arraycopy(_rgbxchNums, 0, buf, offset, _rgbxchNums.length);
- offset += _rgbxchNums.length;
+ System.arraycopy(_rgbxchNums, 0, buf, offset, RGBXCH_NUMS_SIZE);
+ offset += RGBXCH_NUMS_SIZE;
buf[offset++] = _ixchFollow;
LittleEndian.putInt(buf, offset, _dxaSpace);
offset += LittleEndian.INT_SIZE;
@@ -225,23 +221,33 @@
System.arraycopy(_grpprlPapx, 0, buf, offset, _cbGrpprlPapx);
offset += _cbGrpprlPapx;
- LittleEndian.putShort(buf, offset, (short)_numberText.length);
- offset += LittleEndian.SHORT_SIZE;
- for (int x = 0; x < _numberText.length; x++)
- {
- LittleEndian.putShort(buf, offset, (short)_numberText[x]);
+ if (_numberText == null) {
+ // TODO - write junit to test this flow
+ LittleEndian.putUShort(buf, offset, 0);
+ } else {
+ LittleEndian.putUShort(buf, offset, _numberText.length);
offset += LittleEndian.SHORT_SIZE;
+ for (int x = 0; x < _numberText.length; x++)
+ {
+ LittleEndian.putUShort(buf, offset, _numberText[x]);
+ offset += LittleEndian.SHORT_SIZE;
+ }
}
return buf;
}
public int getSizeInBytes()
{
- if (_numberText!=null)
- {
- return 28 + _cbGrpprlChpx + _cbGrpprlPapx + (_numberText.length * LittleEndian.SHORT_SIZE) + 2;
- } else {
- return 28 + _cbGrpprlChpx + _cbGrpprlPapx + 2;
- }
+ int result =
+ 6 // int byte byte
+ + RGBXCH_NUMS_SIZE
+ + 13 // byte int int byte byte short
+ + _cbGrpprlChpx
+ + _cbGrpprlPapx
+ + 2; // numberText length
+ if (_numberText != null) {
+ result += _numberText.length * LittleEndian.SHORT_SIZE;
+ }
+ return result;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org