sonar fixes
Very interesting was the exception swallowing in PackagePropertiesPart. When it was properly thrown, it already led to various errors in the junits test - I've fixed the handling for at least the ones which are in our test set git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1706169 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d81547befd
commit
2de9d527b4
@ -163,7 +163,7 @@ public class SVSheetTable extends JTable {
|
||||
Row row = sheet.getRow(i - sheet.getFirstRowNum());
|
||||
if (row != null) {
|
||||
short h = row.getHeight();
|
||||
int height = Math.round(Math.max(1, h / (res / 70 * 20) + 3));
|
||||
int height = (int)Math.round(Math.max(1., ((double)h) / (((double)res) / 70. * 20.) + 3.));
|
||||
System.out.printf("%d: %d (%d @ %d)%n", i, height, h, res);
|
||||
setRowHeight(i, height);
|
||||
}
|
||||
|
@ -19,10 +19,10 @@ package org.apache.poi.xssf.usermodel.examples;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.openxml4j.opc.PackagePart;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
|
||||
import org.apache.poi.hwpf.HWPFDocument;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
@ -24,9 +24,9 @@ import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.apache.poi.extractor.ExtractorFactory;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor;
|
||||
import org.apache.poi.xslf.usermodel.XMLSlideShow;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
import org.junit.Test;
|
||||
|
||||
public class XSLFFileHandler extends SlideShowHandler {
|
||||
|
@ -27,7 +27,7 @@ import org.apache.poi.util.RecordFormatException;
|
||||
* Escher format. We don't attempt to understand the contents, since
|
||||
* they will be in the parent's format, not Escher format.
|
||||
*/
|
||||
public class EscherTextboxRecord extends EscherRecord implements Cloneable {
|
||||
public final class EscherTextboxRecord extends EscherRecord implements Cloneable {
|
||||
public static final short RECORD_ID = (short)0xF00D;
|
||||
public static final String RECORD_DESCRIPTION = "msofbtClientTextbox";
|
||||
|
||||
|
@ -318,6 +318,38 @@ public class Section
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + id;
|
||||
result = prime * result + length;
|
||||
result = prime * result + offset;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
PropertyListEntry other = (PropertyListEntry) obj;
|
||||
if (id != other.id)
|
||||
return false;
|
||||
if (length != other.length)
|
||||
return false;
|
||||
if (offset != other.offset)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String toString()
|
||||
{
|
||||
final StringBuffer b = new StringBuffer();
|
||||
|
@ -164,7 +164,7 @@ public final class InternalSheet {
|
||||
int dimsloc = -1;
|
||||
|
||||
if (rs.peekNextSid() != BOFRecord.sid) {
|
||||
throw new RuntimeException("BOF record expected");
|
||||
throw new RecordFormatException("BOF record expected");
|
||||
}
|
||||
|
||||
BOFRecord bof = (BOFRecord) rs.getNext();
|
||||
@ -210,7 +210,7 @@ public final class InternalSheet {
|
||||
if (RecordOrderer.isRowBlockRecord(recSid)) {
|
||||
//only add the aggregate once
|
||||
if (rra != null) {
|
||||
throw new RuntimeException("row/cell records found in the wrong place");
|
||||
throw new RecordFormatException("row/cell records found in the wrong place");
|
||||
}
|
||||
RowBlocksReader rbr = new RowBlocksReader(rs);
|
||||
_mergedCellsTable.addRecords(rbr.getLooseMergedCells());
|
||||
@ -332,7 +332,7 @@ public final class InternalSheet {
|
||||
records.add(rec);
|
||||
}
|
||||
if (windowTwo == null) {
|
||||
throw new RuntimeException("WINDOW2 was not found");
|
||||
throw new RecordFormatException("WINDOW2 was not found");
|
||||
}
|
||||
if (_dimensions == null) {
|
||||
// Excel seems to always write the DIMENSION record, but tolerates when it is not present
|
||||
@ -393,7 +393,7 @@ public final class InternalSheet {
|
||||
try {
|
||||
_destList.add((Record)r.clone());
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new RuntimeException(e);
|
||||
throw new RecordFormatException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -423,7 +423,7 @@ public final class InternalSheet {
|
||||
Record rec = (Record) ((Record) rb).clone();
|
||||
clonedRecords.add(rec);
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new RuntimeException(e);
|
||||
throw new RecordFormatException(e);
|
||||
}
|
||||
}
|
||||
return createSheet(new RecordStream(clonedRecords, 0));
|
||||
|
@ -152,5 +152,5 @@ public abstract class CFHeaderBase extends StandardRecord implements Cloneable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract CFHeaderBase clone();
|
||||
public abstract CFHeaderBase clone(); // NOSONAR
|
||||
}
|
||||
|
@ -41,10 +41,10 @@ public final class FilePassRecord extends StandardRecord implements Cloneable {
|
||||
void serialize(LittleEndianOutput out);
|
||||
int getDataSize();
|
||||
void appendToString(StringBuffer buffer);
|
||||
KeyData clone();
|
||||
KeyData clone(); // NOSONAR
|
||||
}
|
||||
|
||||
public static class Rc4KeyData implements KeyData {
|
||||
public static final class Rc4KeyData implements KeyData, Cloneable {
|
||||
private static final int ENCRYPTION_OTHER_RC4 = 1;
|
||||
private static final int ENCRYPTION_OTHER_CAPI_2 = 2;
|
||||
private static final int ENCRYPTION_OTHER_CAPI_3 = 3;
|
||||
@ -135,7 +135,7 @@ public final class FilePassRecord extends StandardRecord implements Cloneable {
|
||||
}
|
||||
}
|
||||
|
||||
public static class XorKeyData implements KeyData {
|
||||
public static final class XorKeyData implements KeyData, Cloneable {
|
||||
/**
|
||||
* key (2 bytes): An unsigned integer that specifies the obfuscation key.
|
||||
* See [MS-OFFCRYPTO], 2.3.6.2 section, the first step of initializing XOR
|
||||
|
@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
|
||||
* @author Andrew C. Oliver (acoliver at apache dot org)
|
||||
* @author Jason Height (jheight at chariot dot net dot au)
|
||||
*/
|
||||
public class IndexRecord extends StandardRecord implements Cloneable {
|
||||
public final class IndexRecord extends StandardRecord implements Cloneable {
|
||||
public final static short sid = 0x020B;
|
||||
private int field_2_first_row; // first row on the sheet
|
||||
private int field_3_last_row_add1; // last row
|
||||
|
@ -28,6 +28,7 @@ import org.apache.poi.hssf.record.CFRule12Record;
|
||||
import org.apache.poi.hssf.record.CFRuleBase;
|
||||
import org.apache.poi.hssf.record.CFRuleRecord;
|
||||
import org.apache.poi.hssf.record.Record;
|
||||
import org.apache.poi.hssf.record.RecordFormatException;
|
||||
import org.apache.poi.ss.formula.FormulaShifter;
|
||||
import org.apache.poi.ss.formula.ptg.AreaErrPtg;
|
||||
import org.apache.poi.ss.formula.ptg.AreaPtg;
|
||||
@ -68,7 +69,7 @@ public final class CFRecordsAggregate extends RecordAggregate {
|
||||
+ " this file will cause problems with old Excel versions");
|
||||
}
|
||||
if (pRules.length != pHeader.getNumberOfConditionalFormats()) {
|
||||
throw new RuntimeException("Mismatch number of rules");
|
||||
throw new RecordFormatException("Mismatch number of rules");
|
||||
}
|
||||
header = pHeader;
|
||||
rules = new ArrayList<CFRuleBase>(pRules.length);
|
||||
@ -119,9 +120,9 @@ public final class CFRecordsAggregate extends RecordAggregate {
|
||||
public CFRecordsAggregate cloneCFAggregate() {
|
||||
CFRuleBase[] newRecs = new CFRuleBase[rules.size()];
|
||||
for (int i = 0; i < newRecs.length; i++) {
|
||||
newRecs[i] = (CFRuleRecord) getRule(i).clone();
|
||||
newRecs[i] = getRule(i).clone();
|
||||
}
|
||||
return new CFRecordsAggregate((CFHeaderBase)header.clone(), newRecs);
|
||||
return new CFRecordsAggregate(header.clone(), newRecs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -80,7 +80,7 @@ public abstract class BlockStore {
|
||||
protected class ChainLoopDetector {
|
||||
private boolean[] used_blocks;
|
||||
protected ChainLoopDetector(long rawSize) {
|
||||
int numBlocks = (int)Math.ceil( rawSize / getBlockStoreBlockSize() );
|
||||
int numBlocks = (int)Math.ceil( ((double)rawSize) / getBlockStoreBlockSize() );
|
||||
used_blocks = new boolean[numBlocks];
|
||||
}
|
||||
protected void claim(int offset) {
|
||||
|
@ -120,7 +120,7 @@ public final class NPropertyTable extends PropertyTableBase {
|
||||
public int countBlocks()
|
||||
{
|
||||
int size = _properties.size() * POIFSConstants.PROPERTY_SIZE;
|
||||
return (int)Math.ceil(size / _bigBigBlockSize.getBigBlockSize());
|
||||
return (int)Math.ceil( ((double)size) / _bigBigBlockSize.getBigBlockSize());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -21,7 +21,7 @@ package org.apache.poi.sl.usermodel;
|
||||
* This is a replacement for {@link java.awt.Insets} which works on doubles
|
||||
* instead of ints
|
||||
*/
|
||||
public class Insets2D implements Cloneable {
|
||||
public final class Insets2D implements Cloneable {
|
||||
|
||||
/**
|
||||
* The inset from the top.
|
||||
|
@ -55,9 +55,9 @@ import org.apache.poi.poifs.filesystem.NotOLE2FileException;
|
||||
import org.apache.poi.poifs.filesystem.OPOIFSFileSystem;
|
||||
import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
|
||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor;
|
||||
import org.apache.poi.xslf.usermodel.XSLFRelation;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
import org.apache.poi.xssf.extractor.XSSFEventBasedExcelExtractor;
|
||||
import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
|
||||
import org.apache.poi.xssf.usermodel.XSSFRelation;
|
||||
|
@ -48,6 +48,10 @@ public final class PackagePropertiesPart extends PackagePart implements
|
||||
|
||||
public final static String NAMESPACE_DCTERMS_URI = "http://purl.org/dc/terms/";
|
||||
|
||||
private final static String DEFAULT_DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
|
||||
private final static String ALTERNATIVE_DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss.SS'Z'";
|
||||
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
@ -386,8 +390,8 @@ public final class PackagePropertiesPart extends PackagePart implements
|
||||
try {
|
||||
this.created = setDateValue(created);
|
||||
} catch (InvalidFormatException e) {
|
||||
new IllegalArgumentException("created : "
|
||||
+ e.getLocalizedMessage());
|
||||
throw new IllegalArgumentException("created : "
|
||||
+ e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -464,8 +468,8 @@ public final class PackagePropertiesPart extends PackagePart implements
|
||||
try {
|
||||
this.lastPrinted = setDateValue(lastPrinted);
|
||||
} catch (InvalidFormatException e) {
|
||||
new IllegalArgumentException("lastPrinted : "
|
||||
+ e.getLocalizedMessage());
|
||||
throw new IllegalArgumentException("lastPrinted : "
|
||||
+ e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -488,8 +492,8 @@ public final class PackagePropertiesPart extends PackagePart implements
|
||||
try {
|
||||
this.modified = setDateValue(modified);
|
||||
} catch (InvalidFormatException e) {
|
||||
new IllegalArgumentException("modified : "
|
||||
+ e.getLocalizedMessage());
|
||||
throw new IllegalArgumentException("modified : "
|
||||
+ e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -559,9 +563,17 @@ public final class PackagePropertiesPart extends PackagePart implements
|
||||
if (s == null || s.equals("")) {
|
||||
return new Nullable<Date>();
|
||||
}
|
||||
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT);
|
||||
if (!s.endsWith("Z")) {
|
||||
s += "Z";
|
||||
}
|
||||
SimpleDateFormat df = new SimpleDateFormat(DEFAULT_DATEFORMAT, Locale.ROOT);
|
||||
df.setTimeZone(LocaleUtil.TIMEZONE_UTC);
|
||||
Date d = df.parse(s, new ParsePosition(0));
|
||||
if (d == null) {
|
||||
df = new SimpleDateFormat(ALTERNATIVE_DATEFORMAT, Locale.ROOT);
|
||||
df.setTimeZone(LocaleUtil.TIMEZONE_UTC);
|
||||
d = df.parse(s, new ParsePosition(0));
|
||||
}
|
||||
if (d == null) {
|
||||
throw new InvalidFormatException("Date not well formated");
|
||||
}
|
||||
@ -585,7 +597,7 @@ public final class PackagePropertiesPart extends PackagePart implements
|
||||
return "";
|
||||
}
|
||||
|
||||
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT);
|
||||
SimpleDateFormat df = new SimpleDateFormat(DEFAULT_DATEFORMAT, Locale.ROOT);
|
||||
df.setTimeZone(LocaleUtil.TIMEZONE_UTC);
|
||||
return df.format(date);
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import static org.apache.poi.poifs.crypt.dsig.facets.XAdESSignatureFacet.insertX
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.math.BigInteger;
|
||||
import java.security.cert.CRLException;
|
||||
import java.security.cert.CertificateEncodingException;
|
||||
@ -324,21 +325,25 @@ public class XAdESXLSignatureFacet extends SignatureFacet {
|
||||
}
|
||||
|
||||
private BigInteger getCrlNumber(X509CRL crl) {
|
||||
try {
|
||||
byte[] crlNumberExtensionValue = crl.getExtensionValue(Extension.cRLNumber.getId());
|
||||
if (null == crlNumberExtensionValue) {
|
||||
return null;
|
||||
}
|
||||
byte[] crlNumberExtensionValue = crl.getExtensionValue(Extension.cRLNumber.getId());
|
||||
if (null == crlNumberExtensionValue) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("resource")
|
||||
ASN1InputStream asn1InputStream = new ASN1InputStream(crlNumberExtensionValue);
|
||||
ASN1OctetString octetString = (ASN1OctetString)asn1InputStream.readObject();
|
||||
byte[] octets = octetString.getOctets();
|
||||
asn1InputStream = new ASN1InputStream(octets);
|
||||
ASN1Integer integer = (ASN1Integer)asn1InputStream.readObject();
|
||||
BigInteger crlNumber = integer.getPositiveValue();
|
||||
return crlNumber;
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
ASN1InputStream asn1IS1 = null, asn1IS2 = null;
|
||||
try {
|
||||
asn1IS1 = new ASN1InputStream(crlNumberExtensionValue);
|
||||
ASN1OctetString octetString = (ASN1OctetString)asn1IS1.readObject();
|
||||
byte[] octets = octetString.getOctets();
|
||||
asn1IS2 = new ASN1InputStream(octets);
|
||||
ASN1Integer integer = (ASN1Integer)asn1IS2.readObject();
|
||||
return integer.getPositiveValue();
|
||||
} finally {
|
||||
asn1IS2.close();
|
||||
asn1IS1.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("I/O error: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,6 @@ import java.util.List;
|
||||
import org.apache.poi.POIXMLTextExtractor;
|
||||
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.poi.xslf.usermodel.DrawingParagraph;
|
||||
import org.apache.poi.xslf.usermodel.DrawingTextBody;
|
||||
import org.apache.poi.xslf.usermodel.DrawingTextPlaceholder;
|
||||
@ -35,6 +34,7 @@ import org.apache.poi.xslf.usermodel.XSLFRelation;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlide;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
import org.apache.xmlbeans.XmlException;
|
||||
import org.openxmlformats.schemas.presentationml.x2006.main.CTComment;
|
||||
import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentAuthor;
|
||||
|
@ -49,7 +49,6 @@ import org.apache.poi.util.POILogFactory;
|
||||
import org.apache.poi.util.POILogger;
|
||||
import org.apache.poi.util.PackageHelper;
|
||||
import org.apache.poi.util.Units;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.xmlbeans.XmlException;
|
||||
import org.apache.xmlbeans.XmlObject;
|
||||
import org.apache.xmlbeans.XmlOptions;
|
||||
@ -124,12 +123,6 @@ implements SlideShow<XSLFShape,XSLFTextParagraph> {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO get rid of this method
|
||||
@Deprecated
|
||||
public XSLFSlideShow _getXSLFSlideShow() throws OpenXML4JException, IOException, XmlException{
|
||||
return new XSLFSlideShow(getPackage());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDocumentRead() throws IOException {
|
||||
try {
|
||||
|
@ -14,7 +14,7 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
package org.apache.poi.xslf;
|
||||
package org.apache.poi.xslf.usermodel;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
@ -28,8 +28,6 @@ import org.apache.poi.openxml4j.opc.PackagePart;
|
||||
import org.apache.poi.openxml4j.opc.PackageRelationship;
|
||||
import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
|
||||
import org.apache.poi.util.Internal;
|
||||
import org.apache.poi.xslf.usermodel.XMLSlideShow;
|
||||
import org.apache.poi.xslf.usermodel.XSLFRelation;
|
||||
import org.apache.xmlbeans.XmlException;
|
||||
import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentList;
|
||||
import org.openxmlformats.schemas.presentationml.x2006.main.CTNotesSlide;
|
@ -20,7 +20,7 @@
|
||||
package org.apache.poi;
|
||||
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
|
@ -20,7 +20,7 @@ import junit.framework.TestCase;
|
||||
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.util.PackageHelper;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
|
@ -16,12 +16,17 @@
|
||||
==================================================================== */
|
||||
package org.apache.poi.extractor;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.POIOLE2TextExtractor;
|
||||
import org.apache.poi.POITextExtractor;
|
||||
@ -43,40 +48,42 @@ import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor;
|
||||
import org.apache.poi.xssf.extractor.XSSFEventBasedExcelExtractor;
|
||||
import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
|
||||
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Test that the extractor factory plays nicely
|
||||
*/
|
||||
public class TestExtractorFactory extends TestCase {
|
||||
private File txt;
|
||||
public class TestExtractorFactory {
|
||||
private static File txt;
|
||||
|
||||
private File xls;
|
||||
private File xlsx;
|
||||
private File xlsxStrict;
|
||||
private File xltx;
|
||||
private File xlsEmb;
|
||||
private static File xls;
|
||||
private static File xlsx;
|
||||
private static File xlsxStrict;
|
||||
private static File xltx;
|
||||
private static File xlsEmb;
|
||||
|
||||
private File doc;
|
||||
private File doc6;
|
||||
private File doc95;
|
||||
private File docx;
|
||||
private File dotx;
|
||||
private File docEmb;
|
||||
private File docEmbOOXML;
|
||||
private static File doc;
|
||||
private static File doc6;
|
||||
private static File doc95;
|
||||
private static File docx;
|
||||
private static File dotx;
|
||||
private static File docEmb;
|
||||
private static File docEmbOOXML;
|
||||
|
||||
private File ppt;
|
||||
private File pptx;
|
||||
private static File ppt;
|
||||
private static File pptx;
|
||||
|
||||
private File msg;
|
||||
private File msgEmb;
|
||||
private File msgEmbMsg;
|
||||
private static File msg;
|
||||
private static File msgEmb;
|
||||
private static File msgEmbMsg;
|
||||
|
||||
private File vsd;
|
||||
private File vsdx;
|
||||
private static File vsd;
|
||||
private static File vsdx;
|
||||
|
||||
private File pub;
|
||||
private static File pub;
|
||||
|
||||
private File getFileAndCheck(POIDataSamples samples, String name) {
|
||||
private static File getFileAndCheck(POIDataSamples samples, String name) {
|
||||
File file = samples.getFile(name);
|
||||
|
||||
assertNotNull("Did not get a file for " + name, file);
|
||||
@ -85,9 +92,9 @@ public class TestExtractorFactory extends TestCase {
|
||||
|
||||
return file;
|
||||
}
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
@BeforeClass
|
||||
public static void setUp() throws Exception {
|
||||
|
||||
POIDataSamples ssTests = POIDataSamples.getSpreadSheetInstance();
|
||||
xls = getFileAndCheck(ssTests, "SampleSS.xls");
|
||||
@ -123,6 +130,7 @@ public class TestExtractorFactory extends TestCase {
|
||||
msgEmbMsg = getFileAndCheck(olTests, "attachment_msg_pdf.msg");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFile() throws Exception {
|
||||
// Excel
|
||||
POITextExtractor xlsExtractor = ExtractorFactory.createExtractor(xls);
|
||||
@ -297,6 +305,7 @@ public class TestExtractorFactory extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInputStream() throws Exception {
|
||||
// Excel
|
||||
assertTrue(
|
||||
@ -421,6 +430,7 @@ public class TestExtractorFactory extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPOIFS() throws Exception {
|
||||
// Excel
|
||||
assertTrue(
|
||||
@ -501,6 +511,7 @@ public class TestExtractorFactory extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPackage() throws Exception {
|
||||
// Excel
|
||||
POIXMLTextExtractor extractor = ExtractorFactory.createExtractor(OPCPackage.open(xlsx.toString(), PackageAccess.READ));
|
||||
@ -550,6 +561,7 @@ public class TestExtractorFactory extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPreferEventBased() throws Exception {
|
||||
assertFalse(ExtractorFactory.getPreferEventExtractor());
|
||||
assertFalse(ExtractorFactory.getThreadPrefersEventExtractors());
|
||||
@ -635,6 +647,7 @@ public class TestExtractorFactory extends TestCase {
|
||||
* does poifs embeded, but will do ooxml ones
|
||||
* at some point.
|
||||
*/
|
||||
@Test
|
||||
public void testEmbeded() throws Exception {
|
||||
POIOLE2TextExtractor ext;
|
||||
POITextExtractor[] embeds;
|
||||
|
@ -37,7 +37,6 @@ import java.util.List;
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
import org.apache.poi.POIXMLDocumentPart;
|
||||
import org.apache.poi.openxml4j.opc.PackagePart;
|
||||
import org.apache.poi.sl.usermodel.PictureData.PictureType;
|
||||
import org.apache.poi.xslf.usermodel.DrawingParagraph;
|
||||
import org.apache.poi.xslf.usermodel.DrawingTextBody;
|
||||
@ -56,7 +55,6 @@ import org.junit.Test;
|
||||
public class TestXSLFBugs {
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void bug51187() throws Exception {
|
||||
XMLSlideShow ss1 = XSLFTestDataSamples.openSampleDocument("51187.pptx");
|
||||
|
||||
@ -64,29 +62,26 @@ public class TestXSLFBugs {
|
||||
|
||||
// Check the relations on it
|
||||
// Note - rId3 is a self reference
|
||||
PackagePart slidePart = ss1._getXSLFSlideShow().getSlidePart(
|
||||
ss1._getXSLFSlideShow().getSlideReferences().getSldIdArray(0)
|
||||
);
|
||||
assertEquals("/ppt/slides/slide1.xml", slidePart.getPartName().toString());
|
||||
assertEquals("/ppt/slideLayouts/slideLayout12.xml", slidePart.getRelationship("rId1").getTargetURI().toString());
|
||||
assertEquals("/ppt/notesSlides/notesSlide1.xml", slidePart.getRelationship("rId2").getTargetURI().toString());
|
||||
assertEquals("/ppt/slides/slide1.xml", slidePart.getRelationship("rId3").getTargetURI().toString());
|
||||
assertEquals("/ppt/media/image1.png", slidePart.getRelationship("rId4").getTargetURI().toString());
|
||||
XSLFSlide slide0 = ss1.getSlides().get(0);
|
||||
|
||||
assertEquals("/ppt/slides/slide1.xml", slide0.getPackagePart().getPartName().toString());
|
||||
assertEquals("/ppt/slideLayouts/slideLayout12.xml", slide0.getRelationById("rId1").getPackageRelationship().getTargetURI().toString());
|
||||
assertEquals("/ppt/notesSlides/notesSlide1.xml", slide0.getRelationById("rId2").getPackageRelationship().getTargetURI().toString());
|
||||
assertEquals("/ppt/slides/slide1.xml", slide0.getRelationById("rId3").getPackageRelationship().getTargetURI().toString());
|
||||
assertEquals("/ppt/media/image1.png", slide0.getRelationById("rId4").getPackageRelationship().getTargetURI().toString());
|
||||
|
||||
// Save and re-load
|
||||
XMLSlideShow ss2 = XSLFTestDataSamples.writeOutAndReadBack(ss1);
|
||||
ss1.close();
|
||||
assertEquals(1, ss2.getSlides().size());
|
||||
|
||||
slidePart = ss2._getXSLFSlideShow().getSlidePart(
|
||||
ss2._getXSLFSlideShow().getSlideReferences().getSldIdArray(0)
|
||||
);
|
||||
assertEquals("/ppt/slides/slide1.xml", slidePart.getPartName().toString());
|
||||
assertEquals("/ppt/slideLayouts/slideLayout12.xml", slidePart.getRelationship("rId1").getTargetURI().toString());
|
||||
assertEquals("/ppt/notesSlides/notesSlide1.xml", slidePart.getRelationship("rId2").getTargetURI().toString());
|
||||
slide0 = ss2.getSlides().get(0);
|
||||
assertEquals("/ppt/slides/slide1.xml", slide0.getPackagePart().getPartName().toString());
|
||||
assertEquals("/ppt/slideLayouts/slideLayout12.xml", slide0.getRelationById("rId1").getPackageRelationship().getTargetURI().toString());
|
||||
assertEquals("/ppt/notesSlides/notesSlide1.xml", slide0.getRelationById("rId2").getPackageRelationship().getTargetURI().toString());
|
||||
// TODO Fix this
|
||||
assertEquals("/ppt/slides/slide1.xml", slidePart.getRelationship("rId3").getTargetURI().toString());
|
||||
assertEquals("/ppt/media/image1.png", slidePart.getRelationship("rId4").getTargetURI().toString());
|
||||
assertEquals("/ppt/slides/slide1.xml", slide0.getRelationById("rId3").getPackageRelationship().getTargetURI().toString());
|
||||
assertEquals("/ppt/media/image1.png", slide0.getRelationById("rId4").getPackageRelationship().getTargetURI().toString());
|
||||
|
||||
ss2.close();
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.openxml4j.opc.PackagePart;
|
||||
import org.apache.poi.xslf.usermodel.XSLFRelation;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideIdListEntry;
|
||||
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideMasterIdListEntry;
|
||||
|
||||
|
@ -20,7 +20,7 @@ import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.POITextExtractor;
|
||||
import org.apache.poi.extractor.ExtractorFactory;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.xslf.XSLFSlideShow;
|
||||
import org.apache.poi.xslf.usermodel.XSLFSlideShow;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
@ -111,7 +111,7 @@ public class MAPIAttribute {
|
||||
boolean isMV = false;
|
||||
boolean isVL = false;
|
||||
int typeId = typeAndMV;
|
||||
if( (typeAndMV & Types.MULTIVALUED_FLAG) > 0 ) {
|
||||
if( (typeAndMV & Types.MULTIVALUED_FLAG) != 0 ) {
|
||||
isMV = true;
|
||||
typeId -= Types.MULTIVALUED_FLAG;
|
||||
}
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
package org.apache.poi.hslf.model.textproperties;
|
||||
|
||||
import org.apache.poi.hslf.record.Record;
|
||||
import org.apache.poi.util.POILogFactory;
|
||||
import org.apache.poi.util.POILogger;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user