Author: jacopoc
Date: Thu Jun 21 15:42:45 2012
New Revision: 1352575
URL:
http://svn.apache.org/viewvc?rev=1352575&view=revLog:
Improved information logged when the method is unable to compute the approximate byte size of a cached object using serialization: instead of a useless stack trace it is returned an informative message with the name of the class that is not serializable; in case of null objects a message is also logged.
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=1352575&r1=1352574&r2=1352575&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 Thu Jun 21 15:42:45 2012
@@ -497,9 +497,18 @@ public class UtilCache<K, V> implements
private long findSizeInBytes(Object o) {
try {
- return UtilObject.getByteCount(o);
+ if (o == null) {
+ if (Debug.infoOn()) Debug.logInfo("Found null object in cache: " + getName(), module);
+ return 0;
+ }
+ if (o instanceof Serializable) {
+ return UtilObject.getByteCount(o);
+ } else {
+ 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 (Exception e) {
- e.printStackTrace();
+ Debug.logWarning(e, "Unable to compute memory size for object of " + o.getClass(), module);
return 0;
}
}