Java 类org.apache.commons.io.TaggedIOException 实例源码
项目:extract
文件:PrintStreamSpewer.java
@Override
public void write(final Document document, final Reader reader) throws IOException {
if (outputMetadata) {
writeMetadata(document);
}
// A PrintStream should never throw an IOException: the exception would always come from the input stream.
// There's no need to use a TaggedOutputStream or catch IOExceptions.
copy(reader, stream);
// Add an extra newline to signify the end of the text.
stream.println();
if (stream.checkError()) {
throw new TaggedIOException(new IOException("Error writing to print stream."), this);
}
// Write out child documents, if any.
for (EmbeddedDocument embed: document.getEmbeds()) {
try (final Reader embedReader = embed.getReader()) {
write(embed, embedReader);
}
}
}
项目:extract
文件:FileSpewer.java
@Override
public void writeMetadata(final Document document) throws IOException {
final Metadata metadata = document.getMetadata();
Path outputPath = getOutputPath(document);
outputPath = outputPath.getFileSystem().getPath(outputPath.toString() + ".json");
logger.info(String.format("Outputting metadata to file: \"%s\".", outputPath));
try (final JsonGenerator jsonGenerator = new JsonFactory().createGenerator(outputPath.toFile(),
JsonEncoding.UTF8)) {
jsonGenerator.useDefaultPrettyPrinter();
jsonGenerator.writeStartObject();
new MetadataTransformer(metadata, fields).transform(jsonGenerator::writeStringField, (name, values)-> {
jsonGenerator.writeArrayFieldStart(name);
jsonGenerator.writeStartArray();
for (String value: values) {
jsonGenerator.writeString(value);
}
});
jsonGenerator.writeEndObject();
jsonGenerator.writeRaw('\n');
} catch (IOException e) {
throw new TaggedIOException(new IOException("Unable to output JSON."), this);
}
}
项目:extract
文件:Extractor.java
/**
* Extract and spew content from a document. This method is the same as {@link #extract(Document, Spewer)} with
* the exception that the document will be skipped if the reporter returns {@literal false} for a call to
* {@link Reporter#skip(Document)}.
*
* If the document is not skipped, then the result of the extraction is passed to the reporter in a call to
* {@link Reporter#save(Document, ExtractionStatus, Exception)}.
*
* @param document document to extract from
* @param spewer endpoint to write to
* @param reporter used to check whether the document should be skipped and save extraction status
*/
public void extract(final Document document, final Spewer spewer, final Reporter reporter) {
Objects.requireNonNull(reporter);
if (reporter.skip(document)) {
logger.info(String.format("File already extracted; skipping: \"%s\".", document));
return;
}
ExtractionStatus status = ExtractionStatus.SUCCESS;
Exception exception = null;
try {
extract(document, spewer);
} catch (final Exception e) {
status = status(e, spewer);
log(e, status, document);
exception = e;
}
// For tagged IO exceptions, discard the tag, which is either unwanted or not serializable.
if (null != exception && (exception instanceof TaggedIOException)) {
exception = ((TaggedIOException) exception).getCause();
}
reporter.save(document, status, exception);
}
项目:extract
文件:Extractor.java
/**
* Convert the given {@link Exception} into an {@link ExtractionStatus} for addition to a report.
*
* Logs an appropriate message depending on the exception.
*
* @param e the exception to convert and log
* @return the resulting status
*/
private ExtractionStatus status(final Exception e, final Spewer spewer) {
if (TaggedIOException.isTaggedWith(e, spewer)) {
return ExtractionStatus.FAILURE_NOT_SAVED;
}
if (TaggedIOException.isTaggedWith(e, MetadataTransformer.class)) {
return ExtractionStatus.FAILURE_NOT_PARSED;
}
if (e instanceof FileNotFoundException) {
return ExtractionStatus.FAILURE_NOT_FOUND;
}
if (!(e instanceof IOException)) {
return ExtractionStatus.FAILURE_UNKNOWN;
}
final Throwable cause = e.getCause();
if (cause instanceof EncryptedDocumentException) {
return ExtractionStatus.FAILURE_NOT_DECRYPTED;
}
// TIKA-198: IOExceptions thrown by parsers will be wrapped in a TikaException.
// This helps us differentiate input stream exceptions from output stream exceptions.
// https://issues.apache.org/jira/browse/TIKA-198
if (cause instanceof TikaException) {
return ExtractionStatus.FAILURE_NOT_PARSED;
}
return ExtractionStatus.FAILURE_UNREADABLE;
}
项目:extract
文件:FileSpewer.java
@Override
public void write(final Document document, final Reader reader) throws IOException {
final Path outputPath = getOutputPath(document);
// Add the output extension.
Path contentsOutputPath;
if (null != outputExtension) {
contentsOutputPath = outputPath.getFileSystem().getPath(outputPath.toString() + "." + outputExtension);
} else {
contentsOutputPath = outputPath;
}
logger.info(String.format("Outputting to file: \"%s\".", contentsOutputPath));
// Make the required directories.
final Path outputParent = contentsOutputPath.getParent();
if (null != outputParent) {
final File outputFileParent = outputParent.toFile();
final boolean madeDirs = outputFileParent.mkdirs();
// The {@link File#mkdirs} method will return false if the path already exists.
if (!madeDirs && !outputFileParent.isDirectory()) {
throw new TaggedIOException(new IOException(String.format("Unable to make directories for file: \"%s\".",
contentsOutputPath)), this);
}
}
TaggedOutputStream tagged = null;
// #copy buffers the input so there's no need to use an output buffer.
try (final OutputStream output = Files.newOutputStream(contentsOutputPath)) {
tagged = new TaggedOutputStream(output);
copy(reader, tagged);
} catch (IOException e) {
if (null != tagged && tagged.isCauseOf(e)) {
throw new TaggedIOException(new IOException(String.format("Error writing output to file: \"%s\".",
contentsOutputPath), e), this);
} else {
throw e;
}
}
if (outputMetadata) {
writeMetadata(document);
}
}
项目:Moenagade
文件:TaggedOutputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return <code>true</code> if the exception was thrown by this stream,
* <code>false</code> otherwise
*/
public boolean isCauseOf(Exception exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:Moenagade
文件:TaggedOutputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param exception an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Exception exception) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(exception, tag);
}
项目:Moenagade
文件:TaggedOutputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:Moenagade
文件:TaggedInputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return <code>true</code> if the exception was thrown by this stream,
* <code>false</code> otherwise
*/
public boolean isCauseOf(Throwable exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:Moenagade
文件:TaggedInputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param throwable an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Throwable throwable) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(throwable, tag);
}
项目:Moenagade
文件:TaggedInputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:lams
文件:TaggedOutputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(Exception exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:lams
文件:TaggedOutputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param exception an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Exception exception) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(exception, tag);
}
项目:lams
文件:TaggedOutputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:lams
文件:TaggedInputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(Throwable exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:lams
文件:TaggedInputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param throwable an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Throwable throwable) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(throwable, tag);
}
项目:lams
文件:TaggedInputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:WidgetStore
文件:TaggedOutputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(final Exception exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:WidgetStore
文件:TaggedOutputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param exception an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(final Exception exception) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(exception, tag);
}
项目:WidgetStore
文件:TaggedOutputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(final IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:WidgetStore
文件:TaggedInputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(final Throwable exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:WidgetStore
文件:TaggedInputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param throwable an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(final Throwable throwable) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(throwable, tag);
}
项目:WidgetStore
文件:TaggedInputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(final IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:JAATP
文件:TaggedOutputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(final Exception exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:JAATP
文件:TaggedOutputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param exception an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(final Exception exception) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(exception, tag);
}
项目:JAATP
文件:TaggedOutputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(final IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:JAATP
文件:TaggedInputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(final Throwable exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:JAATP
文件:TaggedInputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param throwable an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(final Throwable throwable) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(throwable, tag);
}
项目:JAATP
文件:TaggedInputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(final IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:VectorAttackScanner
文件:TaggedOutputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(Exception exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:VectorAttackScanner
文件:TaggedOutputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param exception an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Exception exception) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(exception, tag);
}
项目:VectorAttackScanner
文件:TaggedOutputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:VectorAttackScanner
文件:TaggedInputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(Throwable exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:VectorAttackScanner
文件:TaggedInputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param throwable an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Throwable throwable) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(throwable, tag);
}
项目:VectorAttackScanner
文件:TaggedInputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:dota2-sound-editor
文件:TaggedOutputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(Exception exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:dota2-sound-editor
文件:TaggedOutputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param exception an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Exception exception) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(exception, tag);
}
项目:dota2-sound-editor
文件:TaggedOutputStream.java
/**
* Tags any IOExceptions thrown, wrapping and re-throwing.
*
* @param e The IOException thrown
* @throws IOException if an I/O error occurs
*/
@Override
protected void handleIOException(IOException e) throws IOException {
throw new TaggedIOException(e, tag);
}
项目:dota2-sound-editor
文件:TaggedInputStream.java
/**
* Tests if the given exception was caused by this stream.
*
* @param exception an exception
* @return {@code true} if the exception was thrown by this stream,
* {@code false} otherwise
*/
public boolean isCauseOf(Throwable exception) {
return TaggedIOException.isTaggedWith(exception, tag);
}
项目:dota2-sound-editor
文件:TaggedInputStream.java
/**
* Re-throws the original exception thrown by this stream. This method
* first checks whether the given exception is a {@link TaggedIOException}
* wrapper created by this decorator, and then unwraps and throws the
* original wrapped exception. Returns normally if the exception was
* not thrown by this stream.
*
* @param throwable an exception
* @throws IOException original exception, if any, thrown by this stream
*/
public void throwIfCauseOf(Throwable throwable) throws IOException {
TaggedIOException.throwCauseIfTaggedWith(throwable, tag);
}