Quellcode durchsuchen

Avoid possible NPE found via CommonCrawl files

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1678811 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_13_BETA1
Dominik Stadler vor 9 Jahren
Ursprung
Commit
43710ae5f2

+ 9
- 12
src/java/org/apache/poi/hssf/usermodel/HSSFShapeFactory.java Datei anzeigen

* Factory class for producing Excel Shapes from Escher records * Factory class for producing Excel Shapes from Escher records
*/ */
public class HSSFShapeFactory { public class HSSFShapeFactory {
private final static short OBJECT_TYPE_LINE = 1;
private final static short OBJECT_TYPE_RECTANGLE = 2;
private final static short OBJECT_TYPE_OVAL = 3;
private final static short OBJECT_TYPE_ARC = 4;
private final static short OBJECT_TYPE_PICTURE = 8;
/** /**
* build shape tree from escher container * build shape tree from escher container
* @param container root escher container from which escher records must be taken * @param container root escher container from which escher records must be taken
return; return;
} }
CommonObjectDataSubRecord cmo = (CommonObjectDataSubRecord) objRecord.getSubRecords().get(0); CommonObjectDataSubRecord cmo = (CommonObjectDataSubRecord) objRecord.getSubRecords().get(0);
HSSFShape shape;
final HSSFShape shape;
switch (cmo.getObjectType()) { switch (cmo.getObjectType()) {
case CommonObjectDataSubRecord.OBJECT_TYPE_PICTURE: case CommonObjectDataSubRecord.OBJECT_TYPE_PICTURE:
shape = new HSSFPicture(container, objRecord); shape = new HSSFPicture(container, objRecord);
break; break;
case CommonObjectDataSubRecord.OBJECT_TYPE_MICROSOFT_OFFICE_DRAWING: case CommonObjectDataSubRecord.OBJECT_TYPE_MICROSOFT_OFFICE_DRAWING:
EscherOptRecord optRecord = container.getChildById(EscherOptRecord.RECORD_ID); EscherOptRecord optRecord = container.getChildById(EscherOptRecord.RECORD_ID);
EscherProperty property = optRecord.lookup(EscherProperties.GEOMETRY__VERTICES);
if (null != property) {
shape = new HSSFPolygon(container, objRecord, txtRecord);
if(optRecord == null) {
shape = new HSSFSimpleShape(container, objRecord, txtRecord);
} else { } else {
shape = new HSSFSimpleShape(container, objRecord, txtRecord);
EscherProperty property = optRecord.lookup(EscherProperties.GEOMETRY__VERTICES);
if (null != property) {
shape = new HSSFPolygon(container, objRecord, txtRecord);
} else {
shape = new HSSFSimpleShape(container, objRecord, txtRecord);
}
} }
break; break;
case CommonObjectDataSubRecord.OBJECT_TYPE_TEXT: case CommonObjectDataSubRecord.OBJECT_TYPE_TEXT:

+ 6
- 0
src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java Datei anzeigen



assertTrue(text.contains("ZIP")); assertTrue(text.contains("ZIP"));
} }

public void testNullPointerException() {
ExcelExtractor extractor = createExtractor("ar.org.apsme.www_Form%20Inscripcion%20Curso%20NO%20Socios.xls");
assertNotNull(extractor);
assertNotNull(extractor.getText());
}
} }

+ 3
- 1
src/testcases/org/apache/poi/hssf/model/TestShapes.java Datei anzeigen

package org.apache.poi.hssf.model; package org.apache.poi.hssf.model;


import junit.framework.TestCase; import junit.framework.TestCase;

import org.apache.poi.hssf.record.CommonObjectDataSubRecord; import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFComment; import org.apache.poi.hssf.usermodel.HSSFComment;
* *
* See Bug 51332 * See Bug 51332
*/ */
public void testShapeId(){
@SuppressWarnings("deprecation")
public void testShapeId(){


HSSFClientAnchor anchor = new HSSFClientAnchor(); HSSFClientAnchor anchor = new HSSFClientAnchor();
AbstractShape shape; AbstractShape shape;

BIN
test-data/spreadsheet/ar.org.apsme.www_Form%20Inscripcion%20Curso%20NO%20Socios.xls Datei anzeigen


Laden…
Abbrechen
Speichern