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:
Andreas Beeker 2020-08-17 20:25:08 +00:00
parent f8040e5f8c
commit b7b0a0c215
37 changed files with 802 additions and 818 deletions

View File

@ -1549,7 +1549,7 @@ under the License.
<delete dir="build" includes="test-integration.log*"/> <delete dir="build" includes="test-integration.log*"/>
<path id="test-integration.modules"> <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-ooxml"/>
<pathelement path="build/dist/maven/poi-scratchpad"/> <pathelement path="build/dist/maven/poi-scratchpad"/>
<pathelement path="build/dist/maven/poi-examples"/> <pathelement path="build/dist/maven/poi-examples"/>
@ -2252,16 +2252,22 @@ under the License.
<fileset dir="lib/ooxml-provided" includes="*.jar"/> <fileset dir="lib/ooxml-provided" includes="*.jar"/>
<fileset dir="lib/excelant" includes="*.jar"/> <fileset dir="lib/excelant" includes="*.jar"/>
<pathelement location="${ooxml.xsds.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"/> <pathelement location="build/dist/maven/poi-examples/poi-examples-${version.id}.jar"/>
<path path="${env.CLASSPATH}"/> <path path="${env.CLASSPATH}"/>
</path> </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 --> <!-- first check rules that apply to all the source code -->
<forbiddenapis <forbiddenapis
classpathref="forbiddenapis.classpath" classpathref="forbiddenapis.classpath"
suppressAnnotation="org.apache.poi.util.SuppressForbidden" suppressAnnotation="org.apache.poi.util.SuppressForbidden"
targetVersion="${ant.java.version}" targetVersion="${forbiddenVersion}"
> >
<bundledsignatures name="jdk-unsafe"/> <bundledsignatures name="jdk-unsafe"/>
<bundledsignatures name="jdk-deprecated"/> <bundledsignatures name="jdk-deprecated"/>
@ -2272,29 +2278,20 @@ under the License.
<bundledsignatures name="jdk-system-out"/> <bundledsignatures name="jdk-system-out"/>
--> -->
<signaturesFileset file="src/resources/devtools/forbidden-signatures.txt"/> <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) --> <!-- test-sources (incl. sources) -->
<zipfileset src="build/dist/maven/poi-tests/poi-${version.id}-tests.jar"/> <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"/> <zipfileset src="build/dist/maven/poi-ooxml-tests/poi-ooxml-${version.id}-tests.jar"/>
<!-- <zipfileset src="build/dist/maven/poi-scratchpad-tests/poi-scratchpad-${version.id}-tests.jar"/>
<fileset dir="${scratchpad.output.test.dir}"/> <zipfileset src="build/dist/maven/poi-excelant-tests/poi-excelant-${version.id}-tests.jar"/>
<fileset dir="${excelant.output.test.dir}"/> <zipfileset src="build/dist/maven/poi-examples/poi-examples-${version.id}.jar"/>
<fileset dir="${integration.output.test.dir}"/> <zipfileset src="build/dist/maven/poi-integration/poi-integration-${version.id}.jar"/>
-->
</forbiddenapis> </forbiddenapis>
<!-- then check some advanced rules which we only apply to the core code and not tests or examples --> <!-- then check some advanced rules which we only apply to the core code and not tests or examples -->
<forbiddenapis <forbiddenapis
classpathref="forbiddenapis.classpath" classpathref="forbiddenapis.classpath"
suppressAnnotation="org.apache.poi.util.SuppressForbidden" suppressAnnotation="org.apache.poi.util.SuppressForbidden"
targetVersion="${jdk.version.source}" targetVersion="${forbiddenVersion}"
> >
<signaturesFileset file="src/resources/devtools/forbidden-signatures-prod.txt"/> <signaturesFileset file="src/resources/devtools/forbidden-signatures-prod.txt"/>
<!-- sources --> <!-- sources -->

View File

