summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDominik Stadler <centic@apache.org>2017-06-09 12:49:01 +0000
committerDominik Stadler <centic@apache.org>2017-06-09 12:49:01 +0000
commit902124a5fd2aadbe4d106c4a4efd907769984a05 (patch)
tree2e4fdb3626c01ed16cb113c33c22d86f60614f96 /src
parent20ed0075e80fd3ed7534a768f3b0ec9f942497d6 (diff)
downloadpoi-902124a5fd2aadbe4d106c4a4efd907769984a05.tar.gz
poi-902124a5fd2aadbe4d106c4a4efd907769984a05.zip
Move one testcase with incorrect source location
remove some junit dependencies in example-code build: do not pass junit-jar to normal compile targets to avoid introducing it as dependency again Reformat code, fix warnings, ... git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1798202 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/examples/src/org/apache/poi/xwpf/usermodel/examples/UpdateEmbeddedDoc.java17
-rw-r--r--src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java74
-rw-r--r--src/java/org/apache/poi/ss/util/SheetUtil.java21
-rw-r--r--src/ooxml/java/org/apache/poi/util/OOXMLLite.java5
-rw-r--r--src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java9
-rw-r--r--src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java (renamed from src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java)0
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java203
-rw-r--r--src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java6
8 files changed, 155 insertions, 180 deletions
diff --git a/src/examples/src/org/apache/poi/xwpf/usermodel/examples/UpdateEmbeddedDoc.java b/src/examples/src/org/apache/poi/xwpf/usermodel/examples/UpdateEmbeddedDoc.java
index 251b4568f6..77e04a7ef8 100644
--- a/src/examples/src/org/apache/poi/xwpf/usermodel/examples/UpdateEmbeddedDoc.java
+++ b/src/examples/src/org/apache/poi/xwpf/usermodel/examples/UpdateEmbeddedDoc.java
@@ -19,8 +19,6 @@
package org.apache.poi.xwpf.usermodel.examples;
-import static org.junit.Assert.assertEquals;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -77,7 +75,7 @@ public class UpdateEmbeddedDoc {
this.docFile = new File(filename);
FileInputStream fis = null;
if (!this.docFile.exists()) {
- throw new FileNotFoundException("The Word dcoument " + filename + " does not exist.");
+ throw new FileNotFoundException("The Word document " + filename + " does not exist.");
}
try {
// Open the Word document file and instantiate the XWPFDocument
@@ -90,7 +88,7 @@ public class UpdateEmbeddedDoc {
}
/**
- * Called to update the embedded Excel workbook. As the format and structire
+ * Called to update the embedded Excel workbook. As the format and structure
* of the workbook are known in advance, all this code attempts to do is
* write a new value into the first cell on the first row of the first
* worksheet. Prior to executing this method, that cell will contain the
@@ -99,7 +97,7 @@ public class UpdateEmbeddedDoc {
* @throws org.apache.poi.openxml4j.exceptions.OpenXML4JException
* Rather
* than use the specific classes (HSSF/XSSF) to handle the embedded
- * workbook this method uses those defeined in the SS stream. As
+ * workbook this method uses those defined in the SS stream. As
* a result, it might be the case that a SpreadsheetML file is
* opened for processing, throwing this exception if that file is
* invalid.
@@ -160,7 +158,7 @@ public class UpdateEmbeddedDoc {
* @throws org.apache.poi.openxml4j.exceptions.OpenXML4JException
* Rather
* than use the specific classes (HSSF/XSSF) to handle the embedded
- * workbook this method uses those defeined in the SS stream. As
+ * workbook this method uses those defined in the SS stream. As
* a result, it might be the case that a SpreadsheetML file is
* opened for processing, throwing this exception if that file is
* invalid.
@@ -178,7 +176,9 @@ public class UpdateEmbeddedDoc {
Sheet sheet = workbook.getSheetAt(SHEET_NUM);
Row row = sheet.getRow(ROW_NUM);
Cell cell = row.getCell(CELL_NUM);
- assertEquals(cell.getNumericCellValue(), NEW_VALUE, 0.0001);
+ if(cell.getNumericCellValue() != NEW_VALUE) {
+ throw new IllegalStateException("Failed to validate document content.");
+ }
} finally {
IOUtils.closeQuietly(workbook);
IOUtils.closeQuietly(is);
@@ -189,9 +189,6 @@ public class UpdateEmbeddedDoc {
/**
* Code to test updating of the embedded Excel workbook.
- *
- * @param args
- * @throws OpenXML4JException
*/
public static void main(String[] args) throws IOException, OpenXML4JException {
UpdateEmbeddedDoc ued = new UpdateEmbeddedDoc(args[0]);
diff --git a/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java b/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java
index d4ec360062..13e198d169 100644
--- a/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java
+++ b/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java
@@ -27,47 +27,47 @@ import org.apache.poi.hwpf.extractor.WordExtractor;
import org.junit.Test;
public class HWPFFileHandler extends POIFSFileHandler {
- @Override
- public void handleFile(InputStream stream, String path) throws Exception {
- HWPFDocument doc = new HWPFDocument(stream);
- assertNotNull(doc.getBookmarks());
- assertNotNull(doc.getCharacterTable());
- assertNotNull(doc.getEndnotes());
-
- handlePOIDocument(doc);
- }
+ @Override
+ public void handleFile(InputStream stream, String path) throws Exception {
+ HWPFDocument doc = new HWPFDocument(stream);
+ assertNotNull(doc.getBookmarks());
+ assertNotNull(doc.getCharacterTable());
+ assertNotNull(doc.getEndnotes());
+
+ handlePOIDocument(doc);
+ }
- // a test-case to test this locally without executing the full TestAllFiles
- @Override
+ // a test-case to test this locally without executing the full TestAllFiles
+ @Override
@Test
- public void test() throws Exception {
+ public void test() throws Exception {
File file = new File("test-data/document/52117.doc");
InputStream stream = new FileInputStream(file);
- try {
- handleFile(stream, file.getPath());
- } finally {
- stream.close();
- }
-
- handleExtracting(file);
-
- stream = new FileInputStream(file);
- try {
- WordExtractor extractor = new WordExtractor(stream);
- try {
- assertNotNull(extractor.getText());
- } finally {
- extractor.close();
- }
- } finally {
- stream.close();
- }
- }
+ try {
+ handleFile(stream, file.getPath());
+ } finally {
+ stream.close();
+ }
+
+ handleExtracting(file);
+
+ stream = new FileInputStream(file);
+ try {
+ WordExtractor extractor = new WordExtractor(stream);
+ try {
+ assertNotNull(extractor.getText());
+ } finally {
+ extractor.close();
+ }
+ } finally {
+ stream.close();
+ }
+ }
- @Test
- public void testExtractingOld() throws Exception {
- File file = new File("test-data/document/52117.doc");
- handleExtracting(file);
- }
+ @Test
+ public void testExtractingOld() throws Exception {
+ File file = new File("test-data/document/52117.doc");
+ handleExtracting(file);
+ }
}
diff --git a/src/java/org/apache/poi/ss/util/SheetUtil.java b/src/java/org/apache/poi/ss/util/SheetUtil.java
index 98c307f3ee..6dd27b40fd 100644
--- a/src/java/org/apache/poi/ss/util/SheetUtil.java
+++ b/src/java/org/apache/poi/ss/util/SheetUtil.java
@@ -91,6 +91,7 @@ public class SheetUtil {
public void evaluateAll() {}
@Override
public int evaluateFormulaCell(Cell cell) {
+ //noinspection deprecation
return cell.getCachedFormulaResultType();
}
/**
@@ -157,9 +158,9 @@ public class SheetUtil {
AttributedString str = new AttributedString(txt);
copyAttributes(font, str, 0, txt.length());
- if (rt.numFormattingRuns() > 0) {
+ /*if (rt.numFormattingRuns() > 0) {
// TODO: support rich text fragments
- }
+ }*/
width = getCellWidth(defaultCharWidth, colspan, style, width, str);
}
@@ -329,7 +330,7 @@ public class SheetUtil {
/**
* Copy text attributes from the supplied Font to Java2D AttributedString
*/
- private static void copyAttributes(Font font, AttributedString str, int startIdx, int endIdx) {
+ private static void copyAttributes(Font font, AttributedString str, @SuppressWarnings("SameParameterValue") int startIdx, int endIdx) {
str.addAttribute(TextAttribute.FAMILY, font.getFontName(), startIdx, endIdx);
str.addAttribute(TextAttribute.SIZE, (float)font.getFontHeightInPoints());
if (font.getBold()) str.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, startIdx, endIdx);
@@ -360,9 +361,9 @@ public class SheetUtil {
* Use this where you want to know if the given cell is explicitly defined
* or not.
*
- * @param sheet
- * @param rowIx
- * @param colIx
+ * @param sheet The workbook sheet to look at.
+ * @param rowIx The 0-based index of the row.
+ * @param colIx The 0-based index of the cell.
* @return cell at the given location, or null if not defined
* @throws NullPointerException if sheet is null
*/
@@ -384,10 +385,10 @@ public class SheetUtil {
* then will return the cell itself.
* <p>If there is no cell defined at the given co-ordinates, will return
* null.
- *
- * @param sheet
- * @param rowIx
- * @param colIx
+ *
+ * @param sheet The workbook sheet to look at.
+ * @param rowIx The 0-based index of the row.
+ * @param colIx The 0-based index of the cell.
* @return cell at the given location, its base merged cell, or null if not defined
* @throws NullPointerException if sheet is null
*/
diff --git a/src/ooxml/java/org/apache/poi/util/OOXMLLite.java b/src/ooxml/java/org/apache/poi/util/OOXMLLite.java
index 793b047170..4eaa825e57 100644
--- a/src/ooxml/java/org/apache/poi/util/OOXMLLite.java
+++ b/src/ooxml/java/org/apache/poi/util/OOXMLLite.java
@@ -143,9 +143,7 @@ public final class OOXMLLite {
copyFile(cls.getResourceAsStream('/' + classRef), destFile);
if(cls.isInterface()){
- /**
- * Copy classes and interfaces declared as members of this class
- */
+ /// Copy classes and interfaces declared as members of this class
for(Class<?> fc : cls.getDeclaredClasses()){
className = fc.getName();
classRef = className.replace('.', '/') + ".class";
@@ -235,7 +233,6 @@ public final class OOXMLLite {
}
} catch (Throwable e) { // NOSONAR
System.out.println("Class " + cls + " is not in classpath");
- return;
}
}
}
diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
index 4362f62d14..a788028654 100644
--- a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
+++ b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
@@ -948,15 +948,16 @@ public final class TestPackage {
// bug 60128
@Test
- public void testCorruptFile() throws IOException {
+ public void testCorruptFile() throws IOException, InvalidFormatException {
OPCPackage pkg = null;
File file = OpenXML4JTestDataSamples.getSampleFile("invalid.xlsx");
try {
pkg = OPCPackage.open(file, PackageAccess.READ);
- } catch (Exception e) {
- System.out.println(e.getClass().getName());
+ } catch (NotOfficeXmlFileException e) {
+ /*System.out.println(e.getClass().getName());
System.out.println(e.getMessage());
- e.printStackTrace();
+ e.printStackTrace();*/
+ // ignore exception
} finally {
if (pkg != null) {
pkg.close();
diff --git a/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java
index 4ff321e370..4ff321e370 100644
--- a/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java
+++ b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java b/src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java
index 53dcc17457..a54a06059b 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java
@@ -19,128 +19,76 @@ package org.apache.poi.hwpf.model;
import java.nio.charset.Charset;
-import org.apache.poi.util.BitField;
-import org.apache.poi.util.BitFieldFactory;
import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.StringUtil;
@Internal
-public final class PieceDescriptor
-{
-
- short descriptor;
- private static BitField fNoParaLast = BitFieldFactory.getInstance(0x01);
- private static BitField fPaphNil = BitFieldFactory.getInstance(0x02);
- private static BitField fCopied = BitFieldFactory.getInstance(0x04);
- int fc;
- PropertyModifier prm;
- boolean unicode = false;
- private final Charset charset;
-
+public final class PieceDescriptor {
+ private final short descriptor;
+ int fc; // used from the outside?!?
+ private final PropertyModifier prm;
+ private final boolean unicode;
+ private final Charset charset;
public PieceDescriptor(byte[] buf, int offset) {
this(buf, offset, null);
}
/**
- *
* This initializer should only be used for HWPFOldDocuments.
*
- * @param buf
- * @param offset
+ * @param buf The buffer to read data from
+ * @param offset The offset into the buffer to start reading from
* @param charset which charset to use if this is not unicode
*/
- public PieceDescriptor(byte[] buf, int offset, Charset charset) {
- descriptor = LittleEndian.getShort(buf, offset);
- offset += LittleEndian.SHORT_SIZE;
- fc = LittleEndian.getInt(buf, offset);
- offset += LittleEndian.INT_SIZE;
- prm = new PropertyModifier(LittleEndian.getShort(buf, offset));
- if (charset == null) {
- // see if this piece uses unicode.
- //From the documentation: If the second most significant bit
- //is clear, then this indicates the actual file offset of the Unicode character (two bytes). If the
- //second most significant bit is set, then the actual address of the codepage-1252
- //compressed version of the Unicode character (one byte), is actually at the offset indicated
- //by clearing this bit and dividing by two.
- if ((fc & 0x40000000) == 0) {
- unicode = true;
- this.charset = null;
+ public PieceDescriptor(byte[] buf, int offset, Charset charset) {
+ descriptor = LittleEndian.getShort(buf, offset);
+ offset += LittleEndian.SHORT_SIZE;
+ fc = LittleEndian.getInt(buf, offset);
+ offset += LittleEndian.INT_SIZE;
+ prm = new PropertyModifier(LittleEndian.getShort(buf, offset));
+ if (charset == null) {
+ // see if this piece uses unicode.
+ //From the documentation: If the second most significant bit
+ //is clear, then this indicates the actual file offset of the Unicode character (two bytes). If the
+ //second most significant bit is set, then the actual address of the codepage-1252
+ //compressed version of the Unicode character (one byte), is actually at the offset indicated
+ //by clearing this bit and dividing by two.
+ if ((fc & 0x40000000) == 0) {
+ unicode = true;
+ this.charset = null;
+ } else {
+ unicode = false;
+ fc &= ~(0x40000000);//gives me FC in doc stream
+ fc /= 2;
+ this.charset = StringUtil.WIN_1252;
+ }
} else {
- unicode = false;
- fc &= ~(0x40000000);//gives me FC in doc stream
- fc /= 2;
- this.charset = StringUtil.WIN_1252;
+ if (charset == StringUtil.UTF16LE) {
+ unicode = true;
+ } else {
+ unicode = false;
+ }
+ this.charset = charset;
}
- } else {
- if (charset == StringUtil.UTF16LE) {
- unicode = true;
- }
- this.charset = charset;
- }
-
- }
-
- public int getFilePosition()
- {
- return fc;
- }
-
- public void setFilePosition(int pos)
- {
- fc = pos;
- }
-
- public boolean isUnicode()
- {
- return unicode;
- }
-
- /**
- *
- * @return charset to use if this is not a Unicode PieceDescriptor
- * this can be <code>null</code>
- */
- public Charset getCharset() {
- return charset;
- }
- public PropertyModifier getPrm()
- {
- return prm;
}
- protected byte[] toByteArray()
- {
- // set up the fc
- int tempFc = fc;
- if (!unicode)
- {
- tempFc *= 2;
- tempFc |= (0x40000000);
+ public int getFilePosition() {
+ return fc;
}
- int offset = 0;
- byte[] buf = new byte[8];
- LittleEndian.putShort(buf, offset, descriptor);
- offset += LittleEndian.SHORT_SIZE;
- LittleEndian.putInt(buf, offset, tempFc);
- offset += LittleEndian.INT_SIZE;
- LittleEndian.putShort(buf, offset, prm.getValue());
-
- return buf;
-
- }
+ public void setFilePosition(int pos) {
+ fc = pos;
+ }
- public static int getSizeInBytes()
- {
- return 8;
- }
+ public boolean isUnicode() {
+ return unicode;
+ }
@Override
- public int hashCode()
- {
+ public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + descriptor;
@@ -149,35 +97,66 @@ public final class PieceDescriptor
return result;
}
+ /**
+ * @return charset to use if this is not a Unicode PieceDescriptor
+ * this can be <code>null</code>
+ */
+ public Charset getCharset() {
+ return charset;
+ }
+
+ public PropertyModifier getPrm() {
+ return prm;
+ }
+
+ protected byte[] toByteArray() {
+ // set up the fc
+ int tempFc = fc;
+ if (!unicode) {
+ tempFc *= 2;
+ tempFc |= (0x40000000);
+ }
+
+ int offset = 0;
+ byte[] buf = new byte[8];
+ LittleEndian.putShort(buf, offset, descriptor);
+ offset += LittleEndian.SHORT_SIZE;
+ LittleEndian.putInt(buf, offset, tempFc);
+ offset += LittleEndian.INT_SIZE;
+ LittleEndian.putShort(buf, offset, prm.getValue());
+
+ return buf;
+ }
+
+ public static int getSizeInBytes() {
+ return 8;
+ }
+
@Override
- public boolean equals( Object obj )
- {
- if ( this == obj )
+ public boolean equals(Object obj) {
+ if (this == obj)
return true;
- if ( obj == null )
+ if (obj == null)
return false;
- if ( getClass() != obj.getClass() )
+ if (getClass() != obj.getClass())
return false;
PieceDescriptor other = (PieceDescriptor) obj;
- if ( descriptor != other.descriptor )
+ if (descriptor != other.descriptor)
return false;
- if ( prm == null )
- {
- if ( other.prm != null )
+ if (prm == null) {
+ if (other.prm != null)
return false;
- }
- else if ( !prm.equals( other.prm ) )
+ } else if (!prm.equals(other.prm))
return false;
- if ( unicode != other.unicode )
+ if (unicode != other.unicode)
return false;
return true;
}
@Override
- public String toString()
- {
+ public String toString() {
return "PieceDescriptor (pos: " + getFilePosition() + "; "
- + ( isUnicode() ? "unicode" : "non-unicode" ) + "; prm: "
+ + (isUnicode() ? "unicode" : "non-unicode") + "; prm: "
+ getPrm() + ")";
}
}
diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
index a0a82eeb91..38192d90f1 100644
--- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
+++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
@@ -37,8 +37,8 @@ import static org.junit.Assert.*;
import static org.junit.Assume.assumeTrue;
/**
- * Common superclass for testing {@link org.apache.poi.xssf.usermodel.XSSFCell} and
- * {@link org.apache.poi.hssf.usermodel.HSSFCell}
+ * Common superclass for testing {@link HSSFCell}, org.apache.poi.xssf.usermodel.XSSFCell and
+ * org.apache.poi.xssf.streaming.SXSSFCell
*/
public abstract class BaseTestSheet {
private static final int ROW_COUNT = 40000;
@@ -417,7 +417,7 @@ public abstract class BaseTestSheet {
//should exist now!
assertTrue("there isn't more than one merged region in there", 1 <= sheet.getNumMergedRegions());
region = sheet.getMergedRegion(0);
- assertEquals("the merged row to doesnt match the one we put in ", 4, region.getLastRow());
+ assertEquals("the merged row to doesn't match the one we put in ", 4, region.getLastRow());
wb.close();
}