mirror of https://github.com/apache/poi.git
FindBugs fix
- fixed/checked various null pointer related entries - see http://findbugs.sourceforge.net/bugDescriptions.html#NP_NULL_PARAM_DEREF - ... NP_NULL_ON_SOME_PATH, NP_NULL_ON_SOME_PATH_EXCEPTION git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1568789 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c17e792ffc
commit
019f40493b
|
@ -66,10 +66,10 @@ public class FontDetails
|
||||||
public int getCharWidth( char c )
|
public int getCharWidth( char c )
|
||||||
{
|
{
|
||||||
Integer widthInteger = charWidths.get(Character.valueOf(c));
|
Integer widthInteger = charWidths.get(Character.valueOf(c));
|
||||||
if (widthInteger == null && c != 'W') {
|
if (widthInteger == null) {
|
||||||
return getCharWidth('W');
|
return 'W' == c ? 0 : getCharWidth('W');
|
||||||
}
|
}
|
||||||
return widthInteger.intValue();
|
return widthInteger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addChars( char[] characters, int[] widths )
|
public void addChars( char[] characters, int[] widths )
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class BaseNumberUtils {
|
||||||
|
|
||||||
|
|
||||||
public static double convertToDecimal(String value, int base, int maxNumberOfPlaces) throws IllegalArgumentException {
|
public static double convertToDecimal(String value, int base, int maxNumberOfPlaces) throws IllegalArgumentException {
|
||||||
if (value != null && value.length() == 0) {
|
if (value == null || value.length() == 0) {
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class DigitalCertificatePart extends PackagePart {
|
||||||
|
|
||||||
public DigitalCertificatePart() throws InvalidFormatException{
|
public DigitalCertificatePart() throws InvalidFormatException{
|
||||||
super(null, null, new ContentType(""));
|
super(null, null, new ContentType(""));
|
||||||
// Review constructor
|
// TODO: Review constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -30,6 +30,7 @@ public final class PackageDigitalSignature extends PackagePart {
|
||||||
|
|
||||||
public PackageDigitalSignature() throws InvalidFormatException {
|
public PackageDigitalSignature() throws InvalidFormatException {
|
||||||
super(null, null, new ContentType(""));
|
super(null, null, new ContentType(""));
|
||||||
|
// TODO: Review constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -71,7 +71,21 @@ import org.apache.xmlbeans.XmlException;
|
||||||
import org.apache.xmlbeans.XmlObject;
|
import org.apache.xmlbeans.XmlObject;
|
||||||
import org.apache.xmlbeans.XmlOptions;
|
import org.apache.xmlbeans.XmlOptions;
|
||||||
import org.openxmlformats.schemas.officeDocument.x2006.relationships.STRelationshipId;
|
import org.openxmlformats.schemas.officeDocument.x2006.relationships.STRelationshipId;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBookView;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBookViews;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCalcPr;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedNames;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDialogsheet;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheets;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookProtection;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCalcMode;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STSheetState;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* High level representation of a SpreadsheetML workbook. This is the first object most users
|
* High level representation of a SpreadsheetML workbook. This is the first object most users
|
||||||
|
@ -1240,6 +1254,8 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable<X
|
||||||
// YK: Mimic Excel and silently truncate sheet names longer than 31 characters
|
// YK: Mimic Excel and silently truncate sheet names longer than 31 characters
|
||||||
if(sheetname != null && sheetname.length() > 31) sheetname = sheetname.substring(0, 31);
|
if(sheetname != null && sheetname.length() > 31) sheetname = sheetname.substring(0, 31);
|
||||||
WorkbookUtil.validateSheetName(sheetname);
|
WorkbookUtil.validateSheetName(sheetname);
|
||||||
|
// findbugs fix - validateSheetName has already checked for null value
|
||||||
|
assert(sheetname != null);
|
||||||
|
|
||||||
if (containsSheet(sheetname, sheetIndex ))
|
if (containsSheet(sheetname, sheetIndex ))
|
||||||
throw new IllegalArgumentException( "The workbook already contains a sheet of this name" );
|
throw new IllegalArgumentException( "The workbook already contains a sheet of this name" );
|
||||||
|
|
|
@ -55,11 +55,13 @@ public class ColumnHelper {
|
||||||
|
|
||||||
CTCols aggregateCols = CTCols.Factory.newInstance();
|
CTCols aggregateCols = CTCols.Factory.newInstance();
|
||||||
List<CTCols> colsList = worksheet.getColsList();
|
List<CTCols> colsList = worksheet.getColsList();
|
||||||
if (colsList != null) {
|
if (colsList == null || colsList.isEmpty()) {
|
||||||
for (CTCols cols : colsList) {
|
return;
|
||||||
for (CTCol col : cols.getColList()) {
|
}
|
||||||
cloneCol(aggregateCols, col);
|
|
||||||
}
|
for (CTCols cols : colsList) {
|
||||||
|
for (CTCol col : cols.getColList()) {
|
||||||
|
cloneCol(aggregateCols, col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,11 +65,11 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyles;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyles;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.NumberingDocument;
|
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CommentsDocument;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CommentsDocument;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.DocumentDocument;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.DocumentDocument;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.EndnotesDocument;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.EndnotesDocument;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.FootnotesDocument;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.FootnotesDocument;
|
||||||
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.NumberingDocument;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STDocProtect;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STDocProtect;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.StylesDocument;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.StylesDocument;
|
||||||
|
|
||||||
|
@ -1156,7 +1156,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||||
throw new POIXMLException(e);
|
throw new POIXMLException(e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
out.close();
|
if (out != null) out.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// ignore
|
// ignore
|
||||||
}
|
}
|
||||||
|
|
|
@ -257,7 +257,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
||||||
throw new POIXMLException(e);
|
throw new POIXMLException(e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
out.close();
|
if (out != null) out.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// ignore
|
// ignore
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,6 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRunTrackChange;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRunTrackChange;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtContentRun;
|
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtRun;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtRun;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSimpleField;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSimpleField;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSmartTagRun;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSmartTagRun;
|
||||||
|
@ -472,8 +471,11 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents {
|
||||||
*/
|
*/
|
||||||
public void setBorderTop(Borders border) {
|
public void setBorderTop(Borders border) {
|
||||||
CTPBdr ct = getCTPBrd(true);
|
CTPBdr ct = getCTPBrd(true);
|
||||||
|
if (ct == null) {
|
||||||
|
throw new RuntimeException("invalid paragraph state");
|
||||||
|
}
|
||||||
|
|
||||||
CTBorder pr = (ct != null && ct.isSetTop()) ? ct.getTop() : ct.addNewTop();
|
CTBorder pr = (ct.isSetTop()) ? ct.getTop() : ct.addNewTop();
|
||||||
if (border.getValue() == Borders.NONE.getValue())
|
if (border.getValue() == Borders.NONE.getValue())
|
||||||
ct.unsetTop();
|
ct.unsetTop();
|
||||||
else
|
else
|
||||||
|
|
|
@ -160,7 +160,7 @@ public class XWPFPictureData extends POIXMLDocumentPart {
|
||||||
throw new POIXMLException(e);
|
throw new POIXMLException(e);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
is.close();
|
if (is != null) is.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new POIXMLException(e);
|
throw new POIXMLException(e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,8 +29,8 @@ import org.apache.poi.hslf.model.textproperties.ParagraphFlagsTextProp;
|
||||||
import org.apache.poi.hslf.model.textproperties.TextProp;
|
import org.apache.poi.hslf.model.textproperties.TextProp;
|
||||||
import org.apache.poi.hslf.model.textproperties.TextPropCollection;
|
import org.apache.poi.hslf.model.textproperties.TextPropCollection;
|
||||||
import org.apache.poi.hslf.record.ColorSchemeAtom;
|
import org.apache.poi.hslf.record.ColorSchemeAtom;
|
||||||
import org.apache.poi.util.POILogger;
|
|
||||||
import org.apache.poi.util.POILogFactory;
|
import org.apache.poi.util.POILogFactory;
|
||||||
|
import org.apache.poi.util.POILogger;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -325,6 +325,7 @@ public final class RichTextRun {
|
||||||
// paragraphStyle will now be defined
|
// paragraphStyle will now be defined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(paragraphStyle!=null);
|
||||||
TextProp tp = fetchOrAddTextProp(paragraphStyle, propName);
|
TextProp tp = fetchOrAddTextProp(paragraphStyle, propName);
|
||||||
tp.setValue(val);
|
tp.setValue(val);
|
||||||
}
|
}
|
||||||
|
@ -340,6 +341,7 @@ public final class RichTextRun {
|
||||||
// characterStyle will now be defined
|
// characterStyle will now be defined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(characterStyle!=null);
|
||||||
TextProp tp = fetchOrAddTextProp(characterStyle, propName);
|
TextProp tp = fetchOrAddTextProp(characterStyle, propName);
|
||||||
tp.setValue(val);
|
tp.setValue(val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,7 @@ public final class SprmUtils
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//should never happen
|
//should never happen
|
||||||
break;
|
throw new RuntimeException("Invalid sprm type");
|
||||||
}
|
}
|
||||||
LittleEndian.putShort(sprm, 0, instruction);
|
LittleEndian.putShort(sprm, 0, instruction);
|
||||||
list.add(sprm);
|
list.add(sprm);
|
||||||
|
|
|
@ -62,7 +62,7 @@ public final class SectionProperties extends SEPAbstractType
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ( !obj1.equals( obj2 ) )
|
if ( obj1 == null || obj2 == null || !obj1.equals( obj2 ) )
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue