mirror of https://github.com/apache/poi.git
Activate Forbidden-Apis-Check also for other tests
Max supported Java version is currently Java 14 Fix the check failures git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1880944 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f8040e5f8c
commit
b7b0a0c215
29
build.xml
29
build.xml
|
@ -1549,7 +1549,7 @@ under the License.
|
|||
<delete dir="build" includes="test-integration.log*"/>
|
||||
|
||||
<path id="test-integration.modules">
|
||||
<pathelement path="build/dist/maven/poi"/>
|
||||
<pathelement path="build/dist/maven/poi-tests"/>
|
||||
<pathelement path="build/dist/maven/poi-ooxml"/>
|
||||
<pathelement path="build/dist/maven/poi-scratchpad"/>
|
||||
<pathelement path="build/dist/maven/poi-examples"/>
|
||||
|
@ -2252,16 +2252,22 @@ under the License.
|
|||
<fileset dir="lib/ooxml-provided" includes="*.jar"/>
|
||||
<fileset dir="lib/excelant" includes="*.jar"/>
|
||||
<pathelement location="${ooxml.xsds.jar}"/>
|
||||
<pathelement location="build/dist/maven/poi-tests/poi-${version.id}-tests.jar"/>
|
||||
<pathelement location="build/dist/maven/poi-examples/poi-examples-${version.id}.jar"/>
|
||||
<path path="${env.CLASSPATH}"/>
|
||||
</path>
|
||||
|
||||
<!-- forbiddenapis bundled signatures max supported version is 14 -->
|
||||
<condition property="forbiddenVersion" value="14">
|
||||
<javaversion atleast="15"/>
|
||||
</condition>
|
||||
<property name="forbiddenVersion" value="${ant.java.version}"/>
|
||||
|
||||
<!-- first check rules that apply to all the source code -->
|
||||
<forbiddenapis
|
||||
classpathref="forbiddenapis.classpath"
|
||||
suppressAnnotation="org.apache.poi.util.SuppressForbidden"
|
||||
targetVersion="${ant.java.version}"
|
||||
targetVersion="${forbiddenVersion}"
|
||||
>
|
||||
<bundledsignatures name="jdk-unsafe"/>
|
||||
<bundledsignatures name="jdk-deprecated"/>
|
||||
|
@ -2272,29 +2278,20 @@ under the License.
|
|||
<bundledsignatures name="jdk-system-out"/>
|
||||
-->
|
||||
<signaturesFileset file="src/resources/devtools/forbidden-signatures.txt"/>
|
||||
<!-- sources -->
|
||||
<!-- zipfileset src="build/dist/maven/poi/poi-${version.id}.jar"/ -->
|
||||
<!-- zipfileset src="build/dist/maven/poi-ooxml/poi-ooxml-${version.id}.jar"/ -->
|
||||
<zipfileset src="build/dist/maven/poi-scratchpad/poi-scratchpad-${version.id}.jar"/>
|
||||
<zipfileset src="build/dist/maven/poi-excelant/poi-excelant-${version.id}.jar"/>
|
||||
<!--
|
||||
<fileset dir="${examples.output.dir}"/>
|
||||
-->
|
||||
<!-- test-sources (incl. sources) -->
|
||||
<zipfileset src="build/dist/maven/poi-tests/poi-${version.id}-tests.jar"/>
|
||||
<zipfileset src="build/dist/maven/poi-ooxml-tests/poi-ooxml-${version.id}-tests.jar"/>
|
||||
<!--
|
||||
<fileset dir="${scratchpad.output.test.dir}"/>
|
||||
<fileset dir="${excelant.output.test.dir}"/>
|
||||
<fileset dir="${integration.output.test.dir}"/>
|
||||
-->
|
||||
<zipfileset src="build/dist/maven/poi-scratchpad-tests/poi-scratchpad-${version.id}-tests.jar"/>
|
||||
<zipfileset src="build/dist/maven/poi-excelant-tests/poi-excelant-${version.id}-tests.jar"/>
|
||||
<zipfileset src="build/dist/maven/poi-examples/poi-examples-${version.id}.jar"/>
|
||||
<zipfileset src="build/dist/maven/poi-integration/poi-integration-${version.id}.jar"/>
|
||||
</forbiddenapis>
|
||||
|
||||
<!-- then check some advanced rules which we only apply to the core code and not tests or examples -->
|
||||
<forbiddenapis
|
||||
classpathref="forbiddenapis.classpath"
|
||||
suppressAnnotation="org.apache.poi.util.SuppressForbidden"
|
||||
targetVersion="${jdk.version.source}"
|
||||
targetVersion="${forbiddenVersion}"
|
||||
>
|
||||
<signaturesFileset file="src/resources/devtools/forbidden-signatures-prod.txt"/>
|
||||
<!-- sources -->
|
||||
|
|
|
@ -62,7 +62,7 @@ public class Msg2txt {
|
|||
public void processMessage() throws IOException {
|
||||
String txtFileName = fileNameStem + ".txt";
|
||||
String attDirName = fileNameStem + "-att";
|
||||
try (PrintWriter txtOut = new PrintWriter(txtFileName)) {
|
||||
try (PrintWriter txtOut = new PrintWriter(txtFileName, "UTF-8")) {
|
||||
try {
|
||||
String displayFrom = msg.getDisplayFrom();
|
||||
txtOut.println("From: " + displayFrom);
|
||||
|
|
|
@ -21,6 +21,7 @@ import java.io.FileOutputStream;
|
|||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
|
@ -36,6 +37,7 @@ import org.apache.poi.ss.usermodel.PrintSetup;
|
|||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
/**
|
||||
|
@ -96,7 +98,7 @@ public final class BusinessPlan {
|
|||
if(args.length > 0 && args[0].equals("-xls")) wb = new HSSFWorkbook();
|
||||
else wb = new XSSFWorkbook();
|
||||
|
||||
final SimpleDateFormat fmt = new SimpleDateFormat("dd-MMM");
|
||||
final SimpleDateFormat fmt = new SimpleDateFormat("dd-MMM", Locale.ROOT);
|
||||
|
||||
Map<String, CellStyle> styles = createStyles(wb);
|
||||
|
||||
|
@ -124,7 +126,7 @@ public final class BusinessPlan {
|
|||
cell.setCellStyle(styles.get("header"));
|
||||
}
|
||||
//columns for 11 weeks starting from 9-Jul
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
Calendar calendar = LocaleUtil.getLocaleCalendar();
|
||||
int year = calendar.get(Calendar.YEAR);
|
||||
|
||||
calendar.setTime(fmt.parse("9-Jul"));
|
||||
|
|
|
@ -36,6 +36,7 @@ import org.apache.poi.ss.usermodel.Sheet;
|
|||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
/**
|
||||
|
@ -62,7 +63,7 @@ public final class CalendarDemo {
|
|||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
Calendar calendar = LocaleUtil.getLocaleCalendar();
|
||||
boolean xlsx = true;
|
||||
for (String arg : args) {
|
||||
if (arg.charAt(0) == '-') {
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
package org.apache.poi.examples.ss;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
|
@ -94,6 +96,8 @@ public class ExcelComparator {
|
|||
}
|
||||
|
||||
List<String> listOfDifferences = new ArrayList<>();
|
||||
private final DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ROOT);
|
||||
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
if (args.length != 2 || !(new File(args[0]).exists()) || !(new File(args[1]).exists())) {
|
||||
|
@ -429,7 +433,7 @@ public class ExcelComparator {
|
|||
Date date1 = loc1.cell.getDateCellValue();
|
||||
Date date2 = loc2.cell.getDateCellValue();
|
||||
if (!date1.equals(date2)) {
|
||||
addMessage(loc1, loc2, CELL_DATA_DOES_NOT_MATCH, date1.toString(), date2.toString());
|
||||
addMessage(loc1, loc2, CELL_DATA_DOES_NOT_MATCH, dateFormat.format(date1), dateFormat.format(date2));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ import java.io.IOException;
|
|||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
|
@ -39,6 +40,7 @@ import org.apache.poi.ss.usermodel.VerticalAlignment;
|
|||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.ss.util.CellReference;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
|
@ -75,7 +77,7 @@ public final class SSPerformanceTest {
|
|||
runWithArgs(type, rows, cols, saveFile);
|
||||
long timeFinished = System.currentTimeMillis();
|
||||
|
||||
System.out.printf("Elapsed %.2f seconds for arguments %s\n", ((double)timeFinished - timeStarted) / 1000, Arrays.toString(args));
|
||||
System.out.printf(Locale.ROOT, "Elapsed %.2f seconds for arguments %s\n", ((double)timeFinished - timeStarted) / 1000, Arrays.toString(args));
|
||||
}
|
||||
|
||||
private static void runWithArgs(String type, int rows, int cols, boolean saveFile) throws IOException {
|
||||
|
@ -103,7 +105,7 @@ public final class SSPerformanceTest {
|
|||
int sheetNo = 0;
|
||||
int rowIndexInSheet = 1;
|
||||
double value = 0;
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
Calendar calendar = LocaleUtil.getLocaleCalendar();
|
||||
for (int rowIndex = 0; rowIndex < rows; rowIndex++) {
|
||||
if (isHType && sheetNo != rowIndex / 0x10000) {
|
||||
sheet = workBook.createSheet("Spillover from sheet " + (++sheetNo));
|
||||
|
|
|
@ -22,9 +22,10 @@ import java.io.BufferedWriter;
|
|||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileWriter;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
|
@ -431,7 +432,7 @@ public class ToCSV {
|
|||
String csvLineElement;
|
||||
|
||||
// Open a writer onto the CSV file.
|
||||
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
|
||||
try (BufferedWriter bw = Files.newBufferedWriter(file.toPath(), StandardCharsets.ISO_8859_1)) {
|
||||
|
||||
System.out.println("Saving the CSV file [" + file.getName() + "]");
|
||||
|
||||
|
|
|
@ -19,15 +19,16 @@ package org.apache.poi.examples.ss.html;
|
|||
import java.io.BufferedReader;
|
||||
import java.io.Closeable;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Formatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
|
@ -189,10 +190,7 @@ public final class ToHtml {
|
|||
return;
|
||||
}
|
||||
|
||||
try (
|
||||
FileWriter fw = new FileWriter(args[1]);
|
||||
PrintWriter pw = new PrintWriter(fw)
|
||||
) {
|
||||
try (PrintWriter pw = new PrintWriter(args[1], "UTF-8")) {
|
||||
ToHtml toHtml = create(args[0], pw);
|
||||
toHtml.setCompleteHTML(true);
|
||||
toHtml.printPage();
|
||||
|
@ -243,7 +241,7 @@ public final class ToHtml {
|
|||
|
||||
private void ensureOut() {
|
||||
if (out == null) {
|
||||
out = new Formatter(output);
|
||||
out = new Formatter(output, Locale.ROOT);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -252,7 +250,7 @@ public final class ToHtml {
|
|||
|
||||
// First, copy the base css
|
||||
try (BufferedReader in = new BufferedReader(new InputStreamReader(
|
||||
getClass().getResourceAsStream("excelStyle.css")))){
|
||||
getClass().getResourceAsStream("excelStyle.css"), StandardCharsets.ISO_8859_1))){
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) {
|
||||
out.format("%s%n", line);
|
||||
|
@ -325,7 +323,7 @@ public final class ToHtml {
|
|||
style = wb.getCellStyleAt((short) 0);
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
try (Formatter fmt = new Formatter(sb)) {
|
||||
try (Formatter fmt = new Formatter(sb, Locale.ROOT)) {
|
||||
fmt.format("style_%02x", style.getIndex());
|
||||
return fmt.toString();
|
||||
}
|
||||
|
|
|
@ -22,8 +22,10 @@ package org.apache.poi.examples.xslf;
|
|||
import java.io.BufferedReader;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -62,7 +64,7 @@ public final class BarChartDemo {
|
|||
}
|
||||
|
||||
try (FileInputStream argIS = new FileInputStream(args[0]);
|
||||
BufferedReader modelReader = new BufferedReader(new FileReader(args[1]))) {
|
||||
BufferedReader modelReader = Files.newBufferedReader(Paths.get(args[1]), StandardCharsets.ISO_8859_1)) {
|
||||
|
||||
String chartTitle = modelReader.readLine(); // first line is chart title
|
||||
String[] series = modelReader.readLine().split(",");
|
||||
|
|
|
@ -23,8 +23,10 @@ import java.awt.geom.Rectangle2D;
|
|||
import java.io.BufferedReader;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -70,7 +72,7 @@ public final class ChartFromScratch {
|
|||
return;
|
||||
}
|
||||
|
||||
try (BufferedReader modelReader = new BufferedReader(new FileReader(args[0]))) {
|
||||
try (BufferedReader modelReader = Files.newBufferedReader(Paths.get(args[0]), StandardCharsets.ISO_8859_1)) {
|
||||
|
||||
String chartTitle = modelReader.readLine(); // first line is chart title
|
||||
String[] series = modelReader.readLine().split(",");
|
||||
|
|
|
@ -22,8 +22,10 @@ package org.apache.poi.examples.xslf;
|
|||
import java.io.BufferedReader;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -59,7 +61,7 @@ public final class PieChartDemo {
|
|||
}
|
||||
|
||||
try (FileInputStream argIS = new FileInputStream(args[0]);
|
||||
BufferedReader modelReader = new BufferedReader(new FileReader(args[1]))) {
|
||||
BufferedReader modelReader = Files.newBufferedReader(Paths.get(args[1]), StandardCharsets.ISO_8859_1)) {
|
||||
String chartTitle = modelReader.readLine(); // first line is chart title
|
||||
|
||||
try (XMLSlideShow pptx = new XMLSlideShow(argIS)) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import org.apache.poi.ss.usermodel.FillPatternType;
|
|||
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.util.CellReference;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
||||
import org.apache.poi.xssf.usermodel.XSSFDataFormat;
|
||||
import org.apache.poi.xssf.usermodel.XSSFFont;
|
||||
|
@ -155,7 +156,7 @@ public final class BigGridDemo {
|
|||
|
||||
private static void generate(Writer out, Map<String, XSSFCellStyle> styles) throws Exception {
|
||||
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
Calendar calendar = LocaleUtil.getLocaleCalendar();
|
||||
|
||||
SpreadsheetWriter sw = new SpreadsheetWriter(out);
|
||||
sw.beginSheet();
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|||
import org.apache.poi.ss.usermodel.PrintOrientation;
|
||||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.xssf.usermodel.XSSFCell;
|
||||
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
||||
import org.apache.poi.xssf.usermodel.XSSFColor;
|
||||
|
@ -61,7 +62,7 @@ public class CalendarDemo {
|
|||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
Calendar calendar = LocaleUtil.getLocaleCalendar();
|
||||
if(args.length > 0) calendar.set(Calendar.YEAR, Integer.parseInt(args[0]));
|
||||
|
||||
int year = calendar.get(Calendar.YEAR);
|
||||
|
|
|
@ -31,6 +31,7 @@ import org.apache.poi.ss.usermodel.DataFormat;
|
|||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.util.AreaReference;
|
||||
import org.apache.poi.ss.util.CellReference;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.xssf.usermodel.XSSFPivotTable;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
@ -67,9 +68,9 @@ public class CreatePivotTable2 {
|
|||
}
|
||||
|
||||
public static void setCellData(XSSFSheet sheet){
|
||||
Calendar cal1 = Calendar.getInstance();
|
||||
Calendar cal1 = LocaleUtil.getLocaleCalendar();
|
||||
cal1.set(2017, 0, 1, 0, 0, 0);
|
||||
Calendar cal2 = Calendar.getInstance();
|
||||
Calendar cal2 = LocaleUtil.getLocaleCalendar();
|
||||
cal2.set(2017, 1, 1, 0, 0, 0);
|
||||
Row row1 = sheet.createRow(0);
|
||||
// Create a cell and put a value in it.
|
||||
|
|
|
@ -23,8 +23,10 @@ package org.apache.poi.examples.xwpf.usermodel;
|
|||
import java.io.BufferedReader;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -61,7 +63,7 @@ public final class BarChartExample {
|
|||
}
|
||||
|
||||
try (FileInputStream argIS = new FileInputStream(args[0]);
|
||||
BufferedReader modelReader = new BufferedReader(new FileReader(args[1]))) {
|
||||
BufferedReader modelReader = Files.newBufferedReader(Paths.get(args[1]), StandardCharsets.ISO_8859_1)) {
|
||||
|
||||
String chartTitle = modelReader.readLine(); // first line is chart title
|
||||
String[] series = modelReader.readLine().split(",");
|
||||
|
|
|
@ -21,8 +21,10 @@ package org.apache.poi.examples.xwpf.usermodel;
|
|||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -65,7 +67,7 @@ public final class ChartFromScratch {
|
|||
return;
|
||||
}
|
||||
|
||||
try (BufferedReader modelReader = new BufferedReader(new FileReader(args[0]))) {
|
||||
try (BufferedReader modelReader = Files.newBufferedReader(Paths.get(args[0]), StandardCharsets.ISO_8859_1)) {
|
||||
|
||||
String chartTitle = modelReader.readLine(); // first line is chart title
|
||||
String[] series = modelReader.readLine().split(",");
|
||||
|
|
|
@ -28,6 +28,7 @@ import java.io.File;
|
|||
import java.io.PrintStream;
|
||||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.apache.tools.ant.BuildEvent;
|
||||
import org.apache.tools.ant.BuildException;
|
||||
import org.apache.tools.ant.BuildListener;
|
||||
|
@ -140,12 +141,8 @@ public class TestBuildFile {
|
|||
try {
|
||||
sysOut.flush();
|
||||
sysErr.flush();
|
||||
StringBuilder outBuffer = new StringBuilder();
|
||||
PrintStream out = new PrintStream(new AntOutputStream(outBuffer));
|
||||
System.setOut(out);
|
||||
StringBuilder errBuffer = new StringBuilder();
|
||||
PrintStream err = new PrintStream(new AntOutputStream(errBuffer));
|
||||
System.setErr(err);
|
||||
System.setOut(new NullPrintStream());
|
||||
System.setErr(new NullPrintStream());
|
||||
logBuffer = new StringBuilder();
|
||||
fullLogBuffer = new StringBuilder();
|
||||
buildException = null;
|
||||
|
|
|
@ -104,7 +104,7 @@ public class HPSFFileHandler extends POIFSFileHandler {
|
|||
}
|
||||
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
PrintStream psNew = new PrintStream(bos);
|
||||
PrintStream psNew = new PrintStream(bos, true, "ISO-8859-1");
|
||||
PrintStream ps = System.out;
|
||||
try {
|
||||
System.setOut(psNew);
|
||||
|
|
|
@ -22,7 +22,6 @@ import static org.junit.Assert.assertNotNull;
|
|||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
@ -34,6 +33,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.junit.Test;
|
||||
|
||||
public class HSSFFileHandler extends SpreadsheetHandler {
|
||||
|
@ -88,11 +88,7 @@ public class HSSFFileHandler extends SpreadsheetHandler {
|
|||
PrintStream oldOut = System.out;
|
||||
String fileWithParent = file.getParentFile().getName() + "/" + file.getName();
|
||||
try {
|
||||
System.setOut(new PrintStream(new OutputStream() {
|
||||
@Override
|
||||
public void write(int b) {
|
||||
}
|
||||
}));
|
||||
System.setOut(new NullPrintStream());
|
||||
|
||||
BiffViewer.main(new String[]{file.getAbsolutePath()});
|
||||
|
||||
|
|
|
@ -20,7 +20,9 @@ import java.io.IOException;
|
|||
import java.lang.management.ManagementFactory;
|
||||
|
||||
import com.sun.management.HotSpotDiagnosticMXBean;
|
||||
import org.apache.poi.util.SuppressForbidden;
|
||||
|
||||
@SuppressForbidden("class only exists for manual tests in XSSFFileHandler")
|
||||
public class HeapDump {
|
||||
// This is the name of the HotSpot Diagnostic MBean
|
||||
private static final String HOTSPOT_BEAN_NAME =
|
||||
|
|
|
@ -28,11 +28,9 @@ import java.io.File;
|
|||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.xml.transform.TransformerException;
|
||||
|
@ -51,6 +49,7 @@ import org.apache.poi.poifs.crypt.Decryptor;
|
|||
import org.apache.poi.poifs.crypt.EncryptionInfo;
|
||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.apache.poi.xssf.eventusermodel.XSSFReader;
|
||||
import org.apache.poi.xssf.extractor.XSSFExportToXml;
|
||||
import org.apache.poi.xssf.usermodel.XSSFMap;
|
||||
|
@ -221,77 +220,4 @@ public class XSSFFileHandler extends SpreadsheetHandler {
|
|||
public void testAdditional() throws Exception {
|
||||
handleAdditional(new File("test-data/spreadsheet/poc-xmlbomb.xlsx"));
|
||||
}
|
||||
|
||||
// need to override all methods to omit calls to UTF-handling methods
|
||||
static class NullPrintStream extends PrintStream {
|
||||
@SuppressWarnings("resource")
|
||||
NullPrintStream() {
|
||||
super(new OutputStream() {
|
||||
@Override
|
||||
public void write(int b) {}
|
||||
@Override
|
||||
public void write(byte[] b) {}
|
||||
@Override
|
||||
public void write(byte[] b, int off, int len) {}
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public void write(int b) {}
|
||||
@Override
|
||||
public void write(byte[] buf, int off, int len) {}
|
||||
@Override
|
||||
public void print(boolean b) {}
|
||||
@Override
|
||||
public void print(char c) {}
|
||||
@Override
|
||||
public void print(int i) {}
|
||||
@Override
|
||||
public void print(long l) {}
|
||||
@Override
|
||||
public void print(float f) {}
|
||||
@Override
|
||||
public void print(double d) {}
|
||||
@Override
|
||||
public void print(char[] s) {}
|
||||
@Override
|
||||
public void print(String s) {}
|
||||
@Override
|
||||
public void print(Object obj) {}
|
||||
@Override
|
||||
public void println() {}
|
||||
@Override
|
||||
public void println(boolean x) {}
|
||||
@Override
|
||||
public void println(char x) {}
|
||||
@Override
|
||||
public void println(int x) {}
|
||||
@Override
|
||||
public void println(long x) {}
|
||||
@Override
|
||||
public void println(float x) {}
|
||||
@Override
|
||||
public void println(double x) {}
|
||||
@Override
|
||||
public void println(char[] x) {}
|
||||
@Override
|
||||
public void println(String x) {}
|
||||
@Override
|
||||
public void println(Object x) {}
|
||||
@Override
|
||||
public PrintStream printf(String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream printf(Locale l, String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream format(String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream format(Locale l, String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream append(CharSequence csq) { return this; }
|
||||
@Override
|
||||
public PrintStream append(CharSequence csq, int start, int end) { return this; }
|
||||
@Override
|
||||
public PrintStream append(char c) { return this; }
|
||||
@Override
|
||||
public void write(byte[] b) {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -417,10 +417,8 @@ public final class TestSXSSFWorkbook extends BaseTestXWorkbook {
|
|||
|
||||
private static void saveTwice(Workbook wb) throws Exception {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
try {
|
||||
NullOutputStream out = new NullOutputStream();
|
||||
try (NullOutputStream out = new NullOutputStream()) {
|
||||
wb.write(out);
|
||||
out.close();
|
||||
} catch (Exception e) {
|
||||
throw new Exception("ERROR: failed on " + (i + 1)
|
||||
+ "th time calling " + wb.getClass().getName()
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
# This file contains API signatures which are specific to POI.
|
||||
# The goal is to minimize implicit defaults
|
||||
|
||||
@defaultMessage POI forbidden APIs which are tolerated in non-production code, e.g. in tests and examples
|
||||
@defaultMessage POI forbidden APIs which are not tolerated in production code
|
||||
|
||||
# We have applications which use this to return error codes on invalid commandline parameters...
|
||||
#@defaultMessage Please do not terminate the application
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.io.File;
|
|||
import java.io.PrintStream;
|
||||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.util.NullOutputStream;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.junit.Test;
|
||||
|
||||
public class TestHMEFDumper {
|
||||
|
@ -48,7 +48,7 @@ public class TestHMEFDumper {
|
|||
private static void doMain(String... args) throws Exception {
|
||||
PrintStream ps = System.out;
|
||||
try {
|
||||
System.setOut(new PrintStream(new NullOutputStream(), true, "UTF-8"));
|
||||
System.setOut(new NullPrintStream());
|
||||
HMEFDumper.main(args);
|
||||
} finally {
|
||||
System.setOut(ps);
|
||||
|
|
|
@ -16,22 +16,9 @@
|
|||
==================================================================== */
|
||||
package org.apache.poi.hslf.dev;
|
||||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
|
||||
import org.apache.poi.hslf.exceptions.OldPowerPointFormatException;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.util.NullOutputStream;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
|
@ -42,12 +29,21 @@ import java.util.Locale;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
|
||||
import org.apache.poi.hslf.exceptions.OldPowerPointFormatException;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
|
||||
@RunWith(Parameterized.class)
|
||||
public abstract class BasePPTIteratingTest {
|
||||
protected static final OutputStream NULL_OUTPUT_STREAM = new NullOutputStream();
|
||||
|
||||
protected static final Set<String> OLD_FILES = new HashSet<>();
|
||||
static {
|
||||
OLD_FILES.add("PPT95.ppt");
|
||||
|
@ -89,7 +85,7 @@ public abstract class BasePPTIteratingTest {
|
|||
IOUtils.setByteArrayMaxOverride(5*1024*1024);
|
||||
|
||||
// redirect standard out during the test to avoid spamming the console with output
|
||||
System.setOut(new PrintStream(NULL_OUTPUT_STREAM, true, LocaleUtil.CHARSET_1252.name()));
|
||||
System.setOut(new NullPrintStream());
|
||||
}
|
||||
|
||||
@After
|
||||
|
|
|
@ -35,16 +35,17 @@ import java.io.File;
|
|||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.text.AttributedCharacterIterator.Attribute;
|
||||
import java.text.CharacterIterator;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -59,7 +60,6 @@ import org.apache.poi.hslf.exceptions.OldPowerPointFormatException;
|
|||
import org.apache.poi.hslf.model.HeadersFooters;
|
||||
import org.apache.poi.hslf.record.DocInfoListContainer;
|
||||
import org.apache.poi.hslf.record.Document;
|
||||
import org.apache.poi.hslf.record.Record;
|
||||
import org.apache.poi.hslf.record.RecordTypes;
|
||||
import org.apache.poi.hslf.record.SlideListWithText;
|
||||
import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
|
||||
|
@ -88,6 +88,7 @@ import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;
|
|||
import org.apache.poi.sl.usermodel.TextRun;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.util.LittleEndian;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.apache.poi.util.StringUtil;
|
||||
import org.apache.poi.util.Units;
|
||||
import org.junit.Test;
|
||||
|
@ -463,7 +464,8 @@ public final class TestBugs {
|
|||
*/
|
||||
@Test
|
||||
public void bug45776() throws IOException {
|
||||
HSLFSlideShow ppt = open("45776.ppt");
|
||||
DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ROOT);
|
||||
try (HSLFSlideShow ppt = open("45776.ppt")) {
|
||||
|
||||
// get slides
|
||||
for (HSLFSlide slide : ppt.getSlides()) {
|
||||
|
@ -478,16 +480,16 @@ public final class TestBugs {
|
|||
if (!str.contains("$$DATE$$")) {
|
||||
continue;
|
||||
}
|
||||
str = str.replace("$$DATE$$", new Date().toString());
|
||||
str = str.replace("$$DATE$$", df.format(new Date()));
|
||||
tb.setText(str);
|
||||
|
||||
List<HSLFTextParagraph> tr = tb.getTextParagraphs();
|
||||
assertEquals(str.length()+1,tr.get(0).getParagraphStyle().getCharactersCovered());
|
||||
assertEquals(str.length()+1,tr.get(0).getTextRuns().get(0).getCharacterStyle().getCharactersCovered());
|
||||
assertEquals(str.length() + 1, tr.get(0).getParagraphStyle().getCharactersCovered());
|
||||
assertEquals(str.length() + 1, tr.get(0).getTextRuns().get(0).getCharacterStyle().getCharactersCovered());
|
||||
}
|
||||
}
|
||||
|
||||
ppt.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -873,13 +875,8 @@ public final class TestBugs {
|
|||
assertEquals(hlRun.getStartIndex(), hlShape.getStartIndex());
|
||||
assertEquals(hlRun.getEndIndex(), hlShape.getEndIndex());
|
||||
|
||||
OutputStream nullOutput = new OutputStream(){
|
||||
@Override
|
||||
public void write(int b) throws IOException {}
|
||||
};
|
||||
|
||||
final boolean[] found = {false};
|
||||
DummyGraphics2d dgfx = new DummyGraphics2d(new PrintStream(nullOutput)){
|
||||
DummyGraphics2d dgfx = new DummyGraphics2d(new NullPrintStream()){
|
||||
@Override
|
||||
public void drawString(AttributedCharacterIterator iterator, float x, float y) {
|
||||
// For the test file, common sl draws textruns one by one and not mixed
|
||||
|
|
|
@ -44,6 +44,7 @@ import org.apache.poi.poifs.filesystem.DirectoryEntry;
|
|||
import org.apache.poi.poifs.filesystem.Entry;
|
||||
import org.apache.poi.poifs.filesystem.EntryUtils;
|
||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
@ -102,7 +103,7 @@ public class TestExtractEmbeddedMSG {
|
|||
msg.setReturnNullOnMissingChunk(true);
|
||||
Calendar messageDate = msg.getMessageDate();
|
||||
assertNotNull(messageDate);
|
||||
Calendar expectedMessageDate = Calendar.getInstance();
|
||||
Calendar expectedMessageDate = LocaleUtil.getLocaleCalendar();
|
||||
expectedMessageDate.set(2010, 05, 17, 23, 52, 19); // 2010/06/17 23:52:19 GMT
|
||||
expectedMessageDate.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
expectedMessageDate.set(Calendar.MILLISECOND, 0);
|
||||
|
|
|
@ -168,7 +168,7 @@ public final class TestFixedSizedProperties {
|
|||
*/
|
||||
@Test
|
||||
public void testReadMessageDateSucceedsWithHSMFDump() throws IOException {
|
||||
PrintStream stream = new PrintStream(new ByteArrayOutputStream());
|
||||
PrintStream stream = new PrintStream(new ByteArrayOutputStream(), true, "ISO-8859-1");
|
||||
HSMFDump dump = new HSMFDump(fsMessageSucceeds);
|
||||
dump.dump(stream);
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ public final class TestFixedSizedProperties {
|
|||
*/
|
||||
@Test
|
||||
public void testReadMessageDateFailsWithHSMFDump() throws Exception {
|
||||
PrintStream stream = new PrintStream(new ByteArrayOutputStream());
|
||||
PrintStream stream = new PrintStream(new ByteArrayOutputStream(), true, "ISO-8859-1");
|
||||
HSMFDump dump = new HSMFDump(fsMessageFails);
|
||||
dump.dump(stream);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ import static org.junit.Assert.assertNotNull;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -29,7 +28,6 @@ import java.util.Map;
|
|||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.util.NullOutputStream;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
|
@ -46,8 +44,6 @@ import org.junit.runners.Parameterized.Parameters;
|
|||
*/
|
||||
@RunWith(Parameterized.class)
|
||||
public abstract class BaseTestIteratingXLS {
|
||||
protected static final OutputStream NULL_OUTPUT_STREAM = new NullOutputStream();
|
||||
|
||||
@Rule
|
||||
public ExpectedException thrown = ExpectedException.none();
|
||||
|
||||
|
@ -74,7 +70,7 @@ public abstract class BaseTestIteratingXLS {
|
|||
assertNotNull("Did not find any xls files in directory " + dir, files);
|
||||
|
||||
for(String file : files) {
|
||||
list.add(new Object[] { new File(dir, file) });
|
||||
list.add(new Object[]{new File(dir, file)});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ import java.io.InputStream;
|
|||
import org.apache.poi.EncryptedDocumentException;
|
||||
import org.apache.poi.hssf.OldExcelFormatException;
|
||||
import org.apache.poi.hssf.record.RecordInputStream;
|
||||
import org.apache.poi.util.NullOutputStream;
|
||||
import org.apache.poi.util.RecordFormatException;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
|
@ -51,7 +52,7 @@ public class TestBiffDrawingToXml extends BaseTestIteratingXLS {
|
|||
@Override
|
||||
void runOneFile(File pFile) throws Exception {
|
||||
try (InputStream wb = new FileInputStream(pFile)) {
|
||||
BiffDrawingToXml.writeToFile(NULL_OUTPUT_STREAM, wb, false, new String[0]);
|
||||
BiffDrawingToXml.writeToFile(new NullOutputStream(), wb, false, new String[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.apache.poi.hssf.OldExcelFormatException;
|
|||
import org.apache.poi.hssf.record.RecordInputStream;
|
||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.util.NullOutputStream;
|
||||
import org.apache.poi.util.RecordFormatException;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Ignore;
|
||||
|
@ -62,7 +63,7 @@ public class TestBiffViewer extends BaseTestIteratingXLS {
|
|||
try (POIFSFileSystem fs = new POIFSFileSystem(fileIn, true);
|
||||
InputStream is = BiffViewer.getPOIFSInputStream(fs)) {
|
||||
// use a NullOutputStream to not write the bytes anywhere for best runtime
|
||||
PrintWriter dummy = new PrintWriter(new OutputStreamWriter(NULL_OUTPUT_STREAM, LocaleUtil.CHARSET_1252));
|
||||
PrintWriter dummy = new PrintWriter(new OutputStreamWriter(new NullOutputStream(), LocaleUtil.CHARSET_1252));
|
||||
BiffViewer.runBiffViewer(dummy, is, true, true, true, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ import java.io.PrintStream;
|
|||
import org.apache.poi.EncryptedDocumentException;
|
||||
import org.apache.poi.hssf.OldExcelFormatException;
|
||||
import org.apache.poi.hssf.record.RecordInputStream;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.apache.poi.util.RecordFormatException;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class TestEFBiffViewer extends BaseTestIteratingXLS {
|
|||
EXCLUDED.put("testEXCEL_95.xls", OldExcelFormatException.class); // Biff 5 / Excel 95
|
||||
EXCLUDED.put("43493.xls", RecordInputStream.LeftoverDataException.class); // HSSFWorkbook cannot open it as well
|
||||
EXCLUDED.put("44958_1.xls", RecordInputStream.LeftoverDataException.class);
|
||||
EXCLUDED.put("XRefCalc.xls", RuntimeException.class); // "Buffer overrun"
|
||||
// EXCLUDED.put("XRefCalc.xls", RuntimeException.class); // "Buffer overrun"
|
||||
EXCLUDED.put("61300.xls", RecordFormatException.class);
|
||||
EXCLUDED.put("64130.xls", OldExcelFormatException.class); //Biff 5
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ public class TestEFBiffViewer extends BaseTestIteratingXLS {
|
|||
PrintStream save = System.out;
|
||||
try {
|
||||
// redirect standard out during the test to avoid spamming the console with output
|
||||
System.setOut(new PrintStream(NULL_OUTPUT_STREAM,true,LocaleUtil.CHARSET_1252.name()));
|
||||
System.setOut(new NullPrintStream());
|
||||
|
||||
EFBiffViewer.main(new String[] { fileIn.getAbsolutePath() });
|
||||
} finally {
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.io.PrintStream;
|
|||
import org.apache.poi.EncryptedDocumentException;
|
||||
import org.apache.poi.hssf.OldExcelFormatException;
|
||||
import org.apache.poi.hssf.record.RecordInputStream;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.apache.poi.util.RecordFormatException;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
|
@ -55,7 +55,7 @@ public class TestFormulaViewer extends BaseTestIteratingXLS {
|
|||
PrintStream save = System.out;
|
||||
try {
|
||||
// redirect standard out during the test to avoid spamming the console with output
|
||||
System.setOut(new PrintStream(NULL_OUTPUT_STREAM,true,LocaleUtil.CHARSET_1252.name()));
|
||||
System.setOut(new NullPrintStream());
|
||||
|
||||
FormulaViewer viewer = new FormulaViewer();
|
||||
viewer.setFile(fileIn.getAbsolutePath());
|
||||
|
|
|
@ -25,7 +25,7 @@ import org.apache.poi.EncryptedDocumentException;
|
|||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.hssf.OldExcelFormatException;
|
||||
import org.apache.poi.hssf.record.RecordInputStream;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.apache.poi.util.RecordFormatException;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Ignore;
|
||||
|
@ -64,7 +64,7 @@ public class TestReSave extends BaseTestIteratingXLS {
|
|||
PrintStream save = System.out;
|
||||
try {
|
||||
// redirect standard out during the test to avoid spamming the console with output
|
||||
System.setOut(new PrintStream(NULL_OUTPUT_STREAM,true,LocaleUtil.CHARSET_1252.name()));
|
||||
System.setOut(new NullPrintStream());
|
||||
|
||||
File reSavedFile = new File(fileIn.getParentFile(), fileIn.getName().replace(".xls", "-saved.xls"));
|
||||
try {
|
||||
|
|
|
@ -21,7 +21,7 @@ import java.io.IOException;
|
|||
import java.io.PrintStream;
|
||||
|
||||
import org.apache.poi.hssf.OldExcelFormatException;
|
||||
import org.apache.poi.util.LocaleUtil;
|
||||
import org.apache.poi.util.NullPrintStream;
|
||||
import org.apache.poi.util.RecordFormatException;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
|
@ -46,7 +46,7 @@ public class TestRecordLister extends BaseTestIteratingXLS {
|
|||
PrintStream save = System.out;
|
||||
try {
|
||||
// redirect standard out during the test to avoid spamming the console with output
|
||||
System.setOut(new PrintStream(NULL_OUTPUT_STREAM,true,LocaleUtil.CHARSET_1252.name()));
|
||||
System.setOut(new NullPrintStream());
|
||||
|
||||
RecordLister viewer = new RecordLister();
|
||||
viewer.setFile(fileIn.getAbsolutePath());
|
||||
|
|
|
@ -26,8 +26,6 @@ import static org.junit.Assert.assertSame;
|
|||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ConcurrentModificationException;
|
||||
|
@ -39,8 +37,9 @@ import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
|
|||
import org.apache.poi.ss.util.CellAddress;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.util.NullOutputStream;
|
||||
import org.apache.poi.util.TempFile;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
|
||||
public abstract class BaseTestWorkbook {
|
||||
|
||||
|
@ -50,18 +49,22 @@ public abstract class BaseTestWorkbook {
|
|||
_testDataProvider = testDataProvider;
|
||||
}
|
||||
|
||||
@Rule
|
||||
public ExpectedException thrown = ExpectedException.none();
|
||||
|
||||
|
||||
@Test
|
||||
public void sheetIterator_forEach() throws IOException {
|
||||
final Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
wb.createSheet("Sheet0");
|
||||
wb.createSheet("Sheet1");
|
||||
wb.createSheet("Sheet2");
|
||||
int i = 0;
|
||||
for (Sheet sh : wb) {
|
||||
assertEquals("Sheet"+i, sh.getSheetName());
|
||||
assertEquals("Sheet" + i, sh.getSheetName());
|
||||
i++;
|
||||
}
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -71,7 +74,7 @@ public abstract class BaseTestWorkbook {
|
|||
*/
|
||||
@Test(expected=ConcurrentModificationException.class)
|
||||
public void sheetIterator_sheetsReordered() throws IOException {
|
||||
final Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
wb.createSheet("Sheet0");
|
||||
wb.createSheet("Sheet1");
|
||||
wb.createSheet("Sheet2");
|
||||
|
@ -81,10 +84,7 @@ public abstract class BaseTestWorkbook {
|
|||
wb.setSheetOrder("Sheet2", 1);
|
||||
|
||||
// Iterator order should be fixed when iterator is created
|
||||
try {
|
||||
assertEquals("Sheet1", it.next().getSheetName());
|
||||
} finally {
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ public abstract class BaseTestWorkbook {
|
|||
*/
|
||||
@Test(expected=ConcurrentModificationException.class)
|
||||
public void sheetIterator_sheetRemoved() throws IOException {
|
||||
final Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
wb.createSheet("Sheet0");
|
||||
wb.createSheet("Sheet1");
|
||||
wb.createSheet("Sheet2");
|
||||
|
@ -104,10 +104,7 @@ public abstract class BaseTestWorkbook {
|
|||
wb.removeSheetAt(1);
|
||||
|
||||
// Iterator order should be fixed when iterator is created
|
||||
try {
|
||||
it.next();
|
||||
} finally {
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,22 +114,19 @@ public abstract class BaseTestWorkbook {
|
|||
*/
|
||||
@Test(expected=UnsupportedOperationException.class)
|
||||
public void sheetIterator_remove() throws IOException {
|
||||
final Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
wb.createSheet("Sheet0");
|
||||
|
||||
Iterator<Sheet> it = wb.sheetIterator();
|
||||
it.next(); //Sheet0
|
||||
try {
|
||||
it.remove();
|
||||
} finally {
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void createSheet() throws IOException {
|
||||
Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
assertEquals(0, wb.getNumberOfSheets());
|
||||
|
||||
//getting a sheet by invalid index or non-existing name
|
||||
|
@ -222,13 +216,13 @@ public abstract class BaseTestWorkbook {
|
|||
assertNull(wb.getSheet("unknown"));
|
||||
|
||||
//serialize and read again
|
||||
Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb);
|
||||
wb.close();
|
||||
try (Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb)) {
|
||||
assertEquals(3, wb2.getNumberOfSheets());
|
||||
assertEquals(0, wb2.getSheetIndex("sheet0"));
|
||||
assertEquals(1, wb2.getSheetIndex("sheet1"));
|
||||
assertEquals(2, wb2.getSheetIndex("I changed!"));
|
||||
wb2.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -241,7 +235,7 @@ public abstract class BaseTestWorkbook {
|
|||
*/
|
||||
@Test
|
||||
public void createSheetWithLongNames() throws IOException {
|
||||
Workbook wb1 = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb1 = _testDataProvider.createWorkbook()) {
|
||||
|
||||
String sheetName1 = "My very long sheet name which is longer than 31 chars";
|
||||
String truncatedSheetName1 = sheetName1.substring(0, 31);
|
||||
|
@ -256,7 +250,8 @@ public abstract class BaseTestWorkbook {
|
|||
String sheetName2 = "My very long sheet name which is longer than 31 chars " +
|
||||
"and sheetName2.substring(0, 31) == sheetName1.substring(0, 31)";
|
||||
try {
|
||||
/*Sheet sh2 =*/ wb1.createSheet(sheetName2);
|
||||
/*Sheet sh2 =*/
|
||||
wb1.createSheet(sheetName2);
|
||||
fail("expected exception");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// expected during successful test
|
||||
|
@ -270,12 +265,12 @@ public abstract class BaseTestWorkbook {
|
|||
assertSame(sh3, wb1.getSheet(truncatedSheetName3));
|
||||
|
||||
//serialize and read again
|
||||
Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1);
|
||||
wb1.close();
|
||||
try (Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1)) {
|
||||
assertEquals(2, wb2.getNumberOfSheets());
|
||||
assertEquals(0, wb2.getSheetIndex(truncatedSheetName1));
|
||||
assertEquals(1, wb2.getSheetIndex(truncatedSheetName3));
|
||||
wb2.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -339,24 +334,22 @@ public abstract class BaseTestWorkbook {
|
|||
Workbook wbr = _testDataProvider.writeOutAndReadBack(wb);
|
||||
sheet = wbr.getSheet("new sheet");
|
||||
assertEquals(new CellAddress("E11"), sheet.getActiveCell());
|
||||
|
||||
//wbr.write(new FileOutputStream("c:/temp/yyy." + _testDataProvider.getStandardFileNameExtension()));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultValues() throws IOException {
|
||||
Workbook b = _testDataProvider.createWorkbook();
|
||||
try (Workbook b = _testDataProvider.createWorkbook()) {
|
||||
assertEquals(0, b.getActiveSheetIndex());
|
||||
assertEquals(0, b.getFirstVisibleTab());
|
||||
assertEquals(0, b.getNumberOfNames());
|
||||
assertEquals(0, b.getNumberOfSheets());
|
||||
b.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sheetSelection() throws IOException {
|
||||
Workbook b = _testDataProvider.createWorkbook();
|
||||
try (Workbook b = _testDataProvider.createWorkbook()) {
|
||||
b.createSheet("Sheet One");
|
||||
b.createSheet("Sheet Two");
|
||||
b.setActiveSheet(1);
|
||||
|
@ -364,12 +357,12 @@ public abstract class BaseTestWorkbook {
|
|||
b.setFirstVisibleTab(1);
|
||||
assertEquals(1, b.getActiveSheetIndex());
|
||||
assertEquals(1, b.getFirstVisibleTab());
|
||||
b.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void printArea() throws IOException {
|
||||
Workbook workbook = _testDataProvider.createWorkbook();
|
||||
try (Workbook workbook = _testDataProvider.createWorkbook()) {
|
||||
Sheet sheet1 = workbook.createSheet("Test Print Area");
|
||||
String sheetName1 = sheet1.getSheetName();
|
||||
|
||||
|
@ -385,12 +378,12 @@ public abstract class BaseTestWorkbook {
|
|||
|
||||
workbook.removePrintArea(0);
|
||||
assertNull(workbook.getPrintArea(0));
|
||||
workbook.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSetActiveSheet() throws IOException {
|
||||
Workbook workbook = _testDataProvider.createWorkbook();
|
||||
try (Workbook workbook = _testDataProvider.createWorkbook()) {
|
||||
assertEquals(0, workbook.getActiveSheetIndex());
|
||||
|
||||
workbook.createSheet("sheet1");
|
||||
|
@ -404,14 +397,14 @@ public abstract class BaseTestWorkbook {
|
|||
workbook.setActiveSheet(0);
|
||||
// test if second sheet is set up
|
||||
assertEquals(0, workbook.getActiveSheetIndex());
|
||||
workbook.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setSheetOrder() throws IOException {
|
||||
Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
|
||||
for (int i=0; i < 10; i++) {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
wb.createSheet("Sheet " + i);
|
||||
}
|
||||
|
||||
|
@ -451,8 +444,7 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(8, wb.getSheetIndex("Sheet 9"));
|
||||
assertEquals(9, wb.getSheetIndex("Sheet 1"));
|
||||
|
||||
Workbook wbr = _testDataProvider.writeOutAndReadBack(wb);
|
||||
wb.close();
|
||||
try (Workbook wbr = _testDataProvider.writeOutAndReadBack(wb)) {
|
||||
|
||||
assertEquals(0, wbr.getSheetIndex("Sheet 6"));
|
||||
assertEquals(1, wbr.getSheetIndex("Sheet 0"));
|
||||
|
@ -468,17 +460,17 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(1, wb.getActiveSheetIndex());
|
||||
|
||||
// Now get the index by the sheet, not the name
|
||||
for(int i=0; i<10; i++) {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
Sheet s = wbr.getSheetAt(i);
|
||||
assertEquals(i, wbr.getSheetIndex(s));
|
||||
}
|
||||
|
||||
wbr.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cloneSheet() throws IOException {
|
||||
Workbook book = _testDataProvider.createWorkbook();
|
||||
try (Workbook book = _testDataProvider.createWorkbook()) {
|
||||
Sheet sheet = book.createSheet("TEST");
|
||||
sheet.createRow(0).createCell(0).setCellValue("Test");
|
||||
sheet.createRow(1).createCell(0).setCellValue(36.6);
|
||||
|
@ -502,12 +494,12 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(2, clonedSheet.addMergedRegion(new CellRangeAddress(6, 7, 0, 2)));
|
||||
assertEquals(3, clonedSheet.getPhysicalNumberOfRows());
|
||||
assertEquals(3, clonedSheet.getNumMergedRegions());
|
||||
book.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parentReferences() throws IOException {
|
||||
Workbook wb1 = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb1 = _testDataProvider.createWorkbook()) {
|
||||
Sheet sheet = wb1.createSheet();
|
||||
assertSame(wb1, sheet.getWorkbook());
|
||||
|
||||
|
@ -518,7 +510,7 @@ public abstract class BaseTestWorkbook {
|
|||
assertSame(sheet, cell.getSheet());
|
||||
assertSame(row, cell.getRow());
|
||||
|
||||
Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1);
|
||||
try (Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1)) {
|
||||
wb1.close();
|
||||
sheet = wb2.getSheetAt(0);
|
||||
assertSame(wb2, sheet.getWorkbook());
|
||||
|
@ -529,7 +521,8 @@ public abstract class BaseTestWorkbook {
|
|||
cell = row.getCell(1);
|
||||
assertSame(sheet, cell.getSheet());
|
||||
assertSame(row, cell.getRow());
|
||||
wb2.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -539,8 +532,7 @@ public abstract class BaseTestWorkbook {
|
|||
*/
|
||||
@Test
|
||||
public void setRepeatingRowsAnsColumns() throws IOException {
|
||||
Workbook wb = _testDataProvider.createWorkbook();
|
||||
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
CellRangeAddress cra = new CellRangeAddress(0, 3, 0, 0);
|
||||
String expRows = "1:4", expCols = "A:A";
|
||||
|
||||
|
@ -557,7 +549,7 @@ public abstract class BaseTestWorkbook {
|
|||
sheet2.setRepeatingColumns(cra);
|
||||
assertEquals(expRows, sheet2.getRepeatingRows().formatAsString());
|
||||
assertEquals(expCols, sheet2.getRepeatingColumns().formatAsString());
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -565,7 +557,7 @@ public abstract class BaseTestWorkbook {
|
|||
*/
|
||||
@Test
|
||||
public void unicodeInAll() throws IOException {
|
||||
Workbook wb1 = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb1 = _testDataProvider.createWorkbook()) {
|
||||
CreationHelper factory = wb1.getCreationHelper();
|
||||
//Create a unicode dataformat (contains euro symbol)
|
||||
DataFormat df = wb1.createDataFormat();
|
||||
|
@ -592,16 +584,15 @@ public abstract class BaseTestWorkbook {
|
|||
c.setCellValue(12.34);
|
||||
c.getCellStyle().setDataFormat(fmt);
|
||||
|
||||
/*Cell c2 =*/ r.createCell(2); // TODO - c2 unused but changing next line ('c'->'c2') causes test to fail
|
||||
/*Cell c2 =*/
|
||||
r.createCell(2); // TODO - c2 unused but changing next line ('c'->'c2') causes test to fail
|
||||
c.setCellValue(factory.createRichTextString("\u20ac"));
|
||||
|
||||
Cell c3 = r.createCell(3);
|
||||
String formulaString = "TEXT(12.34,\"\u20ac###,##\")";
|
||||
c3.setCellFormula(formulaString);
|
||||
|
||||
Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1);
|
||||
wb1.close();
|
||||
|
||||
try (Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1)) {
|
||||
//Test the sheetname
|
||||
s = wb2.getSheet("\u20ac");
|
||||
assertNotNull(s);
|
||||
|
@ -625,13 +616,15 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(formatStr, df.getFormat(c.getCellStyle().getDataFormat()));
|
||||
|
||||
//Test the cell string value
|
||||
/*c2 =*/ r.getCell(2);
|
||||
/*c2 =*/
|
||||
r.getCell(2);
|
||||
assertEquals(c.getRichStringCellValue().getString(), "\u20ac");
|
||||
|
||||
//Test the cell formula
|
||||
c3 = r.getCell(3);
|
||||
assertEquals(c3.getCellFormula(), formulaString);
|
||||
wb2.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Workbook newSetSheetNameTestingWorkbook() {
|
||||
|
@ -671,7 +664,6 @@ public abstract class BaseTestWorkbook {
|
|||
sh3.createRow(4).createCell(0).setCellValue(5);
|
||||
sh3.createRow(5).createCell(0).setCellFormula("sale_3");
|
||||
sh3.createRow(6).createCell(0).setCellFormula("'Testing 47100'!C1");
|
||||
|
||||
return wb;
|
||||
}
|
||||
|
||||
|
@ -682,9 +674,7 @@ public abstract class BaseTestWorkbook {
|
|||
*/
|
||||
@Test
|
||||
public void setSheetName() throws IOException {
|
||||
|
||||
Workbook wb1 = newSetSheetNameTestingWorkbook();
|
||||
|
||||
try (Workbook wb1 = newSetSheetNameTestingWorkbook()) {
|
||||
Sheet sh1 = wb1.getSheetAt(0);
|
||||
|
||||
Name sale_2 = wb1.getName("sale_2");
|
||||
|
@ -731,9 +721,7 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(21.0, evaluator.evaluate(cell1).getNumberValue(), 0);
|
||||
assertEquals(6.0, evaluator.evaluate(cell2).getNumberValue(), 0);
|
||||
|
||||
Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1);
|
||||
wb1.close();
|
||||
|
||||
try (Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1)) {
|
||||
sh1 = wb2.getSheetAt(0);
|
||||
|
||||
sale_2 = wb2.getName("sale_2");
|
||||
|
@ -759,11 +747,12 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(6.0, evaluator.evaluate(cell0).getNumberValue(), 0);
|
||||
assertEquals(21.0, evaluator.evaluate(cell1).getNumberValue(), 0);
|
||||
assertEquals(6.0, evaluator.evaluate(cell2).getNumberValue(), 0);
|
||||
wb2.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void changeSheetNameWithSharedFormulas(String sampleFile) throws IOException {
|
||||
Workbook wb = _testDataProvider.openSampleWorkbook(sampleFile);
|
||||
try (Workbook wb = _testDataProvider.openSampleWorkbook(sampleFile)) {
|
||||
|
||||
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
|
||||
|
||||
|
@ -785,7 +774,7 @@ public abstract class BaseTestWorkbook {
|
|||
|
||||
assertEquals(cellB.getStringCellValue(), evaluator.evaluate(cellA).getStringValue());
|
||||
}
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertSheetOrder(Workbook wb, String... sheets) {
|
||||
|
@ -803,7 +792,8 @@ public abstract class BaseTestWorkbook {
|
|||
|
||||
@Test
|
||||
public void test58499() throws IOException {
|
||||
Workbook workbook = _testDataProvider.createWorkbook();
|
||||
try (Workbook workbook = _testDataProvider.createWorkbook();
|
||||
OutputStream os = new NullOutputStream()) {
|
||||
Sheet sheet = workbook.createSheet();
|
||||
for (int i = 0; i < 900; i++) {
|
||||
Row r = sheet.createRow(i);
|
||||
|
@ -812,32 +802,25 @@ public abstract class BaseTestWorkbook {
|
|||
c.setCellStyle(cs);
|
||||
c.setCellValue("AAA");
|
||||
}
|
||||
try (OutputStream os = new NullOutputStream()) {
|
||||
workbook.write(os);
|
||||
}
|
||||
//workbook.dispose();
|
||||
workbook.close();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void windowOneDefaults() throws IOException {
|
||||
Workbook b = _testDataProvider.createWorkbook();
|
||||
try {
|
||||
try (Workbook b = _testDataProvider.createWorkbook()) {
|
||||
assertEquals(b.getActiveSheetIndex(), 0);
|
||||
assertEquals(b.getFirstVisibleTab(), 0);
|
||||
} catch (NullPointerException npe) {
|
||||
fail("WindowOneRecord in Workbook is probably not initialized");
|
||||
// throws NullPointerException when WindowOneRecord in Workbook is not probably initialized
|
||||
}
|
||||
|
||||
b.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSpreadsheetVersion() throws IOException {
|
||||
final Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
assertEquals(_testDataProvider.getSpreadsheetVersion(), wb.getSpreadsheetVersion());
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
/* FIXME copied from {@link org.apache.poi.ss.TestWorkbookFactory} */
|
||||
|
@ -852,7 +835,8 @@ public abstract class BaseTestWorkbook {
|
|||
@Test
|
||||
public void sheetClone() throws IOException {
|
||||
// First up, try a simple file
|
||||
final Workbook b = _testDataProvider.createWorkbook();
|
||||
try (Workbook b = _testDataProvider.createWorkbook();
|
||||
Workbook bBack = HSSFTestDataSamples.openSampleWorkbook("SheetWithDrawing.xls")) {
|
||||
assertEquals(0, b.getNumberOfSheets());
|
||||
b.createSheet("Sheet One");
|
||||
b.createSheet("Sheet Two");
|
||||
|
@ -862,13 +846,10 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(3, b.getNumberOfSheets());
|
||||
|
||||
// Now try a problem one with drawing records in it
|
||||
Workbook bBack = HSSFTestDataSamples.openSampleWorkbook("SheetWithDrawing.xls");
|
||||
assertEquals(1, bBack.getNumberOfSheets());
|
||||
bBack.cloneSheet(0);
|
||||
assertEquals(2, bBack.getNumberOfSheets());
|
||||
|
||||
bBack.close();
|
||||
b.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -899,23 +880,20 @@ public abstract class BaseTestWorkbook {
|
|||
|
||||
@Test
|
||||
public void addSheetTwice() throws IOException {
|
||||
final Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
Sheet sheet1 = wb.createSheet("Sheet1");
|
||||
assertNotNull(sheet1);
|
||||
try {
|
||||
wb.createSheet("Sheet1");
|
||||
fail("Should fail if we add the same sheet twice");
|
||||
} catch (IllegalArgumentException e) {
|
||||
assertTrue(e.getMessage(), e.getMessage().contains("already contains a sheet named 'Sheet1'"));
|
||||
}
|
||||
|
||||
wb.close();
|
||||
thrown.expect(IllegalArgumentException.class);
|
||||
thrown.expectMessage("already contains a sheet named 'Sheet1'");
|
||||
wb.createSheet("Sheet1");
|
||||
}
|
||||
}
|
||||
|
||||
// bug 51233 and 55075: correctly size image if added to a row with a custom height
|
||||
@Test
|
||||
public void createDrawing() throws Exception {
|
||||
Workbook wb = _testDataProvider.createWorkbook();
|
||||
try (Workbook wb = _testDataProvider.createWorkbook()) {
|
||||
Sheet sheet = wb.createSheet("Main Sheet");
|
||||
Row row0 = sheet.createRow(0);
|
||||
Row row1 = sheet.createRow(1);
|
||||
|
@ -937,7 +915,7 @@ public abstract class BaseTestWorkbook {
|
|||
|
||||
row0.setHeightInPoints(144);
|
||||
// set a column width so that XSSF and SXSSF have the same width (default widths may be different otherwise)
|
||||
sheet.setColumnWidth(0, 100*256);
|
||||
sheet.setColumnWidth(0, 100 * 256);
|
||||
picture.resize();
|
||||
|
||||
// The actual dimensions don't matter as much as having XSSF and SXSSF produce the same size drawings
|
||||
|
@ -953,17 +931,6 @@ public abstract class BaseTestWorkbook {
|
|||
assertEquals(0, anchor.getCol2());
|
||||
assertEquals(0, anchor.getDx1());
|
||||
assertEquals(1114425, anchor.getDx2()); //HSSF: 171
|
||||
|
||||
final boolean writeOut = false;
|
||||
if (writeOut) {
|
||||
String ext = "." + _testDataProvider.getStandardFileNameExtension();
|
||||
String prefix = wb.getClass().getName() + "-createDrawing";
|
||||
File f = TempFile.createTempFile(prefix, ext);
|
||||
FileOutputStream out = new FileOutputStream(f);
|
||||
wb.write(out);
|
||||
out.close();
|
||||
}
|
||||
wb.close();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
package org.apache.poi.util;
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.util.Locale;
|
||||
|
||||
// need to override all methods to omit calls to UTF-handling methods
|
||||
@SuppressForbidden("ignore super constructor with charset - omits declaring UnsupportedEncodingException")
|
||||
public class NullPrintStream extends PrintStream {
|
||||
@SuppressWarnings("resource")
|
||||
public NullPrintStream() {
|
||||
super(new NullOutputStream(), true);
|
||||
}
|
||||
@Override
|
||||
public void write(int b) {}
|
||||
@Override
|
||||
public void write(byte[] buf, int off, int len) {}
|
||||
@Override
|
||||
public void print(boolean b) {}
|
||||
@Override
|
||||
public void print(char c) {}
|
||||
@Override
|
||||
public void print(int i) {}
|
||||
@Override
|
||||
public void print(long l) {}
|
||||
@Override
|
||||
public void print(float f) {}
|
||||
@Override
|
||||
public void print(double d) {}
|
||||
@Override
|
||||
public void print(char[] s) {}
|
||||
@Override
|
||||
public void print(String s) {}
|
||||
@Override
|
||||
public void print(Object obj) {}
|
||||
@Override
|
||||
public void println() {}
|
||||
@Override
|
||||
public void println(boolean x) {}
|
||||
@Override
|
||||
public void println(char x) {}
|
||||
@Override
|
||||
public void println(int x) {}
|
||||
@Override
|
||||
public void println(long x) {}
|
||||
@Override
|
||||
public void println(float x) {}
|
||||
@Override
|
||||
public void println(double x) {}
|
||||
@Override
|
||||
public void println(char[] x) {}
|
||||
@Override
|
||||
public void println(String x) {}
|
||||
@Override
|
||||
public void println(Object x) {}
|
||||
@Override
|
||||
public PrintStream printf(String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream printf(Locale l, String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream format(String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream format(Locale l, String format, Object... args) { return this; }
|
||||
@Override
|
||||
public PrintStream append(CharSequence csq) { return this; }
|
||||
@Override
|
||||
public PrintStream append(CharSequence csq, int start, int end) { return this; }
|
||||
@Override
|
||||
public PrintStream append(char c) { return this; }
|
||||
@Override
|
||||
public void write(byte[] b) {}
|
||||
}
|
Loading…
Reference in New Issue