@ -62,7 +62,7 @@ public class Msg2txt {
public void processMessage() throws IOException { public void processMessage() throws IOException {
String txtFileName = fileNameStem + ".txt"; String txtFileName = fileNameStem + ".txt";
String attDirName = fileNameStem + "-att"; String attDirName = fileNameStem + "-att";
try (PrintWriter txtOut = new PrintWriter(txtFileName)) { try (PrintWriter txtOut = new PrintWriter(txtFileName, "UTF-8")) {
try { try {
String displayFrom = msg.getDisplayFrom(); String displayFrom = msg.getDisplayFrom();
txtOut.println("From: " + displayFrom); txtOut.println("From: " + displayFrom);

View File

@ -21,6 +21,7 @@ import java.io.FileOutputStream;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 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.Row;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.LocaleUtil;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 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(); if(args.length > 0 && args[0].equals("-xls")) wb = new HSSFWorkbook();
else wb = new XSSFWorkbook(); 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); Map<String, CellStyle> styles = createStyles(wb);
@ -124,7 +126,7 @@ public final class BusinessPlan {
cell.setCellStyle(styles.get("header")); cell.setCellStyle(styles.get("header"));
} }
//columns for 11 weeks starting from 9-Jul //columns for 11 weeks starting from 9-Jul
Calendar calendar = Calendar.getInstance(); Calendar calendar = LocaleUtil.getLocaleCalendar();
int year = calendar.get(Calendar.YEAR); int year = calendar.get(Calendar.YEAR);
calendar.setTime(fmt.parse("9-Jul")); calendar.setTime(fmt.parse("9-Jul"));

View File

@ -36,6 +36,7 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.util.LocaleUtil;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/** /**
@ -62,7 +63,7 @@ public final class CalendarDemo {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
Calendar calendar = Calendar.getInstance(); Calendar calendar = LocaleUtil.getLocaleCalendar();
boolean xlsx = true; boolean xlsx = true;
for (String arg : args) { for (String arg : args) {
if (arg.charAt(0) == '-') { if (arg.charAt(0) == '-') {

View File

@ -17,6 +17,8 @@
package org.apache.poi.examples.ss; package org.apache.poi.examples.ss;
import java.io.File; import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.Iterator; import java.util.Iterator;
@ -94,6 +96,8 @@ public class ExcelComparator {
} }
List<String> listOfDifferences = new ArrayList<>(); 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 { public static void main(String[] args) throws Exception {
if (args.length != 2 || !(new File(args[0]).exists()) || !(new File(args[1]).exists())) { 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 date1 = loc1.cell.getDateCellValue();
Date date2 = loc2.cell.getDateCellValue(); Date date2 = loc2.cell.getDateCellValue();
if (!date1.equals(date2)) { 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));
} }
} }

View File

@ -23,6 +23,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 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.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference; 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.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -75,7 +77,7 @@ public final class SSPerformanceTest {
runWithArgs(type, rows, cols, saveFile); runWithArgs(type, rows, cols, saveFile);
long timeFinished = System.currentTimeMillis(); 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 { 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 sheetNo = 0;
int rowIndexInSheet = 1; int rowIndexInSheet = 1;
double value = 0; double value = 0;
Calendar calendar = Calendar.getInstance(); Calendar calendar = LocaleUtil.getLocaleCalendar();
for (int rowIndex = 0; rowIndex < rows; rowIndex++) { for (int rowIndex = 0; rowIndex < rows; rowIndex++) {
if (isHType && sheetNo != rowIndex / 0x10000) { if (isHType && sheetNo != rowIndex / 0x10000) {
sheet = workBook.createSheet("Spillover from sheet " + (++sheetNo)); sheet = workBook.createSheet("Spillover from sheet " + (++sheetNo));

View File

@ -22,9 +22,10 @@ import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.ArrayList; import java.util.ArrayList;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
@ -431,7 +432,7 @@ public class ToCSV {
String csvLineElement; String csvLineElement;
// Open a writer onto the CSV file. // 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() + "]"); System.out.println("Saving the CSV file [" + file.getName() + "]");

View File

@ -19,15 +19,16 @@ package org.apache.poi.examples.ss.html;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.Closeable; import java.io.Closeable;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.Formatter; import java.util.Formatter;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.TreeMap; import java.util.TreeMap;
@ -189,10 +190,7 @@ public final class ToHtml {
return; return;
} }
try ( try (PrintWriter pw = new PrintWriter(args[1], "UTF-8")) {
FileWriter fw = new FileWriter(args[1]);
PrintWriter pw = new PrintWriter(fw)
) {
ToHtml toHtml = create(args[0], pw); ToHtml toHtml = create(args[0], pw);
toHtml.setCompleteHTML(true); toHtml.setCompleteHTML(true);
toHtml.printPage(); toHtml.printPage();
@ -243,7 +241,7 @@ public final class ToHtml {
private void ensureOut() { private void ensureOut() {
if (out == null) { 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 // First, copy the base css
try (BufferedReader in = new BufferedReader(new InputStreamReader( try (BufferedReader in = new BufferedReader(new InputStreamReader(
getClass().getResourceAsStream("excelStyle.css")))){ getClass().getResourceAsStream("excelStyle.css"), StandardCharsets.ISO_8859_1))){
String line; String line;
while ((line = in.readLine()) != null) { while ((line = in.readLine()) != null) {
out.format("%s%n", line); out.format("%s%n", line);
@ -325,7 +323,7 @@ public final class ToHtml {
style = wb.getCellStyleAt((short) 0); style = wb.getCellStyleAt((short) 0);
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
try (Formatter fmt = new Formatter(sb)) { try (Formatter fmt = new Formatter(sb, Locale.ROOT)) {
fmt.format("style_%02x", style.getIndex()); fmt.format("style_%02x", style.getIndex());
return fmt.toString(); return fmt.toString();
} }

View File

@ -22,8 +22,10 @@ package org.apache.poi.examples.xslf;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream; 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.ArrayList;
import java.util.List; import java.util.List;
@ -62,7 +64,7 @@ public final class BarChartDemo {
} }
try (FileInputStream argIS = new FileInputStream(args[0]); 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 chartTitle = modelReader.readLine(); // first line is chart title
String[] series = modelReader.readLine().split(","); String[] series = modelReader.readLine().split(",");

View File

@ -23,8 +23,10 @@ import java.awt.geom.Rectangle2D;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream; 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.ArrayList;
import java.util.List; import java.util.List;
@ -70,7 +72,7 @@ public final class ChartFromScratch {
return; 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 chartTitle = modelReader.readLine(); // first line is chart title
String[] series = modelReader.readLine().split(","); String[] series = modelReader.readLine().split(",");

View File

@ -22,8 +22,10 @@ package org.apache.poi.examples.xslf;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream; 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.ArrayList;
import java.util.List; import java.util.List;
@ -59,7 +61,7 @@ public final class PieChartDemo {
} }
try (FileInputStream argIS = new FileInputStream(args[0]); 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 chartTitle = modelReader.readLine(); // first line is chart title
try (XMLSlideShow pptx = new XMLSlideShow(argIS)) { try (XMLSlideShow pptx = new XMLSlideShow(argIS)) {

View File

@ -40,6 +40,7 @@ import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellReference; 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.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFDataFormat; import org.apache.poi.xssf.usermodel.XSSFDataFormat;
import org.apache.poi.xssf.usermodel.XSSFFont; 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 { 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); SpreadsheetWriter sw = new SpreadsheetWriter(out);
sw.beginSheet(); sw.beginSheet();

View File

@ -28,6 +28,7 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.PrintOrientation; import org.apache.poi.ss.usermodel.PrintOrientation;
import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.util.CellRangeAddress; 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.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor; import org.apache.poi.xssf.usermodel.XSSFColor;
@ -61,7 +62,7 @@ public class CalendarDemo {
public static void main(String[] args) throws Exception { 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])); if(args.length > 0) calendar.set(Calendar.YEAR, Integer.parseInt(args[0]));
int year = calendar.get(Calendar.YEAR); int year = calendar.get(Calendar.YEAR);

View File

@ -31,6 +31,7 @@ import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.AreaReference; import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference; 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.XSSFPivotTable;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -67,9 +68,9 @@ public class CreatePivotTable2 {
} }
public static void setCellData(XSSFSheet sheet){ public static void setCellData(XSSFSheet sheet){
Calendar cal1 = Calendar.getInstance(); Calendar cal1 = LocaleUtil.getLocaleCalendar();
cal1.set(2017, 0, 1, 0, 0, 0); cal1.set(2017, 0, 1, 0, 0, 0);
Calendar cal2 = Calendar.getInstance(); Calendar cal2 = LocaleUtil.getLocaleCalendar();
cal2.set(2017, 1, 1, 0, 0, 0); cal2.set(2017, 1, 1, 0, 0, 0);
Row row1 = sheet.createRow(0); Row row1 = sheet.createRow(0);
// Create a cell and put a value in it. // Create a cell and put a value in it.

View File

@ -23,8 +23,10 @@ package org.apache.poi.examples.xwpf.usermodel;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream; 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.ArrayList;
import java.util.List; import java.util.List;
@ -61,7 +63,7 @@ public final class BarChartExample {
} }
try (FileInputStream argIS = new FileInputStream(args[0]); 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 chartTitle = modelReader.readLine(); // first line is chart title
String[] series = modelReader.readLine().split(","); String[] series = modelReader.readLine().split(",");

View File

@ -21,8 +21,10 @@ package org.apache.poi.examples.xwpf.usermodel;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream; 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.ArrayList;
import java.util.List; import java.util.List;
@ -65,7 +67,7 @@ public final class ChartFromScratch {
return; 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 chartTitle = modelReader.readLine(); // first line is chart title
String[] series = modelReader.readLine().split(","); String[] series = modelReader.readLine().split(",");

View File

@ -28,6 +28,7 @@ import java.io.File;
import java.io.PrintStream; import java.io.PrintStream;
import org.apache.poi.POIDataSamples; import org.apache.poi.POIDataSamples;
import org.apache.poi.util.NullPrintStream;
import org.apache.tools.ant.BuildEvent; import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildListener; import org.apache.tools.ant.BuildListener;
@ -140,12 +141,8 @@ public class TestBuildFile {
try { try {
sysOut.flush(); sysOut.flush();
sysErr.flush(); sysErr.flush();
StringBuilder outBuffer = new StringBuilder(); System.setOut(new NullPrintStream());
PrintStream out = new PrintStream(new AntOutputStream(outBuffer)); System.setErr(new NullPrintStream());
System.setOut(out);
StringBuilder errBuffer = new StringBuilder();
PrintStream err = new PrintStream(new AntOutputStream(errBuffer));
System.setErr(err);
logBuffer = new StringBuilder(); logBuffer = new StringBuilder();
fullLogBuffer = new StringBuilder(); fullLogBuffer = new StringBuilder();
buildException = null; buildException = null;

View File

@ -104,7 +104,7 @@ public class HPSFFileHandler extends POIFSFileHandler {
} }
ByteArrayOutputStream bos = new ByteArrayOutputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
PrintStream psNew = new PrintStream(bos); PrintStream psNew = new PrintStream(bos, true, "ISO-8859-1");
PrintStream ps = System.out; PrintStream ps = System.out;
try { try {
System.setOut(psNew); System.setOut(psNew);

View File

@ -22,7 +22,6 @@ import static org.junit.Assert.assertNotNull;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; 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.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.util.NullPrintStream;
import org.junit.Test; import org.junit.Test;
public class HSSFFileHandler extends SpreadsheetHandler { public class HSSFFileHandler extends SpreadsheetHandler {
@ -88,11 +88,7 @@ public class HSSFFileHandler extends SpreadsheetHandler {
PrintStream oldOut = System.out; PrintStream oldOut = System.out;
String fileWithParent = file.getParentFile().getName() + "/" + file.getName(); String fileWithParent = file.getParentFile().getName() + "/" + file.getName();
try { try {
System.setOut(new PrintStream(new OutputStream() { System.setOut(new NullPrintStream());
@Override
public void write(int b) {
}
}));
BiffViewer.main(new String[]{file.getAbsolutePath()}); BiffViewer.main(new String[]{file.getAbsolutePath()});

View File

@ -20,7 +20,9 @@ import java.io.IOException;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import com.sun.management.HotSpotDiagnosticMXBean; import com.sun.management.HotSpotDiagnosticMXBean;
import org.apache.poi.util.SuppressForbidden;
@SuppressForbidden("class only exists for manual tests in XSSFFileHandler")
public class HeapDump { public class HeapDump {
// This is the name of the HotSpot Diagnostic MBean // This is the name of the HotSpot Diagnostic MBean
private static final String HOTSPOT_BEAN_NAME = private static final String HOTSPOT_BEAN_NAME =

View File

@ -28,11 +28,9 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.Locale;
import java.util.Set; import java.util.Set;
import javax.xml.transform.TransformerException; 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.crypt.EncryptionInfo;
import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.apache.poi.util.NullPrintStream;
import org.apache.poi.xssf.eventusermodel.XSSFReader; import org.apache.poi.xssf.eventusermodel.XSSFReader;
import org.apache.poi.xssf.extractor.XSSFExportToXml; import org.apache.poi.xssf.extractor.XSSFExportToXml;
import org.apache.poi.xssf.usermodel.XSSFMap; import org.apache.poi.xssf.usermodel.XSSFMap;
@ -221,77 +220,4 @@ public class XSSFFileHandler extends SpreadsheetHandler {
public void testAdditional() throws Exception { public void testAdditional() throws Exception {
handleAdditional(new File("test-data/spreadsheet/poc-xmlbomb.xlsx")); 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) {}
}
} }

View File

@ -417,10 +417,8 @@ public final class TestSXSSFWorkbook extends BaseTestXWorkbook {
private static void saveTwice(Workbook wb) throws Exception { private static void saveTwice(Workbook wb) throws Exception {
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
try { try (NullOutputStream out = new NullOutputStream()) {
NullOutputStream out = new NullOutputStream();
wb.write(out); wb.write(out);
out.close();
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR: failed on " + (i + 1) throw new Exception("ERROR: failed on " + (i + 1)
+ "th time calling " + wb.getClass().getName() + "th time calling " + wb.getClass().getName()

View File

@ -17,7 +17,7 @@
# This file contains API signatures which are specific to POI. # This file contains API signatures which are specific to POI.
# The goal is to minimize implicit defaults # 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... # We have applications which use this to return error codes on invalid commandline parameters...
#@defaultMessage Please do not terminate the application #@defaultMessage Please do not terminate the application

View File

@ -24,7 +24,7 @@ import java.io.File;
import java.io.PrintStream; import java.io.PrintStream;
import org.apache.poi.POIDataSamples; import org.apache.poi.POIDataSamples;
import org.apache.poi.util.NullOutputStream; import org.apache.poi.util.NullPrintStream;
import org.junit.Test; import org.junit.Test;
public class TestHMEFDumper { public class TestHMEFDumper {
@ -48,7 +48,7 @@ public class TestHMEFDumper {
private static void doMain(String... args) throws Exception { private static void doMain(String... args) throws Exception {
PrintStream ps = System.out; PrintStream ps = System.out;
try { try {
System.setOut(new PrintStream(new NullOutputStream(), true, "UTF-8")); System.setOut(new NullPrintStream());
HMEFDumper.main(args); HMEFDumper.main(args);
} finally { } finally {
System.setOut(ps); System.setOut(ps);

View File

@ -16,22 +16,9 @@
==================================================================== */ ==================================================================== */
package org.apache.poi.hslf.dev; package org.apache.poi.hslf.dev;
import org.apache.poi.POIDataSamples; import static org.junit.Assert.assertNotNull;
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 java.io.File; import java.io.File;
import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.ArrayList; import java.util.ArrayList;
@ -42,12 +29,21 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; 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) @RunWith(Parameterized.class)
public abstract class BasePPTIteratingTest { public abstract class BasePPTIteratingTest {
protected static final OutputStream NULL_OUTPUT_STREAM = new NullOutputStream();
protected static final Set<String> OLD_FILES = new HashSet<>(); protected static final Set<String> OLD_FILES = new HashSet<>();
static { static {
OLD_FILES.add("PPT95.ppt"); OLD_FILES.add("PPT95.ppt");
@ -89,7 +85,7 @@ public abstract class BasePPTIteratingTest {
IOUtils.setByteArrayMaxOverride(5*1024*1024); IOUtils.setByteArrayMaxOverride(5*1024*1024);
// redirect standard out during the test to avoid spamming the console with output // 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 @After

View File

@ -35,16 +35,17 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.text.AttributedCharacterIterator; import java.text.AttributedCharacterIterator;
import java.text.AttributedCharacterIterator.Attribute; import java.text.AttributedCharacterIterator.Attribute;
import java.text.CharacterIterator; import java.text.CharacterIterator;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; 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.model.HeadersFooters;
import org.apache.poi.hslf.record.DocInfoListContainer; import org.apache.poi.hslf.record.DocInfoListContainer;
import org.apache.poi.hslf.record.Document; 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.RecordTypes;
import org.apache.poi.hslf.record.SlideListWithText; import org.apache.poi.hslf.record.SlideListWithText;
import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet; 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.sl.usermodel.TextRun;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.NullPrintStream;
import org.apache.poi.util.StringUtil; import org.apache.poi.util.StringUtil;
import org.apache.poi.util.Units; import org.apache.poi.util.Units;
import org.junit.Test; import org.junit.Test;
@ -291,7 +292,7 @@ public final class TestBugs {
} }
} }
} }
ppt.close(); ppt.close();
} }
@ -375,7 +376,7 @@ public final class TestBugs {
HSLFPictureData pict = f.getPictureData(); HSLFPictureData pict = f.getPictureData();
assertNotNull(pict); assertNotNull(pict);
assertEquals(PictureType.JPEG, pict.getType()); assertEquals(PictureType.JPEG, pict.getType());
ppt.close(); ppt.close();
} }
@ -405,7 +406,7 @@ public final class TestBugs {
List<List<HSLFTextParagraph>> run = slide.getTextParagraphs(); List<List<HSLFTextParagraph>> run = slide.getTextParagraphs();
assertEquals(3, run.size()); assertEquals(3, run.size());
assertEquals("Fundera, planera och involvera.", HSLFTextParagraph.getRawText(run.get(2))); assertEquals("Fundera, planera och involvera.", HSLFTextParagraph.getRawText(run.get(2)));
ppt.close(); ppt.close();
} }
@ -445,7 +446,7 @@ public final class TestBugs {
HSLFSlideShow ppt = open("41246-1.ppt"); HSLFSlideShow ppt = open("41246-1.ppt");
HSLFTestDataSamples.writeOutAndReadBack(ppt).close(); HSLFTestDataSamples.writeOutAndReadBack(ppt).close();
ppt.close(); ppt.close();
} }
@ -454,7 +455,7 @@ public final class TestBugs {
HSLFSlideShow ppt = open("41246-2.ppt"); HSLFSlideShow ppt = open("41246-2.ppt");
HSLFTestDataSamples.writeOutAndReadBack(ppt).close(); HSLFTestDataSamples.writeOutAndReadBack(ppt).close();
ppt.close(); ppt.close();
} }
@ -463,31 +464,32 @@ public final class TestBugs {
*/ */
@Test @Test
public void bug45776() throws IOException { 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 // get slides
for (HSLFSlide slide : ppt.getSlides()) { for (HSLFSlide slide : ppt.getSlides()) {
for (HSLFShape shape : slide.getShapes()) { for (HSLFShape shape : slide.getShapes()) {
if (!(shape instanceof HSLFTextBox)) { if (!(shape instanceof HSLFTextBox)) {
continue; continue;
}
HSLFTextBox tb = (HSLFTextBox) shape;
// work with TextBox
String str = tb.getText();
if (!str.contains("$$DATE$$")) {
continue;
}
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());
} }
HSLFTextBox tb = (HSLFTextBox) shape;
// work with TextBox
String str = tb.getText();
if (!str.contains("$$DATE$$")) {
continue;
}
str = str.replace("$$DATE$$", new Date().toString());
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());
} }
} }
ppt.close();
} }
@Test @Test
@ -501,7 +503,7 @@ public final class TestBugs {
HeadersFooters hf = slide.getHeadersFooters(); HeadersFooters hf = slide.getHeadersFooters();
/*boolean visible =*/ hf.isHeaderVisible(); // exception happens here /*boolean visible =*/ hf.isHeaderVisible(); // exception happens here
} }
ppt.close(); ppt.close();
} }
@ -538,7 +540,7 @@ public final class TestBugs {
} }
} }
assertEquals(2, str); assertEquals(2, str);
ppt.close(); ppt.close();
} }
@ -781,7 +783,7 @@ public final class TestBugs {
HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1); HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1);
ppt1.close(); ppt1.close();
HSLFTextShape ts = (HSLFTextShape)ppt2.getSlides().get(0).getShapes().get(0); HSLFTextShape ts = (HSLFTextShape)ppt2.getSlides().get(0).getShapes().get(0);
tp = ts.getTextParagraphs().get(0); tp = ts.getTextParagraphs().get(0);
tr = tp.getTextRuns().get(0); tr = tp.getTextRuns().get(0);
@ -841,9 +843,9 @@ public final class TestBugs {
@Test @Test
public void bug55030() throws IOException { public void bug55030() throws IOException {
HSLFSlideShow ppt = open("bug55030.ppt"); HSLFSlideShow ppt = open("bug55030.ppt");
String expFamily = "\u96b6\u4e66"; String expFamily = "\u96b6\u4e66";
HSLFSlide sl = ppt.getSlides().get(0); HSLFSlide sl = ppt.getSlides().get(0);
for (List<HSLFTextParagraph> paraList : sl.getTextParagraphs()) { for (List<HSLFTextParagraph> paraList : sl.getTextParagraphs()) {
for (HSLFTextParagraph htp : paraList) { for (HSLFTextParagraph htp : paraList) {
@ -853,7 +855,7 @@ public final class TestBugs {
} }
} }
} }
ppt.close(); ppt.close();
} }
@ -873,27 +875,22 @@ public final class TestBugs {
assertEquals(hlRun.getStartIndex(), hlShape.getStartIndex()); assertEquals(hlRun.getStartIndex(), hlShape.getStartIndex());
assertEquals(hlRun.getEndIndex(), hlShape.getEndIndex()); assertEquals(hlRun.getEndIndex(), hlShape.getEndIndex());
OutputStream nullOutput = new OutputStream(){
@Override
public void write(int b) throws IOException {}
};
final boolean[] found = {false}; final boolean[] found = {false};
DummyGraphics2d dgfx = new DummyGraphics2d(new PrintStream(nullOutput)){ DummyGraphics2d dgfx = new DummyGraphics2d(new NullPrintStream()){
@Override @Override
public void drawString(AttributedCharacterIterator iterator, float x, float y) { public void drawString(AttributedCharacterIterator iterator, float x, float y) {
// For the test file, common sl draws textruns one by one and not mixed // For the test file, common sl draws textruns one by one and not mixed
// so we evaluate the whole iterator // so we evaluate the whole iterator
Map<Attribute, Object> attributes = null; Map<Attribute, Object> attributes = null;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (char c = iterator.first(); for (char c = iterator.first();
c != CharacterIterator.DONE; c != CharacterIterator.DONE;
c = iterator.next()) { c = iterator.next()) {
sb.append(c); sb.append(c);
attributes = iterator.getAttributes(); attributes = iterator.getAttributes();
} }
if ("Jakarta HSSF".equals(sb.toString())) { if ("Jakarta HSSF".equals(sb.toString())) {
// this is a test for a manually modified ppt, for real hyperlink label // this is a test for a manually modified ppt, for real hyperlink label
// one would need to access the screen tip record // one would need to access the screen tip record
@ -905,17 +902,17 @@ public final class TestBugs {
} }
} }
}; };
ppt.getSlides().get(1).draw(dgfx); ppt.getSlides().get(1).draw(dgfx);
assertTrue(found[0]); assertTrue(found[0]);
ppt.close(); ppt.close();
} }
@Test @Test
public void bug59056() throws IOException { public void bug59056() throws IOException {
HSLFSlideShow ppt = open("54541_cropped_bitmap.ppt"); HSLFSlideShow ppt = open("54541_cropped_bitmap.ppt");
for (HSLFShape shape : ppt.getSlides().get(0).getShapes()) { for (HSLFShape shape : ppt.getSlides().get(0).getShapes()) {
BufferedImage img = new BufferedImage(500, 300, BufferedImage.TYPE_INT_ARGB); BufferedImage img = new BufferedImage(500, 300, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = img.createGraphics(); Graphics2D graphics = img.createGraphics();
@ -927,11 +924,11 @@ public final class TestBugs {
graphics.dispose(); graphics.dispose();
// ImageIO.write(img, "png", new File("bla"+shape.getShapeId()+".png")); // ImageIO.write(img, "png", new File("bla"+shape.getShapeId()+".png"));
} }
ppt.close(); ppt.close();
} }
private static HSLFSlideShow open(String fileName) throws IOException { private static HSLFSlideShow open(String fileName) throws IOException {
File sample = HSLFTestDataSamples.getSampleFile(fileName); File sample = HSLFTestDataSamples.getSampleFile(fileName);
// Note: don't change the code here, it is required for Eclipse to compile the code // Note: don't change the code here, it is required for Eclipse to compile the code
@ -950,10 +947,10 @@ public final class TestBugs {
fs.setPath(new Path2D.Double(el)); fs.setPath(new Path2D.Double(el));
Color cExp = new Color(50,100,150,200); Color cExp = new Color(50,100,150,200);
fs.setFillColor(cExp); fs.setFillColor(cExp);
HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1); HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1);
ppt1.close(); ppt1.close();
sl = ppt2.getSlides().get(0); sl = ppt2.getSlides().get(0);
fs = (HSLFFreeformShape)sl.getShapes().get(0); fs = (HSLFFreeformShape)sl.getShapes().get(0);
Color cAct = fs.getFillColor(); Color cAct = fs.getFillColor();
@ -961,7 +958,7 @@ public final class TestBugs {
assertEquals(cExp.getGreen(), cAct.getGreen()); assertEquals(cExp.getGreen(), cAct.getGreen());
assertEquals(cExp.getBlue(), cAct.getBlue()); assertEquals(cExp.getBlue(), cAct.getBlue());
assertEquals(cExp.getAlpha(), cAct.getAlpha(), 1); assertEquals(cExp.getAlpha(), cAct.getAlpha(), 1);
PaintStyle ps = fs.getFillStyle().getPaint(); PaintStyle ps = fs.getFillStyle().getPaint();
assertTrue(ps instanceof SolidPaint); assertTrue(ps instanceof SolidPaint);
ColorStyle cs = ((SolidPaint)ps).getSolidColor(); ColorStyle cs = ((SolidPaint)ps).getSolidColor();
@ -971,7 +968,7 @@ public final class TestBugs {
assertEquals(cExp.getBlue(), cAct.getBlue()); assertEquals(cExp.getBlue(), cAct.getBlue());
assertEquals(255, cAct.getAlpha()); assertEquals(255, cAct.getAlpha());
assertEquals(cExp.getAlpha()*100000./255., cs.getAlpha(), 1); assertEquals(cExp.getAlpha()*100000./255., cs.getAlpha(), 1);
ppt2.close(); ppt2.close();
} }
@ -1016,7 +1013,7 @@ public final class TestBugs {
} }
} }
} }
ppt.close(); ppt.close();
} finally { } finally {

View File

@ -44,6 +44,7 @@ import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.Entry; import org.apache.poi.poifs.filesystem.Entry;
import org.apache.poi.poifs.filesystem.EntryUtils; import org.apache.poi.poifs.filesystem.EntryUtils;
import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.LocaleUtil;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
@ -53,7 +54,7 @@ public class TestExtractEmbeddedMSG {
/** /**
* Initialize this test, load up the attachment_msg_pdf.msg mapi message. * Initialize this test, load up the attachment_msg_pdf.msg mapi message.
* *
* @throws Exception * @throws Exception
*/ */
@BeforeClass @BeforeClass
@ -70,9 +71,9 @@ public class TestExtractEmbeddedMSG {
/** /**
* Test to see if embedded message properties can be read, extracted, and * Test to see if embedded message properties can be read, extracted, and
* re-parsed * re-parsed
* *
* @throws ChunkNotFoundException * @throws ChunkNotFoundException
* *
*/ */
@Test @Test
public void testEmbeddedMSGProperties() throws IOException, ChunkNotFoundException { public void testEmbeddedMSGProperties() throws IOException, ChunkNotFoundException {
@ -102,7 +103,7 @@ public class TestExtractEmbeddedMSG {
msg.setReturnNullOnMissingChunk(true); msg.setReturnNullOnMissingChunk(true);
Calendar messageDate = msg.getMessageDate(); Calendar messageDate = msg.getMessageDate();
assertNotNull(messageDate); 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.set(2010, 05, 17, 23, 52, 19); // 2010/06/17 23:52:19 GMT
expectedMessageDate.setTimeZone(TimeZone.getTimeZone("GMT")); expectedMessageDate.setTimeZone(TimeZone.getTimeZone("GMT"));
expectedMessageDate.set(Calendar.MILLISECOND, 0); expectedMessageDate.set(Calendar.MILLISECOND, 0);

View File

@ -168,7 +168,7 @@ public final class TestFixedSizedProperties {
*/ */
@Test @Test
public void testReadMessageDateSucceedsWithHSMFDump() throws IOException { 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); HSMFDump dump = new HSMFDump(fsMessageSucceeds);
dump.dump(stream); dump.dump(stream);
} }
@ -178,7 +178,7 @@ public final class TestFixedSizedProperties {
*/ */
@Test @Test
public void testReadMessageDateFailsWithHSMFDump() throws Exception { 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); HSMFDump dump = new HSMFDump(fsMessageFails);
dump.dump(stream); dump.dump(stream);
} }

View File

@ -20,7 +20,6 @@ import static org.junit.Assert.assertNotNull;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -29,7 +28,6 @@ import java.util.Map;
import org.apache.poi.POIDataSamples; import org.apache.poi.POIDataSamples;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.util.NullOutputStream;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException; import org.junit.rules.ExpectedException;
@ -46,8 +44,6 @@ import org.junit.runners.Parameterized.Parameters;
*/ */
@RunWith(Parameterized.class) @RunWith(Parameterized.class)
public abstract class BaseTestIteratingXLS { public abstract class BaseTestIteratingXLS {
protected static final OutputStream NULL_OUTPUT_STREAM = new NullOutputStream();
@Rule @Rule
public ExpectedException thrown = ExpectedException.none(); public ExpectedException thrown = ExpectedException.none();
@ -74,9 +70,9 @@ public abstract class BaseTestIteratingXLS {
assertNotNull("Did not find any xls files in directory " + dir, files); assertNotNull("Did not find any xls files in directory " + dir, files);
for(String file : files) { for(String file : files) {
list.add(new Object[] { new File(dir, file) }); list.add(new Object[]{new File(dir, file)});
}
} }
}
@Parameter @Parameter
public File file; public File file;

View File

@ -23,6 +23,7 @@ import java.io.InputStream;
import org.apache.poi.EncryptedDocumentException; import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hssf.OldExcelFormatException; import org.apache.poi.hssf.OldExcelFormatException;
import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.util.NullOutputStream;
import org.apache.poi.util.RecordFormatException; import org.apache.poi.util.RecordFormatException;
import org.junit.BeforeClass; import org.junit.BeforeClass;
@ -30,10 +31,10 @@ public class TestBiffDrawingToXml extends BaseTestIteratingXLS {
@BeforeClass @BeforeClass
public static void setup() { public static void setup() {
EXCLUDED.clear(); EXCLUDED.clear();
EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header
EXCLUDED.put("51832.xls", EncryptedDocumentException.class); EXCLUDED.put("51832.xls", EncryptedDocumentException.class);
EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class); EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class);
EXCLUDED.put("password.xls", EncryptedDocumentException.class); EXCLUDED.put("password.xls", EncryptedDocumentException.class);
EXCLUDED.put("46904.xls", OldExcelFormatException.class); EXCLUDED.put("46904.xls", OldExcelFormatException.class);
EXCLUDED.put("59074.xls", OldExcelFormatException.class); EXCLUDED.put("59074.xls", OldExcelFormatException.class);
EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2 EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2
@ -47,11 +48,11 @@ public class TestBiffDrawingToXml extends BaseTestIteratingXLS {
EXCLUDED.put("61300.xls", RecordFormatException.class); EXCLUDED.put("61300.xls", RecordFormatException.class);
EXCLUDED.put("64130.xls", OldExcelFormatException.class); // BIFF 5 EXCLUDED.put("64130.xls", OldExcelFormatException.class); // BIFF 5
} }
@Override @Override
void runOneFile(File pFile) throws Exception { void runOneFile(File pFile) throws Exception {
try (InputStream wb = new FileInputStream(pFile)) { 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]);
} }
} }
} }

