Author: ravn Date: Sun Dec 21 20:08:06 2008 New Revision: 1258 Added: slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java
Log: Now is robust against exceptions in parameter rendering by keeping a WeakHashMap of those classes which cannot be rendered. Added: slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java ============================================================================== --- (empty file) +++ slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java Sun Dec 21 20:08:06 2008 @@ -0,0 +1,25 @@ +package org.slf4j.instrumentation; + +import java.util.Map; +import java.util.WeakHashMap; + +public class ToStringHelper { + + final static Map<Class, Object> unrenderableClasses = new WeakHashMap<Class, Object>(); + + public static String render(Object o) { + if (o == null) { + return String.valueOf(o); + } + Class objectClass = o.getClass(); + if (unrenderableClasses.containsKey(objectClass) == false) { + try { + return o.toString(); + } catch (Exception e) { + Long now = new Long(System.currentTimeMillis()); + unrenderableClasses.put(objectClass, now); + } + } + return o.getClass().getName() + "@" + Integer.toHexString(o.hashCode()); + } +} _______________________________________________ dev mailing list dev@slf4j.org http://www.slf4j.org/mailman/listinfo/dev