ASF Bugzilla – Attachment 23307 Details for
Bug 46404
NPE when logging an AxisFault with SocketAppender
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
New Version of ThrowableInformation class
ThrowableInformation.java (text/x-java), 2.92 KB, created by
Hanno Neuer
on 2009-02-25 07:37:53 UTC
(
hide
)
Description:
New Version of ThrowableInformation class
Filename:
MIME Type:
Creator:
Hanno Neuer
Created:
2009-02-25 07:37:53 UTC
Size:
2.92 KB
patch
obsolete
>/* > * 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.spi; > >import java.io.IOException; >import java.io.LineNumberReader; >import java.io.PrintWriter; >import java.io.StringReader; >import java.io.StringWriter; >import java.util.ArrayList; > >/** > * ThrowableInformation is log4j's internal representation of throwables. It > * essentially consists of a string array, called 'rep', where the first > * element, that is rep[0], represents the string representation of the > * throwable (i.e. the value you get when you do throwable.toString()) and > * subsequent elements correspond the stack trace with the top most entry of the > * stack corresponding to the second entry of the 'rep' array that is rep[1]. > * <p> > * The internal 'rep' is created and set in the constructors, calls to > * {@link ThrowableInformation#getThrowableStrRep()} will then receive clones of > * the internal field. > * </p> > * > * @author Ceki Gülcü > */ >public class ThrowableInformation implements java.io.Serializable { > > static final long serialVersionUID = -4748765566864322735L; > > private transient Throwable throwable; > private String[] rep; > > public ThrowableInformation(Throwable throwable) { > this.throwable = throwable; > createThrowableStrRep(); > } > > /** > * Create new instance. > * > * @since 1.2.15 > * @param r > * String representation of throwable. > */ > public ThrowableInformation(final String[] r) { > if (r != null) { > rep = (String[]) r.clone(); > } > } > > public Throwable getThrowable() { > return throwable; > } > > public String[] getThrowableStrRep() { > return (String[]) rep.clone(); > } > > private void createThrowableStrRep() { > StringWriter sw = new StringWriter(); > PrintWriter pw = new PrintWriter(sw); > throwable.printStackTrace(pw); > pw.flush(); > LineNumberReader reader = new LineNumberReader(new StringReader(sw.toString())); > ArrayList lines = new ArrayList(); > try { > String line = reader.readLine(); > while (line != null) { > lines.add(line); > line = reader.readLine(); > } > } catch (IOException ex) { > lines.add(ex.toString()); > } > rep = (String[]) lines.toArray(new String[lines.size()]); > } >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 46404
: 23307