View File

@ -28,6 +28,7 @@ import org.apache.poi.hssf.OldExcelFormatException;
import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.LocaleUtil; import org.apache.poi.util.LocaleUtil;
import org.apache.poi.util.NullOutputStream;
import org.apache.poi.util.RecordFormatException; import org.apache.poi.util.RecordFormatException;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Ignore; import org.junit.Ignore;
@ -62,7 +63,7 @@ public class TestBiffViewer extends BaseTestIteratingXLS {
try (POIFSFileSystem fs = new POIFSFileSystem(fileIn, true); try (POIFSFileSystem fs = new POIFSFileSystem(fileIn, true);
InputStream is = BiffViewer.getPOIFSInputStream(fs)) { InputStream is = BiffViewer.getPOIFSInputStream(fs)) {
// use a NullOutputStream to not write the bytes anywhere for best runtime // 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); BiffViewer.runBiffViewer(dummy, is, true, true, true, false);
} }
} }

View File

@ -23,7 +23,7 @@ import java.io.PrintStream;
import org.apache.poi.EncryptedDocumentException; import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hssf.OldExcelFormatException; import org.apache.poi.hssf.OldExcelFormatException;
import org.apache.poi.hssf.record.RecordInputStream; 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.apache.poi.util.RecordFormatException;
import org.junit.BeforeClass; import org.junit.BeforeClass;
@ -31,10 +31,10 @@ public class TestEFBiffViewer extends BaseTestIteratingXLS {
@BeforeClass @BeforeClass
public static void setup() { public static void setup() {
EXCLUDED.clear(); EXCLUDED.clear();
EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header
EXCLUDED.put("51832.xls", EncryptedDocumentException.class); EXCLUDED.put("51832.xls", EncryptedDocumentException.class);
EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class); EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class);
EXCLUDED.put("password.xls", EncryptedDocumentException.class); EXCLUDED.put("password.xls", EncryptedDocumentException.class);
EXCLUDED.put("46904.xls", OldExcelFormatException.class); EXCLUDED.put("46904.xls", OldExcelFormatException.class);
EXCLUDED.put("59074.xls", OldExcelFormatException.class); EXCLUDED.put("59074.xls", OldExcelFormatException.class);
EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2 EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2
@ -45,17 +45,17 @@ public class TestEFBiffViewer extends BaseTestIteratingXLS {
EXCLUDED.put("testEXCEL_95.xls", OldExcelFormatException.class); // Biff 5 / Excel 95 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("43493.xls", RecordInputStream.LeftoverDataException.class); // HSSFWorkbook cannot open it as well
EXCLUDED.put("44958_1.xls", RecordInputStream.LeftoverDataException.class); 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("61300.xls", RecordFormatException.class);
EXCLUDED.put("64130.xls", OldExcelFormatException.class); //Biff 5 EXCLUDED.put("64130.xls", OldExcelFormatException.class); //Biff 5
} }
@Override @Override
void runOneFile(File fileIn) throws IOException { void runOneFile(File fileIn) throws IOException {
PrintStream save = System.out; PrintStream save = System.out;
try { try {
// redirect standard out during the test to avoid spamming the console with output // 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() }); EFBiffViewer.main(new String[] { fileIn.getAbsolutePath() });
} finally { } finally {

View File

@ -24,7 +24,7 @@ import java.io.PrintStream;
import org.apache.poi.EncryptedDocumentException; import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hssf.OldExcelFormatException; import org.apache.poi.hssf.OldExcelFormatException;
import org.apache.poi.hssf.record.RecordInputStream; 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.apache.poi.util.RecordFormatException;
import org.junit.BeforeClass; import org.junit.BeforeClass;
@ -32,10 +32,10 @@ public class TestFormulaViewer extends BaseTestIteratingXLS {
@BeforeClass @BeforeClass
public static void setup() { public static void setup() {
EXCLUDED.clear(); EXCLUDED.clear();
EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header
EXCLUDED.put("51832.xls", EncryptedDocumentException.class); EXCLUDED.put("51832.xls", EncryptedDocumentException.class);
EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class); EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class);
EXCLUDED.put("password.xls", EncryptedDocumentException.class); EXCLUDED.put("password.xls", EncryptedDocumentException.class);
EXCLUDED.put("46904.xls", OldExcelFormatException.class); EXCLUDED.put("46904.xls", OldExcelFormatException.class);
EXCLUDED.put("59074.xls", OldExcelFormatException.class); EXCLUDED.put("59074.xls", OldExcelFormatException.class);
EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2 EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2
@ -49,13 +49,13 @@ public class TestFormulaViewer extends BaseTestIteratingXLS {
EXCLUDED.put("61300.xls", RecordFormatException.class); EXCLUDED.put("61300.xls", RecordFormatException.class);
EXCLUDED.put("64130.xls", OldExcelFormatException.class); //Biff 5 EXCLUDED.put("64130.xls", OldExcelFormatException.class); //Biff 5
} }
@Override @Override
void runOneFile(File fileIn) throws Exception { void runOneFile(File fileIn) throws Exception {
PrintStream save = System.out; PrintStream save = System.out;
try { try {
// redirect standard out during the test to avoid spamming the console with output // 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(); FormulaViewer viewer = new FormulaViewer();
viewer.setFile(fileIn.getAbsolutePath()); viewer.setFile(fileIn.getAbsolutePath());

View File

@ -25,7 +25,7 @@ import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.POIDataSamples; import org.apache.poi.POIDataSamples;
import org.apache.poi.hssf.OldExcelFormatException; import org.apache.poi.hssf.OldExcelFormatException;
import org.apache.poi.hssf.record.RecordInputStream; 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.apache.poi.util.RecordFormatException;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Ignore; import org.junit.Ignore;
@ -35,10 +35,10 @@ public class TestReSave extends BaseTestIteratingXLS {
@BeforeClass @BeforeClass
public static void setup() { public static void setup() {
EXCLUDED.clear(); EXCLUDED.clear();
EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header
EXCLUDED.put("51832.xls", EncryptedDocumentException.class); EXCLUDED.put("51832.xls", EncryptedDocumentException.class);
EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class); EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class);
EXCLUDED.put("password.xls", EncryptedDocumentException.class); EXCLUDED.put("password.xls", EncryptedDocumentException.class);
EXCLUDED.put("46904.xls", OldExcelFormatException.class); EXCLUDED.put("46904.xls", OldExcelFormatException.class);
EXCLUDED.put("59074.xls", OldExcelFormatException.class); EXCLUDED.put("59074.xls", OldExcelFormatException.class);
EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2 EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2
@ -64,12 +64,12 @@ public class TestReSave extends BaseTestIteratingXLS {
PrintStream save = System.out; PrintStream save = System.out;
try { try {
// redirect standard out during the test to avoid spamming the console with output // 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")); File reSavedFile = new File(fileIn.getParentFile(), fileIn.getName().replace(".xls", "-saved.xls"));
try { try {
ReSave.main(new String[] { fileIn.getAbsolutePath() }); ReSave.main(new String[] { fileIn.getAbsolutePath() });
// also try BiffViewer on the saved file // also try BiffViewer on the saved file
new TestBiffViewer().runOneFile(reSavedFile); new TestBiffViewer().runOneFile(reSavedFile);

View File

@ -21,7 +21,7 @@ import java.io.IOException;
import java.io.PrintStream; import java.io.PrintStream;
import org.apache.poi.hssf.OldExcelFormatException; 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.apache.poi.util.RecordFormatException;
import org.junit.BeforeClass; import org.junit.BeforeClass;
@ -46,7 +46,7 @@ public class TestRecordLister extends BaseTestIteratingXLS {
PrintStream save = System.out; PrintStream save = System.out;
try { try {
// redirect standard out during the test to avoid spamming the console with output // 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(); RecordLister viewer = new RecordLister();
viewer.setFile(fileIn.getAbsolutePath()); viewer.setFile(fileIn.getAbsolutePath());

File diff suppressed because it is too large Load Diff

View File

@ -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) {}
}