You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mb...@apache.org on 2017/12/17 11:34:39 UTC
svn commit: r1818478 - in
/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache:
AbstractEntityConditionCache.java Cache.java EntityCache.java
EntityListCache.java
Author: mbrohl
Date: Sun Dec 17 11:34:39 2017
New Revision: 1818478
URL: http://svn.apache.org/viewvc?rev=1818478&view=rev
Log:
Improved: General refactoring and code improvements, package
org.apache.ofbiz.entity.cache.
(OFBIZ-9949)
Thanks Dennis Balkir for reporting and providing the patches.
Modified:
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/AbstractEntityConditionCache.java
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/Cache.java
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityCache.java
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityListCache.java
Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/AbstractEntityConditionCache.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/AbstractEntityConditionCache.java?rev=1818478&r1=1818477&r2=1818478&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/AbstractEntityConditionCache.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/AbstractEntityConditionCache.java Sun Dec 17 11:34:39 2017
@@ -26,7 +26,6 @@ import java.util.concurrent.ConcurrentMa
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.UtilMisc;
-import org.apache.ofbiz.base.util.UtilValidate;
import org.apache.ofbiz.base.util.cache.UtilCache;
import org.apache.ofbiz.entity.GenericEntity;
import org.apache.ofbiz.entity.GenericPK;
@@ -44,7 +43,9 @@ public abstract class AbstractEntityCond
protected V get(String entityName, EntityCondition condition, K key) {
ConcurrentMap<K, V> conditionCache = getConditionCache(entityName, condition);
- if (conditionCache == null) return null;
+ if (conditionCache == null) {
+ return null;
+ }
return conditionCache.get(key);
}
@@ -74,13 +75,17 @@ public abstract class AbstractEntityCond
public void remove(String entityName, EntityCondition condition) {
UtilCache<EntityCondition, ConcurrentMap<K, V>> cache = getCache(entityName);
- if (cache == null) return;
+ if (cache == null) {
+ return;
+ }
cache.remove(condition);
}
protected V remove(String entityName, EntityCondition condition, K key) {
ConcurrentMap<K, V> conditionCache = getConditionCache(entityName, condition);
- if (conditionCache == null) return null;
+ if (conditionCache == null) {
+ return null;
+ }
return conditionCache.remove(key);
}
@@ -90,19 +95,14 @@ public abstract class AbstractEntityCond
public static final EntityCondition getFrozenConditionKey(EntityCondition condition) {
EntityCondition frozenCondition = condition != null ? condition.freeze() : null;
- // This is no longer needed, fixed issue with unequal conditions after freezing
- //if (condition != null) {
- // if (!condition.equals(frozenCondition)) {
- // Debug.logWarning("Frozen condition does not equal condition:\n -=-=-=-Original=" + condition + "\n -=-=-=-Frozen=" + frozenCondition, module);
- // Debug.logWarning("Frozen condition not equal info: condition class=" + condition.getClass().getName() + "; frozenCondition class=" + frozenCondition.getClass().getName(), module);
- // }
- //}
return frozenCondition;
}
protected ConcurrentMap<K, V> getConditionCache(String entityName, EntityCondition condition) {
UtilCache<EntityCondition, ConcurrentMap<K, V>> cache = getCache(entityName);
- if (cache == null) return null;
+ if (cache == null) {
+ return null;
+ }
return cache.get(getConditionKey(condition));
}
@@ -156,7 +156,9 @@ public abstract class AbstractEntityCond
}
protected List<? extends Map<String, Object>> convert(String targetEntityName, GenericEntity entity) {
- if (isNull(entity)) return null;
+ if (isNull(entity)) {
+ return null;
+ }
return entity.getModelEntity().convertToViewValues(targetEntityName, entity);
}
@@ -179,7 +181,6 @@ public abstract class AbstractEntityCond
return;
}
for (EntityCondition condition: entityCache.getCacheLineKeys()) {
- //Debug.logInfo("In storeHook entityName [" + entityName + "] checking against condition: " + condition, module);
boolean shouldRemove = false;
if (condition == null) {
shouldRemove = true;
@@ -196,13 +197,11 @@ public abstract class AbstractEntityCond
T1 oldValue = oldValueIter.next();
if (condition.mapMatches(getDelegator(), oldValue)) {
oldMatched = true;
- //Debug.logInfo("In storeHook, oldMatched for entityName [" + entityName + "]; shouldRemove is false", module);
if (newValues != null) {
Iterator<T2> newValueIter = newValues.iterator();
while (newValueIter.hasNext() && !shouldRemove) {
T2 newValue = newValueIter.next();
shouldRemove |= isNull(newValue) || condition.mapMatches(getDelegator(), newValue);
- //Debug.logInfo("In storeHook, for entityName [" + entityName + "] shouldRemove is now " + shouldRemove, module);
}
} else {
shouldRemove = true;
@@ -211,12 +210,13 @@ public abstract class AbstractEntityCond
}
// QUESTION: what is this? why would we do this?
if (!oldMatched && isPK) {
- //Debug.logInfo("In storeHook, for entityName [" + entityName + "] oldMatched is false and isPK is true, so setting shouldRemove to true (will remove from cache)", module);
shouldRemove = true;
}
}
if (shouldRemove) {
- if (Debug.verboseOn()) Debug.logVerbose("In storeHook, matched condition, removing from cache for entityName [" + entityName + "] in cache with name [" + entityCache.getName() + "] entry with condition: " + condition, module);
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("In storeHook, matched condition, removing from cache for entityName [" + entityName + "] in cache with name [" + entityCache.getName() + "] entry with condition: " + condition, module);
+ }
// doesn't work anymore since this is a copy of the cache keySet, can call remove directly though with a concurrent mod exception: cacheKeyIter.remove();
entityCache.remove(condition);
}
Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/Cache.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/Cache.java?rev=1818478&r1=1818477&r2=1818478&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/Cache.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/Cache.java Sun Dec 17 11:34:39 2017
@@ -110,18 +110,20 @@ public class Cache {
}
public GenericValue remove(GenericEntity entity) {
- if (Debug.verboseOn()) Debug.logVerbose("Cache remove GenericEntity: " + entity, module);
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Cache remove GenericEntity: " + entity, module);
+ }
GenericValue oldEntity = entityCache.remove(entity.getPrimaryKey());
// Workaround because AbstractEntityConditionCache.storeHook doesn't work.
entityListCache.remove(entity);
entityObjectCache.remove(entity);
- // entityListCache.storeHook(entity, null);
- // entityObjectCache.storeHook(entity, null);
return oldEntity;
}
public GenericValue remove(GenericPK pk) {
- if (Debug.verboseOn()) Debug.logVerbose("Cache remove GenericPK: " + pk, module);
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Cache remove GenericPK: " + pk, module);
+ }
GenericValue oldEntity = entityCache.remove(pk);
// Workaround because AbstractEntityConditionCache.storeHook doesn't work.
entityListCache.remove(pk);
Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityCache.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityCache.java?rev=1818478&r1=1818477&r2=1818478&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityCache.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityCache.java Sun Dec 17 11:34:39 2017
@@ -36,12 +36,16 @@ public class EntityCache extends Abstrac
public GenericValue get(GenericPK pk) {
UtilCache<GenericPK, GenericValue> entityCache = getCache(pk.getEntityName());
- if (entityCache == null) return null;
+ if (entityCache == null) {
+ return null;
+ }
return entityCache.get(pk);
}
public GenericValue put(GenericValue entity) {
- if (entity == null) return null;
+ if (entity == null) {
+ return null;
+ }
return put(entity.getPrimaryKey(), entity);
}
@@ -63,11 +67,17 @@ public class EntityCache extends Abstrac
public void remove(String entityName, EntityCondition condition) {
UtilCache<GenericPK, GenericValue> entityCache = getCache(entityName);
- if (entityCache == null) return;
+ if (entityCache == null) {
+ return;
+ }
for (GenericPK pk: entityCache.getCacheLineKeys()) {
GenericValue entity = entityCache.get(pk);
- if (entity == null) continue;
- if (condition.entityMatches(entity)) entityCache.remove(pk);
+ if (entity == null) {
+ continue;
+ }
+ if (condition.entityMatches(entity)) {
+ entityCache.remove(pk);
+ }
}
}
@@ -77,8 +87,12 @@ public class EntityCache extends Abstrac
public GenericValue remove(GenericPK pk) {
UtilCache<GenericPK, GenericValue> entityCache = getCache(pk.getEntityName());
- if (Debug.verboseOn()) Debug.logVerbose("Removing from EntityCache with PK [" + pk + "], will remove from this cache: " + (entityCache == null ? "[No cache found to remove from]" : entityCache.getName()), module);
- if (entityCache == null) return null;
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Removing from EntityCache with PK [" + pk + "], will remove from this cache: " + (entityCache == null ? "[No cache found to remove from]" : entityCache.getName()), module);
+ }
+ if (entityCache == null) {
+ return null;
+ }
GenericValue retVal = entityCache.remove(pk);
ModelEntity model = pk.getModelEntity();
if (model != null) {
@@ -88,7 +102,9 @@ public class EntityCache extends Abstrac
UtilCache.clearCache(getCacheName(targetEntityName));
}
}
- if (Debug.verboseOn()) Debug.logVerbose("Removing from EntityCache with PK [" + pk + "], found this in the cache: " + retVal, module);
+ if (Debug.verboseOn()) {
+ Debug.logVerbose("Removing from EntityCache with PK [" + pk + "], found this in the cache: " + retVal, module);
+ }
return retVal;
}
}
Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityListCache.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityListCache.java?rev=1818478&r1=1818477&r2=1818478&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityListCache.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/cache/EntityListCache.java Sun Dec 17 11:34:39 2017
@@ -44,13 +44,17 @@ public class EntityListCache extends Abs
public List<GenericValue> get(String entityName, EntityCondition condition, List<String> orderBy) {
ConcurrentMap<Object, List<GenericValue>> conditionCache = getConditionCache(entityName, condition);
- if (conditionCache == null) return null;
+ if (conditionCache == null) {
+ return null;
+ }
Object orderByKey = getOrderByKey(orderBy);
List<GenericValue> valueList = conditionCache.get(orderByKey);
if (valueList == null) {
// the valueList was not found for the given ordering, so grab the first one and order it in memory
Iterator<List<GenericValue>> it = conditionCache.values().iterator();
- if (it.hasNext()) valueList = it.next();
+ if (it.hasNext()) {
+ valueList = it.next();
+ }
if (valueList != null) {
// Does not need to be synchronized; if 2 threads do the same ordering,