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

Reply via email to