cleanup sxxsf temp files after tests, remove non-ascii characters from source code, polished test output

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1139518 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yegor Kozlov 2011-06-25 10:56:46 +00:00
parent f51b59e51e
commit e4cd5a5b00
16 changed files with 61 additions and 33 deletions

View File

@ -66,6 +66,12 @@ under the License.
<property name="jdk.version.class" value="1.5" description="JDK version of generated class files"/> <property name="jdk.version.class" value="1.5" description="JDK version of generated class files"/>
<property name="compile.debug" value="true"/> <property name="compile.debug" value="true"/>
<!--
Logging is suppressed by default.
To redirect log output to console, run ant with -Dorg.apache.poi.util.POILogger=org.apache.poi.util.SystemOutLogger
-->
<property name="org.apache.poi.util.POILogger" value="org.apache.poi.util.NullLogger"/>
<!-- issue warnings if source code contains unmappable characters for encoding ASCII --> <!-- issue warnings if source code contains unmappable characters for encoding ASCII -->
<property name="java.source.encoding" value="ASCII"/> <property name="java.source.encoding" value="ASCII"/>
@ -165,6 +171,7 @@ under the License.
<propertyset id="junit.properties"> <propertyset id="junit.properties">
<propertyref name="POI.testdata.path"/> <propertyref name="POI.testdata.path"/>
<propertyref name="java.awt.headless"/> <propertyref name="java.awt.headless"/>
<propertyref name="org.apache.poi.util.POILogger"/>
</propertyset> </propertyset>
<path id="main.classpath"> <path id="main.classpath">

View File

