mirror of https://github.com/apache/poi.git
rewrite CopyCompare to remove its ThreadLocal which causes a sonar code smell
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1896536 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
32311e42c2
commit
9a5dec078b
|
@ -62,9 +62,8 @@ import org.apache.poi.util.TempFile;
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({"java:S106","java:S4823"})
|
@SuppressWarnings({"java:S106","java:S4823"})
|
||||||
public final class CopyCompare {
|
public final class CopyCompare {
|
||||||
private CopyCompare() {}
|
|
||||||
|
|
||||||
private static final ThreadLocal<PrintStream> out = ThreadLocal.withInitial(() -> System.out);
|
private PrintStream out = System.out;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs the example program. The application expects one or two arguments:
|
* Runs the example program. The application expects one or two arguments:
|
||||||
|
@ -83,6 +82,10 @@ public final class CopyCompare {
|
||||||
* supported.
|
* supported.
|
||||||
*/
|
*/
|
||||||
public static void main(final String[] args) throws IOException {
|
public static void main(final String[] args) throws IOException {
|
||||||
|
new CopyCompare().run(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run(String[] args) throws IOException {
|
||||||
String originalFileName = null;
|
String originalFileName = null;
|
||||||
String copyFileName = null;
|
String copyFileName = null;
|
||||||
|
|
||||||
|
@ -120,12 +123,12 @@ public final class CopyCompare {
|
||||||
POIFSFileSystem cpfs = new POIFSFileSystem(new File(copyFileName))) {
|
POIFSFileSystem cpfs = new POIFSFileSystem(new File(copyFileName))) {
|
||||||
final DirectoryEntry oRoot = opfs.getRoot();
|
final DirectoryEntry oRoot = opfs.getRoot();
|
||||||
final DirectoryEntry cRoot = cpfs.getRoot();
|
final DirectoryEntry cRoot = cpfs.getRoot();
|
||||||
out.get().println(EntryUtils.areDirectoriesIdentical(oRoot, cRoot) ? "Equal" : "Not equal");
|
out.println(EntryUtils.areDirectoriesIdentical(oRoot, cRoot) ? "Equal" : "Not equal");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setOut(PrintStream ps) {
|
public void setOut(PrintStream ps) {
|
||||||
out.set(ps);
|
out = ps;
|
||||||
}
|
}
|
||||||
|
|
||||||
private interface InputStreamSupplier {
|
private interface InputStreamSupplier {
|
||||||
|
|
|
@ -33,7 +33,6 @@ import java.util.Set;
|
||||||
|
|
||||||
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
|
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
|
||||||
import org.apache.poi.examples.hpsf.CopyCompare;
|
import org.apache.poi.examples.hpsf.CopyCompare;
|
||||||
import org.apache.poi.extractor.POITextExtractor;
|
|
||||||
import org.apache.poi.hpsf.DocumentSummaryInformation;
|
import org.apache.poi.hpsf.DocumentSummaryInformation;
|
||||||
import org.apache.poi.hpsf.HPSFPropertiesOnlyDocument;
|
import org.apache.poi.hpsf.HPSFPropertiesOnlyDocument;
|
||||||
import org.apache.poi.hpsf.PropertySet;
|
import org.apache.poi.hpsf.PropertySet;
|
||||||
|
@ -129,11 +128,13 @@ public class HPSFFileHandler extends POIFSFileHandler {
|
||||||
public void handleAdditional(File file) throws Exception {
|
public void handleAdditional(File file) throws Exception {
|
||||||
assumeFalse(EXCLUDES_HANDLE_ADD.contains(file.getParentFile().getName()+"/"+file.getName()));
|
assumeFalse(EXCLUDES_HANDLE_ADD.contains(file.getParentFile().getName()+"/"+file.getName()));
|
||||||
|
|
||||||
UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
|
try (UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
|
||||||
PrintStream psNew = new PrintStream(bos, true, "ISO-8859-1");
|
PrintStream psNew = new PrintStream(bos, true, "ISO-8859-1");
|
||||||
CopyCompare.setOut(psNew);
|
CopyCompare copyCompare = new CopyCompare();
|
||||||
CopyCompare.main(new String[]{file.getAbsolutePath(), copyOutput.get().getAbsolutePath()});
|
copyCompare.setOut(psNew);
|
||||||
assertEquals("Equal" + NL, bos.toString(StandardCharsets.UTF_8));
|
CopyCompare.main(new String[]{file.getAbsolutePath(), copyOutput.get().getAbsolutePath()});
|
||||||
|
assertEquals("Equal" + NL, bos.toString(StandardCharsets.UTF_8));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,8 @@ public class ThemesTable extends POIXMLDocumentPart implements Themes {
|
||||||
return values()[idx];
|
return values()[idx];
|
||||||
}
|
}
|
||||||
ThemeElement(int idx, String name) {
|
ThemeElement(int idx, String name) {
|
||||||
this.idx = idx; this.name = name;
|
this.idx = idx;
|
||||||
|
this.name = name;
|
||||||
}
|
}
|
||||||
public final int idx;
|
public final int idx;
|
||||||
public final String name;
|
public final String name;
|
||||||
|
|
Loading…
Reference in New Issue