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;