@ -25,11 +25,8 @@ import java.util.List;
import org.apache.poi.hssf.record.cont.ContinuableRecordInput; import org.apache.poi.hssf.record.cont.ContinuableRecordInput;
import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.cont.ContinuableRecordOutput; import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
import org.apache.poi.util.BitField; import org.apache.poi.poifs.dev.POIFSLister;
import org.apache.poi.util.BitFieldFactory; import org.apache.poi.util.*;
import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.StringUtil;
/** /**
* Title: Unicode String<p/> * Title: Unicode String<p/>
@ -40,6 +37,8 @@ import org.apache.poi.util.StringUtil;
* REFERENCE: PG 951 Excel Binary File Format (.xls) Structure Specification v20091214 * REFERENCE: PG 951 Excel Binary File Format (.xls) Structure Specification v20091214
*/ */
public class UnicodeString implements Comparable<UnicodeString> { // TODO - make this final when the compatibility version is removed public class UnicodeString implements Comparable<UnicodeString> { // TODO - make this final when the compatibility version is removed
private static POILogger _logger = POILogFactory.getLogger(UnicodeString.class);
private short field_1_charCount; private short field_1_charCount;
private byte field_2_optionflags; private byte field_2_optionflags;
private String field_3_string; private String field_3_string;
@ -138,7 +137,7 @@ public class UnicodeString implements Comparable<UnicodeString> { // TODO - make
// Spot corrupt records // Spot corrupt records
if(reserved != 1) { if(reserved != 1) {
System.err.println("Warning - ExtRst was has wrong magic marker, expecting 1 but found " + reserved + " - ignoring"); _logger.log(POILogger.WARN, "Warning - ExtRst has wrong magic marker, expecting 1 but found " + reserved + " - ignoring");
// Grab all the remaining data, and ignore it // Grab all the remaining data, and ignore it
for(int i=0; i<expectedLength-2; i++) { for(int i=0; i<expectedLength-2; i++) {
in.readByte(); in.readByte();
@ -438,7 +437,7 @@ public class UnicodeString implements Comparable<UnicodeString> { // TODO - make
if (isExtendedText() && (extensionLength > 0)) { if (isExtendedText() && (extensionLength > 0)) {
field_5_ext_rst = new ExtRst(new ContinuableRecordInput(in), extensionLength); field_5_ext_rst = new ExtRst(new ContinuableRecordInput(in), extensionLength);
if(field_5_ext_rst.getDataSize()+4 != extensionLength) { if(field_5_ext_rst.getDataSize()+4 != extensionLength) {
System.err.println("ExtRst was supposed to be " + extensionLength + " bytes long, but seems to actually be " + (field_5_ext_rst.getDataSize()+4)); _logger.log(POILogger.WARN, "ExtRst was supposed to be " + extensionLength + " bytes long, but seems to actually be " + (field_5_ext_rst.getDataSize() + 4));
} }
} }
} }

View File

@ -438,7 +438,7 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
* *
* <p> * <p>
* Character width is defined as the maximum digit width * Character width is defined as the maximum digit width
* of the numbers <code>0, 1, 2, 9</code> as rendered * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook). * using the default font (first font in the workbook).
* <br/> * <br/>
* Unless you are using a very special font, the default character is '0' (zero), * Unless you are using a very special font, the default character is '0' (zero),

View File

@ -23,9 +23,7 @@ import java.util.*;
import org.apache.poi.poifs.common.POIFSBigBlockSize; import org.apache.poi.poifs.common.POIFSBigBlockSize;
import org.apache.poi.poifs.common.POIFSConstants; import org.apache.poi.poifs.common.POIFSConstants;
import org.apache.poi.util.IntList; import org.apache.poi.util.*;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.LittleEndianConsts;
/** /**
* This class manages and creates the Block Allocation Table, which is * This class manages and creates the Block Allocation Table, which is
@ -43,6 +41,7 @@ import org.apache.poi.util.LittleEndianConsts;
* @author Marc Johnson (mjohnson at apache dot org) * @author Marc Johnson (mjohnson at apache dot org)
*/ */
public final class BlockAllocationTableReader { public final class BlockAllocationTableReader {
private static final POILogger _logger = POILogFactory.getLogger(BlockAllocationTableReader.class);
/** /**
* Maximum number size (in blocks) of the allocation table as supported by * Maximum number size (in blocks) of the allocation table as supported by
@ -227,12 +226,12 @@ public final class BlockAllocationTableReader {
} catch(IOException e) { } catch(IOException e) {
if(currentBlock == headerPropertiesStartBlock) { if(currentBlock == headerPropertiesStartBlock) {
// Special case where things are in the wrong order // Special case where things are in the wrong order
System.err.println("Warning, header block comes after data blocks in POIFS block listing"); _logger.log(POILogger.WARN, "Warning, header block comes after data blocks in POIFS block listing");
currentBlock = POIFSConstants.END_OF_CHAIN; currentBlock = POIFSConstants.END_OF_CHAIN;
} else if(currentBlock == 0 && firstPass) { } else if(currentBlock == 0 && firstPass) {
// Special case where the termination isn't done right // Special case where the termination isn't done right
// on an empty set // on an empty set
System.err.println("Warning, incorrectly terminated empty data blocks in POIFS block listing (should end at -2, ended at 0)"); _logger.log(POILogger.WARN, "Warning, incorrectly terminated empty data blocks in POIFS block listing (should end at -2, ended at 0)");
currentBlock = POIFSConstants.END_OF_CHAIN; currentBlock = POIFSConstants.END_OF_CHAIN;
} else { } else {
// Ripple up // Ripple up

View File

@ -127,7 +127,7 @@ public interface Sheet extends Iterable<Row> {
* *
* <p> * <p>
* Character width is defined as the maximum digit width * Character width is defined as the maximum digit width
* of the numbers <code>0, 1, 2, 9</code> as rendered * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook). * using the default font (first font in the workbook).
* <br/> * <br/>
* Unless you are using a very special font, the default character is '0' (zero), * Unless you are using a very special font, the default character is '0' (zero),
@ -167,7 +167,7 @@ public interface Sheet extends Iterable<Row> {
* *
* <p> * <p>
* Character width is defined as the maximum digit width * Character width is defined as the maximum digit width
* of the numbers <code>0, 1, 2, 9</code> as rendered * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook) * using the default font (first font in the workbook)
* </p> * </p>
* *

View File

@ -24,6 +24,8 @@ import java.io.UnsupportedEncodingException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.exceptions.InvalidOperationException; import org.apache.poi.openxml4j.exceptions.InvalidOperationException;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
/** /**
* Helper for part and pack URI. * Helper for part and pack URI.
@ -32,6 +34,7 @@ import org.apache.poi.openxml4j.exceptions.InvalidOperationException;
* @version 0.1 * @version 0.1
*/ */
public final class PackagingURIHelper { public final class PackagingURIHelper {
private final static POILogger _logger = POILogFactory.getLogger(PackagingURIHelper.class);
/** /**
* Package root URI. * Package root URI.
@ -293,7 +296,7 @@ public final class PackagingURIHelper {
try { try {
targetURI = new URI(path.substring(1)); targetURI = new URI(path.substring(1));
} catch (Exception e) { } catch (Exception e) {
System.err.println(e); _logger.log(POILogger.WARN, e);
return null; return null;
} }
} }
@ -331,7 +334,7 @@ public final class PackagingURIHelper {
try { try {
return new URI(retVal.toString()); return new URI(retVal.toString());
} catch (Exception e) { } catch (Exception e) {
System.err.println(e); _logger.log(POILogger.WARN, e);
return null; return null;
} }
} }
@ -373,7 +376,7 @@ public final class PackagingURIHelper {
try { try {
return new URI(retVal.toString()); return new URI(retVal.toString());
} catch (Exception e) { } catch (Exception e) {
System.err.println(e); _logger.log(POILogger.WARN, e);
return null; return null;
} }
} }

View File

@ -1261,7 +1261,7 @@ public class SXSSFSheet implements Sheet, Cloneable
public SheetDataWriter() throws IOException public SheetDataWriter() throws IOException
{ {
_fd = File.createTempFile("sheet", ".xml"); _fd = File.createTempFile("poi-sxxsf-sheet", ".xml");
_fd.deleteOnExit(); _fd.deleteOnExit();
_out = new BufferedWriter(new FileWriter(_fd)); _out = new BufferedWriter(new FileWriter(_fd));
_out.write("<sheetData>\n"); _out.write("<sheetData>\n");

View File

@ -533,7 +533,8 @@ public class SXSSFWorkbook implements Workbook
public void write(OutputStream stream) throws IOException public void write(OutputStream stream) throws IOException
{ {
//Save the template //Save the template
File tmplFile = File.createTempFile("template", ".xlsx"); File tmplFile = File.createTempFile("poi-sxxsf-template", ".xlsx");
tmplFile.deleteOnExit();
FileOutputStream os = new FileOutputStream(tmplFile); FileOutputStream os = new FileOutputStream(tmplFile);
_wb.write(os); _wb.write(os);
os.close(); os.close();

View File

@ -1935,7 +1935,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
* *
* <p> * <p>
* Character width is defined as the maximum digit width * Character width is defined as the maximum digit width
* of the numbers <code>0, 1, 2, 9</code> as rendered * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook). * using the default font (first font in the workbook).
* <br/> * <br/>
* Unless you are using a very special font, the default character is '0' (zero), * Unless you are using a very special font, the default character is '0' (zero),

View File

@ -148,7 +148,7 @@ public final class TestPOIXMLDocument extends TestCase {
doc.parse(new TestFactory()); doc.parse(new TestFactory());
for(POIXMLDocumentPart rel : doc.getRelations()){ for(POIXMLDocumentPart rel : doc.getRelations()){
System.out.println(rel); //TODO finish me
} }
} }

View File

@ -21,6 +21,8 @@ import java.io.IOException;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream; import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
/** /**
* FontTable or in MS terminology sttbfffn is a common data structure written in all * FontTable or in MS terminology sttbfffn is a common data structure written in all
@ -32,6 +34,7 @@ import org.apache.poi.util.LittleEndian;
*/ */
public final class FontTable public final class FontTable
{ {
private final static POILogger _logger = POILogFactory.getLogger(FontTable.class);
private short _stringCount;// how many strings are included in the string table private short _stringCount;// how many strings are included in the string table
private short _extraDataSz;// size in bytes of the extra data private short _extraDataSz;// size in bytes of the extra data
@ -86,7 +89,7 @@ public final class FontTable
{ {
if(chpFtc >= _stringCount) if(chpFtc >= _stringCount)
{ {
System.out.println("Mismatch in chpFtc with stringCount"); _logger.log(POILogger.INFO, "Mismatch in chpFtc with stringCount");
return null; return null;
} }
@ -97,7 +100,7 @@ public final class FontTable
{ {
if(chpFtc >= _stringCount) if(chpFtc >= _stringCount)
{ {
System.out.println("Mismatch in chpFtc with stringCount"); _logger.log(POILogger.INFO, "Mismatch in chpFtc with stringCount");
return null; return null;
} }

View File

@ -17,6 +17,9 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
import java.util.Arrays; import java.util.Arrays;
/** /**
@ -30,6 +33,7 @@ import java.util.Arrays;
*/ */
public abstract class PropertyNode implements Comparable, Cloneable public abstract class PropertyNode implements Comparable, Cloneable
{ {
private final static POILogger _logger = POILogFactory.getLogger(PropertyNode.class);
protected Object _buf; protected Object _buf;
/** The start, in characters */ /** The start, in characters */
private int _cpStart; private int _cpStart;
@ -49,7 +53,7 @@ public abstract class PropertyNode implements Comparable, Cloneable
_buf = buf; _buf = buf;
if(_cpStart < 0) { if(_cpStart < 0) {
System.err.println("A property claimed to start before zero, at " + _cpStart + "! Resetting it to zero, and hoping for the best"); _logger.log(POILogger.WARN, "A property claimed to start before zero, at " + _cpStart + "! Resetting it to zero, and hoping for the best");
_cpStart = 0; _cpStart = 0;
} }
} }

View File

@ -23,12 +23,15 @@ import java.util.List;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.hwpf.model.io.*; import org.apache.poi.hwpf.model.io.*;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
/** /**
* @author Ryan Ackley * @author Ryan Ackley
*/ */
public class SectionTable public class SectionTable
{ {
private final static POILogger _logger = POILogFactory.getLogger(SectionTable.class);
private static final int SED_SIZE = 12; private static final int SED_SIZE = 12;
protected ArrayList<SEPX> _sections = new ArrayList<SEPX>(); protected ArrayList<SEPX> _sections = new ArrayList<SEPX>();
@ -92,7 +95,7 @@ public class SectionTable
} }
} }
if(! matchAt && matchHalf) { if(! matchAt && matchHalf) {
System.err.println("Your document seemed to be mostly unicode, but the section definition was in bytes! Trying anyway, but things may well go wrong!"); _logger.log(POILogger.WARN, "Your document seemed to be mostly unicode, but the section definition was in bytes! Trying anyway, but things may well go wrong!");
for(int i=0; i<_sections.size(); i++) { for(int i=0; i<_sections.size(); i++) {
SEPX s = _sections.get(i); SEPX s = _sections.get(i);
GenericPropertyNode node = sedPlex.getProperty(i); GenericPropertyNode node = sedPlex.getProperty(i);

View File

@ -115,10 +115,12 @@ public final class TestVisioExtractor extends TestCase {
// Check // Check
capture.flush(); capture.flush();
String text = baos.toString(); String text = baos.toString();
assertEquals( // YK: stdout can contain lots of other stuff if logging is sent to console
// ( -Dorg.apache.poi.util.POILogger=org.apache.poi.util.SystemOutLogger)
assertTrue( text.contains(
"text\nView\n" + "text\nView\n" +
"Test View\nI am a test view\n" + "Test View\nI am a test view\n" +
"Some random text, on a page\n", "Some random text, on a page\n"
text); ));
} }
} }

View File

@ -21,11 +21,14 @@ import org.apache.poi.hssf.HSSFITestDataProvider;
import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellReference; import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
/** /**
* Tests for {@link HSSFDataFormat} * Tests for {@link HSSFDataFormat}
*/ */
public final class TestHSSFDataFormat extends BaseTestDataFormat { public final class TestHSSFDataFormat extends BaseTestDataFormat {
private static POILogger _logger = POILogFactory.getLogger(TestHSSFDataFormat.class);
public TestHSSFDataFormat() { public TestHSSFDataFormat() {
super(HSSFITestDataProvider.instance); super(HSSFITestDataProvider.instance);
@ -61,8 +64,9 @@ public final class TestHSSFDataFormat extends BaseTestDataFormat {
CellStyle style = cell.getCellStyle(); CellStyle style = cell.getCellStyle();
String fmt = style.getDataFormatString(); String fmt = style.getDataFormatString();
if(fmt == null) if(fmt == null) {
System.out.println(cell + ": " + fmt); _logger.log(POILogger.WARN, cell + ": " + fmt);
}
} }
} }
} }

View File

@ -29,8 +29,11 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSWriterEvent; import org.apache.poi.poifs.filesystem.POIFSWriterEvent;
import org.apache.poi.poifs.filesystem.POIFSWriterListener; import org.apache.poi.poifs.filesystem.POIFSWriterListener;
import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
public final class TestEmptyDocument extends TestCase { public final class TestEmptyDocument extends TestCase {
private static POILogger _logger = POILogFactory.getLogger(TestEmptyDocument.class);
public void testSingleEmptyDocument() throws IOException { public void testSingleEmptyDocument() throws IOException {
POIFSFileSystem fs = new POIFSFileSystem(); POIFSFileSystem fs = new POIFSFileSystem();
@ -47,7 +50,7 @@ public final class TestEmptyDocument extends TestCase {
DirectoryEntry dir = fs.getRoot(); DirectoryEntry dir = fs.getRoot();
dir.createDocument("Foo", 0, new POIFSWriterListener() { dir.createDocument("Foo", 0, new POIFSWriterListener() {
public void processPOIFSWriterEvent(POIFSWriterEvent event) { public void processPOIFSWriterEvent(POIFSWriterEvent event) {
System.out.println("written"); _logger.log(POILogger.WARN, "written");
} }
}); });