Author: toad
Date: 2007-08-15 18:12:29 +0000 (Wed, 15 Aug 2007)
New Revision: 14711

Modified:
   trunk/freenet/src/freenet/support/FileLoggerHook.java
Log:
Somewhat faster trace logging

Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
===================================================================
--- trunk/freenet/src/freenet/support/FileLoggerHook.java       2007-08-15 
17:36:20 UTC (rev 14710)
+++ trunk/freenet/src/freenet/support/FileLoggerHook.java       2007-08-15 
18:12:29 UTC (rev 14711)
@@ -822,18 +822,20 @@

                if (e != null) {

-                       // Convert the stack trace to a string.
-                       ByteArrayOutputStream bos = new 
ByteArrayOutputStream(350);
-                       PrintWriter bpw = new PrintWriter(bos);
-                       try {
-                               e.printStackTrace(bpw);
-                       } catch (NullPointerException ex) {
-                               log(this, getClass(), "Got evil 
NPE-in-stack-trace bug", null, ERROR);
-                               bpw.println("[ evil NPE-in-stack-trace 
triggered ]");
+                       sb.append(e.toString());
+                       
+                       StackTraceElement[] trace = e.getStackTrace();
+                       
+                       if(trace == null)
+                               sb.append("(null)");
+                       else {
+                               sb.append('\n');
+                               for(int i=0;i<trace.length;i++) {
+                                       sb.append("\tat ");
+                                       sb.append(trace[i].toString());
+                                       sb.append('\n');
+                               }
                        }
-                       bpw.flush();
-
-                       sb.append(bos.toString());
                }

                logString(sb.toString().getBytes());


Reply via email to