Skip to content

Commit 407caae

Browse files
author
Ben Bader
committed
Replacing calls to Exception#printStackTrace() with Java logging.
This will keep output cleaner, especially in Android where logging and stdout are mixed.
1 parent bd988e3 commit 407caae

File tree

3 files changed

+31
-3
lines changed

3 files changed

+31
-3
lines changed

src/main/java/org/msgpack/template/builder/JavassistTemplateBuilder.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.msgpack.template.Template;
3232
import org.msgpack.template.AbstractTemplate;
3333
import org.msgpack.template.TemplateRegistry;
34+
import org.msgpack.util.Exceptions;
3435

3536
@SuppressWarnings({ "rawtypes", "unchecked" })
3637
public class JavassistTemplateBuilder extends AbstractTemplateBuilder {
@@ -73,8 +74,10 @@ public JavassistTemplateBuilder(TemplateRegistry registry, ClassLoader cl) {
7374
appended = true;
7475
}
7576
} catch (SecurityException e) {
76-
LOG.fine("Cannot append a search path of classloader");
77-
e.printStackTrace();
77+
if (LOG.isLoggable(Level.FINE)) {
78+
LOG.fine("Cannot append a search path of classloader");
79+
LOG.fine(Exceptions.getStackTraceAsString(e));
80+
}
7881
}
7982
if (!appended) {
8083
pool.appendSystemPath();

src/main/java/org/msgpack/template/builder/TemplateBuilderChain.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,16 @@
2222
import java.lang.reflect.Type;
2323
import java.util.ArrayList;
2424
import java.util.List;
25+
import java.util.logging.Level;
26+
import java.util.logging.Logger;
2527

2628
import org.msgpack.template.TemplateRegistry;
29+
import org.msgpack.util.Exceptions;
2730
import org.msgpack.util.android.DalvikVmChecker;
2831

2932
public class TemplateBuilderChain {
33+
private static final Logger LOG = Logger.getLogger(TemplateBuilderChain.class.getName());
34+
3035
private static final String JAVASSIST_TEMPLATE_BUILDER_CLASS_NAME =
3136
"org.msgpack.template.builder.JavassistTemplateBuilder";
3237
private static final String REFLECTION_TEMPLATE_BUILDER_CLASS_NAME =
@@ -82,7 +87,9 @@ private static TemplateBuilder createForceTemplateBuilder(String className,
8287
ClassLoader.class);
8388
return (TemplateBuilder) cons.newInstance(registry, cl);
8489
} catch (Exception e) {
85-
e.printStackTrace();
90+
if (LOG.isLoggable(Level.FINE)) {
91+
LOG.fine(Exceptions.getStackTraceAsString(e));
92+
}
8693
}
8794
return new ReflectionTemplateBuilder(registry, cl);
8895
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.msgpack.util;
2+
3+
import java.io.PrintWriter;
4+
import java.io.StringWriter;
5+
6+
public class Exceptions {
7+
/**
8+
* Prints an exception as a {@link String} suitable for logging.
9+
*
10+
* @param e the exception to print
11+
* @return the exception formatted as a string
12+
*/
13+
public static String getStackTraceAsString(Exception e) {
14+
StringWriter writer = new StringWriter();
15+
e.printStackTrace(new PrintWriter(writer));
16+
return writer.toString();
17+
}
18+
}

0 commit comments

Comments
 (0)