X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar_unused%2Forg%2Fapache%2Flog4j%2Fhelpers%2FQuietWriter.java;fp=srcjar_unused%2Forg%2Fapache%2Flog4j%2Fhelpers%2FQuietWriter.java;h=778f091b67998a38cd266d5bf1a26d9139c94ba9;hb=4f30214e8098748469c6a4269ac2ed6c5750e4b0;hp=0000000000000000000000000000000000000000;hpb=9dabc02511e3a334a5749a504f57f69d6c9017bd;p=jalview.git diff --git a/srcjar_unused/org/apache/log4j/helpers/QuietWriter.java b/srcjar_unused/org/apache/log4j/helpers/QuietWriter.java new file mode 100644 index 0000000..778f091 --- /dev/null +++ b/srcjar_unused/org/apache/log4j/helpers/QuietWriter.java @@ -0,0 +1,76 @@ +/* + * 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.log4j.helpers; + +import java.io.Writer; +import java.io.FilterWriter; +import org.apache.log4j.spi.ErrorHandler; +import org.apache.log4j.spi.ErrorCode; + + +/** + QuietWriter does not throw exceptions when things go + wrong. Instead, it delegates error handling to its {@link ErrorHandler}. + + @author Ceki Gülcü + + @since 0.7.3 +*/ +public class QuietWriter extends FilterWriter { + + protected ErrorHandler errorHandler; + + public + QuietWriter(Writer writer, ErrorHandler errorHandler) { + super(writer); + setErrorHandler(errorHandler); + } + + public + void write(String string) { + if (string != null) { + try { + out.write(string); + } catch(Exception e) { + errorHandler.error("Failed to write ["+string+"].", e, + ErrorCode.WRITE_FAILURE); + } + } + } + + public + void flush() { + try { + out.flush(); + } catch(Exception e) { + errorHandler.error("Failed to flush writer,", e, + ErrorCode.FLUSH_FAILURE); + } + } + + + public + void setErrorHandler(ErrorHandler eh) { + if(eh == null) { + // This is a programming error on the part of the enclosing appender. + throw new IllegalArgumentException("Attempted to set null ErrorHandler."); + } else { + this.errorHandler = eh; + } + } +}