You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2013/05/07 23:09:47 UTC

svn commit: r1480079 - /ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java

Author: jleroux
Date: Tue May  7 21:09:47 2013
New Revision: 1480079

URL: http://svn.apache.org/r1480079
Log:
A sligthly modified patch from Christoph Neuroth for "Exceptions logged when caches contain collections with unserializable objects" https://issues.apache.org/jira/browse/OFBIZ-5184

jacopoc commited revision 1352575 which would prevent stack traces to be logged when viewing the cache overview screen in /webtools. However, a stacktrace is still logged when the caches contain collections which themselves contain objects which cannot be serialized.

jleroux: I simply used logWarning instead of info

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java?rev=1480079&r1=1480078&r2=1480079&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java Tue May  7 21:09:47 2013
@@ -19,6 +19,7 @@
 package org.ofbiz.base.util.cache;
 
 import java.io.IOException;
+import java.io.NotSerializableException;
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.Collections;
@@ -49,8 +50,8 @@ import org.ofbiz.base.util.UtilObject;
 import org.ofbiz.base.util.UtilValidate;
 
 import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap;
-import com.googlecode.concurrentlinkedhashmap.EvictionListener;
 import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.Builder;
+import com.googlecode.concurrentlinkedhashmap.EvictionListener;
 
 /**
  * Generalized caching utility. Provides a number of caching features:
@@ -507,6 +508,13 @@ public class UtilCache<K, V> implements 
                 if (Debug.infoOn()) Debug.logInfo("Unable to compute memory size for non serializable object; returning 0 byte size for object of " + o.getClass(), module);
                 return 0;
             }
+        } catch (NotSerializableException e) {
+            // this happens when we try to get the byte count for an object which itself is
+            // serializable, but fails to be serialized, such as a map holding unserializable objects
+            if (Debug.warningOn()) {
+                Debug.logWarning("NotSerializableException while computing memory size; returning 0 byte size for object of " + e.getMessage(), module);
+            }
+            return 0;
         } catch (Exception e) {
             Debug.logWarning(e, "Unable to compute memory size for object of " + o.getClass(), module);
             return 0;