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 09:56:54 UTC

svn commit: r1818468 - in /ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity: Delegator.java DelegatorContainer.java DelegatorFactory.java DelegatorFactoryImpl.java GenericDelegator.java GenericEntity.java

Author: mbrohl
Date: Sun Dec 17 09:56:54 2017
New Revision: 1818468

URL: http://svn.apache.org/viewvc?rev=1818468&view=rev
Log:
Improved: General refactoring and code improvements, package 
org.apache.ofbiz.entity.
(OFBIZ-9957)

Thanks Dennis Balkir for reporting and providing the patches.

Modified:
    ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/Delegator.java
    ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorContainer.java
    ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactory.java
    ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactoryImpl.java
    ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericDelegator.java
    ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericEntity.java

Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/Delegator.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/Delegator.java?rev=1818468&r1=1818467&r2=1818468&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/Delegator.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/Delegator.java Sun Dec 17 09:56:54 2017
@@ -246,7 +246,7 @@ public interface Delegator {
     EntityListIterator find(String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, Set<String> fieldsToSelect, List<String> orderBy, EntityFindOptions findOptions) throws GenericEntityException;
 
     /**
-     * Finds all Generic entities 
+     * Finds all Generic entities
      *
      * @param entityName
      *            The Name of the Entity as defined in the entity XML file
@@ -291,7 +291,7 @@ public interface Delegator {
 
     /**
      * Gets the hit count of GenericValues for the given EntityCondition objects.
-     * 
+     *
      * @param entityName
      * @param whereEntityCondition
      * @param havingEntityCondition
@@ -738,10 +738,10 @@ public interface Delegator {
      * <p>Remove the Entities from the List from the persistent store.</p>
      * <p>The List contains GenericEntity objects, can be either GenericPK or
      * GenericValue. </p>
-     * <p>If a certain entity contains a complete primary key, the entity in 
-     * the datasource corresponding to that primary key will be removed, this 
+     * <p>If a certain entity contains a complete primary key, the entity in
+     * the datasource corresponding to that primary key will be removed, this
      * is like a removeByPrimary Key.</p>
-     * <p>On the other hand, if a certain entity is an incomplete or non 
+     * <p>On the other hand, if a certain entity is an incomplete or non
      * primary key, if will behave like the removeByAnd method. </p>
      * <p>These updates all happen in one transaction, so they will either
      * all succeed or all fail, if the data source supports transactions.</p>
@@ -875,7 +875,7 @@ public interface Delegator {
 
     /**
      * <p>Store the Entities from the List GenericValue instances to the persistent
-     * store.</p> 
+     * store.</p>
      * <p>This is different than the normal store method in that the
      * store method only does an update, while the storeAll method checks to see
      * if each entity exists, then either does an insert or an update as
@@ -912,7 +912,7 @@ public interface Delegator {
 
     /**
      * Get use of Distributed Cache Clear mechanism status
-     * @return boolean true if this delegator uses a Distributed Cache Clear mechanism 
+     * @return boolean true if this delegator uses a Distributed Cache Clear mechanism
      */
     boolean useDistributedCacheClear();
 }

Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorContainer.java?rev=1818468&r1=1818467&r2=1818468&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorContainer.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorContainer.java Sun Dec 17 09:56:54 2017
@@ -49,7 +49,7 @@ public class DelegatorContainer implemen
         if (UtilValidate.isEmpty(preloadedDelegatorNames)) {
             return true;
         }
-        List<Future<Delegator>> futures = new ArrayList<Future<Delegator>>();
+        List<Future<Delegator>> futures = new ArrayList<>();
         for (String preloadedDelegatorName: preloadedDelegatorNames) {
             futures.add(DelegatorFactory.getDelegatorFuture(preloadedDelegatorName));
         }

Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactory.java?rev=1818468&r1=1818467&r2=1818468&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactory.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactory.java Sun Dec 17 09:56:54 2017
@@ -33,7 +33,7 @@ import org.apache.ofbiz.base.util.UtilOb
 /** <code>Delegator</code> factory abstract class. */
 public abstract class DelegatorFactory implements Factory<Delegator, String> {
     public static final String module = DelegatorFactory.class.getName();
-    private static final ConcurrentHashMap<String, Future<Delegator>> delegators = new ConcurrentHashMap<String, Future<Delegator>>();
+    private static final ConcurrentHashMap<String, Future<Delegator>> delegators = new ConcurrentHashMap<>();
     private static final ThreadGroup DELEGATOR_THREAD_GROUP = new ThreadGroup("DelegatorFactory");
     private static final ScheduledExecutorService executor = ExecutionPool.getScheduledExecutor(DELEGATOR_THREAD_GROUP, "delegator-startup", Runtime.getRuntime().availableProcessors(), 10, true);
 
@@ -41,10 +41,7 @@ public abstract class DelegatorFactory i
         Future<Delegator> future = getDelegatorFuture(delegatorName);
         try {
             return future.get();
-        } catch (ExecutionException e) {
-            Debug.logError(e, module);
-            return null;
-        } catch (InterruptedException e) {
+        } catch (ExecutionException | InterruptedException e) {
             Debug.logError(e, module);
             return null;
         }
@@ -53,16 +50,13 @@ public abstract class DelegatorFactory i
     public static Future<Delegator> getDelegatorFuture(String delegatorName) {
         if (delegatorName == null) {
             delegatorName = "default";
-            //Debug.logWarning(new Exception("Location where getting delegator with null name"), "Got a getGenericDelegator call with a null delegatorName, assuming default for the name.", module);
         }
         do {
             Future<Delegator> future = delegators.get(delegatorName);
             if (future != null) {
-                //Debug.logInfo("got delegator(future(" + delegatorName + ")) from cache", module);
                 return future;
             }
-            FutureTask<Delegator> futureTask = new FutureTask<Delegator>(new DelegatorConfigurable(delegatorName));
-            //Debug.logInfo("putting delegator(future(" + delegatorName + ")) into cache", module);
+            FutureTask<Delegator> futureTask = new FutureTask<>(new DelegatorConfigurable(delegatorName));
             if (delegators.putIfAbsent(delegatorName, futureTask) != null) {
                 continue;
             }

Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactoryImpl.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactoryImpl.java?rev=1818468&r1=1818467&r2=1818468&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactoryImpl.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/DelegatorFactoryImpl.java Sun Dec 17 09:56:54 2017
@@ -28,8 +28,9 @@ public class DelegatorFactoryImpl extend
 
     // TODO: this method should propagate the GenericEntityException
     public Delegator getInstance(String delegatorName) {
-        if (Debug.infoOn()) Debug.logInfo("Creating new delegator [" + delegatorName + "] (" + Thread.currentThread().getName() + ")", module);
-        //Debug.logInfo(new Exception(), "Showing stack where new delegator is being created...", module);
+        if (Debug.infoOn()) {
+            Debug.logInfo("Creating new delegator [" + delegatorName + "] (" + Thread.currentThread().getName() + ")", module);
+        }
         try {
             return new GenericDelegator(delegatorName);
         } catch (GenericEntityException e) {

Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericDelegator.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericDelegator.java?rev=1818468&r1=1818467&r2=1818468&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericDelegator.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericDelegator.java Sun Dec 17 09:56:54 2017
@@ -18,7 +18,6 @@
  */
 package org.apache.ofbiz.entity;
 
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.URL;
 import java.sql.Timestamp;
@@ -107,16 +106,16 @@ public class GenericDelegator implements
 
     protected Cache cache = null;
 
-    protected final AtomicReference<Future<DistributedCacheClear>> distributedCacheClear = new AtomicReference<Future<DistributedCacheClear>>();
+    protected final AtomicReference<Future<DistributedCacheClear>> distributedCacheClear = new AtomicReference<>();
     protected boolean warnNoEcaHandler = false;
-    protected final AtomicReference<Future<EntityEcaHandler<?>>> entityEcaHandler = new AtomicReference<Future<EntityEcaHandler<?>>>();
-    protected final AtomicReference<SequenceUtil> AtomicRefSequencer = new AtomicReference<SequenceUtil>(null);
+    protected final AtomicReference<Future<EntityEcaHandler<?>>> entityEcaHandler = new AtomicReference<>();
+    protected final AtomicReference<SequenceUtil> AtomicRefSequencer = new AtomicReference<>(null);
     protected EntityCrypto crypto = null;
 
     /** A ThreadLocal variable to allow other methods to specify a user identifier (usually the userLoginId, though technically the Entity Engine doesn't know anything about the UserLogin entity) */
-    private static final ThreadLocal<List<String>> userIdentifierStack = new ThreadLocal<List<String>>();
+    private static final ThreadLocal<List<String>> userIdentifierStack = new ThreadLocal<>();
     /** A ThreadLocal variable to allow other methods to specify a session identifier (usually the visitId, though technically the Entity Engine doesn't know anything about the Visit entity) */
-    private static final ThreadLocal<List<String>> sessionIdentifierStack = new ThreadLocal<List<String>>();
+    private static final ThreadLocal<List<String>> sessionIdentifierStack = new ThreadLocal<>();
 
     private boolean testMode = false;
     private boolean testRollbackInProgress = false;
@@ -126,7 +125,7 @@ public class GenericDelegator implements
     protected static List<String> getUserIdentifierStack() {
         List<String> curValList = userIdentifierStack.get();
         if (curValList == null) {
-            curValList = new LinkedList<String>();
+            curValList = new LinkedList<>();
             userIdentifierStack.set(curValList);
         }
         return curValList;
@@ -144,9 +143,8 @@ public class GenericDelegator implements
         List<String> curValList = getUserIdentifierStack();
         if (curValList.size() == 0) {
             return null;
-        } else {
-            return curValList.remove(0);
         }
+        return curValList.remove(0);
     }
 
     public static void clearUserIdentifierStack() {
@@ -157,7 +155,7 @@ public class GenericDelegator implements
     protected static List<String> getSessionIdentifierStack() {
         List<String> curValList = sessionIdentifierStack.get();
         if (curValList == null) {
-            curValList = new LinkedList<String>();
+            curValList = new LinkedList<>();
             sessionIdentifierStack.set(curValList);
         }
         return curValList;
@@ -175,9 +173,8 @@ public class GenericDelegator implements
         List<String> curValList = getSessionIdentifierStack();
         if (curValList.size() == 0) {
             return null;
-        } else {
-            return curValList.remove(0);
         }
+        return curValList.remove(0);
     }
 
     public static void clearSessionIdentifierStack() {
@@ -190,7 +187,6 @@ public class GenericDelegator implements
 
     /** Only allow creation through the factory method */
     protected GenericDelegator(String delegatorFullName) throws GenericEntityException {
-        //if (Debug.infoOn()) Debug.logInfo("Creating new Delegator with name \"" + delegatorFullName + "\".", module);
         this.setDelegatorNames(delegatorFullName);
         this.delegatorInfo = EntityConfig.getInstance().getDelegator(delegatorBaseName);
 
@@ -224,7 +220,7 @@ public class GenericDelegator implements
         cache = new Cache(delegatorFullName);
 
         // do the entity model check
-        List<String> warningList = new LinkedList<String>();
+        List<String> warningList = new LinkedList<>();
         Debug.logInfo("Doing entity definition check...", module);
         ModelEntityChecker.checkEntities(this, warningList);
         if (warningList.size() > 0) {
@@ -236,7 +232,7 @@ public class GenericDelegator implements
 
         // initialize helpers by group
         Set<String> groupNames = getModelGroupReader().getGroupNames(delegatorBaseName);
-        List<Future<Void>> futures = new LinkedList<Future<Void>>();
+        List<Future<Void>> futures = new LinkedList<>();
         for (String groupName: groupNames) {
             futures.add(ExecutionPool.GLOBAL_BATCH.submit(createHelperCallable(groupName)));
         }
@@ -318,7 +314,7 @@ public class GenericDelegator implements
                 return createEntityEcaHandler();
             }
         };
-        FutureTask<EntityEcaHandler<?>> futureTask = new FutureTask<EntityEcaHandler<?>>(creator);
+        FutureTask<EntityEcaHandler<?>> futureTask = new FutureTask<>(creator);
         if (this.entityEcaHandler.compareAndSet(null, futureTask)) {
             // This needs to use BATCH, as the service engine might add it's own items into a thread pool.
             ExecutionPool.GLOBAL_BATCH.submit(futureTask);
@@ -440,7 +436,7 @@ public class GenericDelegator implements
             }
         }
 
-        Map<String, ModelEntity> entities = new HashMap<String, ModelEntity>();
+        Map<String, ModelEntity> entities = new HashMap<>();
         if (UtilValidate.isEmpty(entityNameSet)) {
             return entities;
         }
@@ -545,9 +541,8 @@ public class GenericDelegator implements
 
         if (helperInfo != null) {
             return GenericHelperFactory.getHelper(helperInfo);
-        } else {
-            throw new GenericEntityException("There is no datasource (Helper) configured for the entity-group [" + this.getEntityGroupName(entityName) + "]; was trying to find datasource (helper) for entity [" + entityName + "]");
         }
+        throw new GenericEntityException("There is no datasource (Helper) configured for the entity-group [" + this.getEntityGroupName(entityName) + "]; was trying to find datasource (helper) for entity [" + entityName + "]");
     }
 
     /* (non-Javadoc)
@@ -809,23 +804,22 @@ public class GenericDelegator implements
                 }
                 if (existingValue == null) {
                     throw e;
-                } else {
-                    if (Debug.infoOn()) {
-                        Debug.logInfo("Error creating entity record with a sequenced value [" + value.getPrimaryKey() + "], trying again about to refresh bank for entity [" + value.getEntityName() + "]", module);
-                    }
+                }
+                if (Debug.infoOn()) {
+                    Debug.logInfo("Error creating entity record with a sequenced value [" + value.getPrimaryKey() + "], trying again about to refresh bank for entity [" + value.getEntityName() + "]", module);
+                }
 
-                    // found an existing value... was probably a duplicate key, so clean things up and try again
-                    this.AtomicRefSequencer.get().forceBankRefresh(value.getEntityName(), 1);
+                // found an existing value... was probably a duplicate key, so clean things up and try again
+                this.AtomicRefSequencer.get().forceBankRefresh(value.getEntityName(), 1);
 
-                    value.setNextSeqId();
-                    value = helper.create(value);
-                    if (Debug.infoOn()) {
-                        Debug.logInfo("Successfully created new entity record on retry with a sequenced value [" + value.getPrimaryKey() + "], after getting refreshed bank for entity [" + value.getEntityName() + "]", module);
-                    }
+                value.setNextSeqId();
+                value = helper.create(value);
+                if (Debug.infoOn()) {
+                    Debug.logInfo("Successfully created new entity record on retry with a sequenced value [" + value.getPrimaryKey() + "], after getting refreshed bank for entity [" + value.getEntityName() + "]", module);
+                }
 
-                    if (testMode) {
-                        storeForTestRollback(new TestOperation(OperationType.INSERT, value));
-                    }
+                if (testMode) {
+                    storeForTestRollback(new TestOperation(OperationType.INSERT, value));
                 }
             }
 
@@ -952,11 +946,7 @@ public class GenericDelegator implements
         String serializedPK = null;
         try {
             serializedPK = XmlSerializer.serialize(dummyPK);
-        } catch (SerializeException e) {
-            Debug.logError(e, "Could not serialize primary key to save EntitySyncRemove", module);
-        } catch (FileNotFoundException e) {
-            Debug.logError(e, "Could not serialize primary key to save EntitySyncRemove", module);
-        } catch (IOException e) {
+        } catch (SerializeException | IOException e) {
             Debug.logError(e, "Could not serialize primary key to save EntitySyncRemove", module);
         }
 
@@ -1144,7 +1134,7 @@ public class GenericDelegator implements
             throw new GenericModelException("Could not find relation for relationName: " + relationName + " for value " + value);
         }
 
-        Map<String, Object> fields = new HashMap<String, Object>();
+        Map<String, Object> fields = new HashMap<>();
         for (ModelKeyMap keyMap : relation.getKeyMaps()) {
             fields.put(keyMap.getRelFieldName(), value.get(keyMap.getFieldName()));
         }
@@ -1285,7 +1275,9 @@ public class GenericDelegator implements
         }
 
         // if no store options passed, use default
-        if (storeOptions == null) storeOptions = new EntityStoreOptions();
+        if (storeOptions == null) {
+            storeOptions = new EntityStoreOptions();
+        }
 
         int numberChanged = 0;
 
@@ -1490,7 +1482,9 @@ public class GenericDelegator implements
                 value = helper.findByPrimaryKeyPartial(primaryKey, keys);
             } catch (GenericEntityNotFoundException e) {
             }
-            if (value != null) value.setDelegator(this);
+            if (value != null) {
+                value.setDelegator(this);
+            }
 
             ecaRunner.evalRules(EntityEcaHandler.EV_RETURN, EntityEcaHandler.OP_FIND, primaryKey, false);
             TransactionUtil.commit(beganTransaction);
@@ -1617,8 +1611,12 @@ public class GenericDelegator implements
         }
 
         ModelViewEntity modelViewEntity = dynamicViewEntity.makeModelViewEntity(this);
-        if (whereEntityCondition != null) whereEntityCondition.checkCondition(modelViewEntity);
-        if (havingEntityCondition != null) havingEntityCondition.checkCondition(modelViewEntity);
+        if (whereEntityCondition != null) {
+            whereEntityCondition.checkCondition(modelViewEntity);
+        }
+        if (havingEntityCondition != null) {
+            havingEntityCondition.checkCondition(modelViewEntity);
+        }
 
         GenericHelper helper = getEntityHelper(dynamicViewEntity.getOneRealEntityName());
         EntityListIterator eli = helper.findListIteratorByCondition(this, modelViewEntity, whereEntityCondition,
@@ -1713,7 +1711,7 @@ public class GenericDelegator implements
 
         // put the byAndFields (if not null) into the hash map first,
         // they will be overridden by value's fields if over-specified this is important for security and cleanliness
-        Map<String, Object> fields = new HashMap<String, Object>();
+        Map<String, Object> fields = new HashMap<>();
         if (byAndFields != null) {
             fields.putAll(byAndFields);
         }
@@ -1739,7 +1737,7 @@ public class GenericDelegator implements
 
         // put the byAndFields (if not null) into the hash map first,
         // they will be overridden by value's fields if over-specified this is important for security and cleanliness
-        Map<String, Object> fields = new HashMap<String, Object>();
+        Map<String, Object> fields = new HashMap<>();
         if (byAndFields != null) {
             fields.putAll(byAndFields);
         }
@@ -1764,7 +1762,7 @@ public class GenericDelegator implements
             throw new GenericModelException("Relation is not a 'one' or a 'one-nofk' relation: " + relationName + " of entity " + value.getEntityName());
         }
 
-        Map<String, Object> fields = new HashMap<String, Object>();
+        Map<String, Object> fields = new HashMap<>();
         for (ModelKeyMap keyMap : relation.getKeyMaps()) {
             fields.put(keyMap.getRelFieldName(), value.get(keyMap.getFieldName()));
         }
@@ -1859,7 +1857,9 @@ public class GenericDelegator implements
     public void clearCacheLineFlexible(GenericEntity dummyPK, boolean distribute) {
         if (dummyPK != null) {
             //if never cached, then don't bother clearing
-            if (dummyPK.getModelEntity().getNeverCache()) return;
+            if (dummyPK.getModelEntity().getNeverCache()) {
+                return;
+            }
 
             cache.remove(dummyPK);
 
@@ -1953,7 +1953,6 @@ public class GenericDelegator implements
      */
     @Override
     public void clearCacheLine(GenericValue value, boolean distribute) {
-        // Debug.logInfo("running clearCacheLine for value: " + value + ", distribute: " + distribute, module);
         if (value == null) {
             return;
         }
@@ -2055,7 +2054,7 @@ public class GenericDelegator implements
      */
     @Override
     public void setDistributedCacheClear(DistributedCacheClear distributedCacheClear) {
-        this.distributedCacheClear.set(new ConstantFuture<DistributedCacheClear>(distributedCacheClear));
+        this.distributedCacheClear.set(new ConstantFuture<>(distributedCacheClear));
     }
 
     // ======= XML Related Methods ========
@@ -2078,7 +2077,7 @@ public class GenericDelegator implements
         if (document == null) {
             return null;
         }
-        List<GenericValue> values = new LinkedList<GenericValue>();
+        List<GenericValue> values = new LinkedList<>();
 
         Element docElement = document.getDocumentElement();
 
@@ -2184,9 +2183,6 @@ public class GenericDelegator implements
             if (entityEcaHandler == null) {
                 return;
             }
-            //if (!"find".equals(currentOperation)) {
-            //    Debug.logWarning("evalRules for entity " + value.getEntityName() + ", currentOperation " + currentOperation + ", event " + event, module);
-            //}
             entityEcaHandler.evalRules(currentOperation, eventMap, event, value, isError);
         }
     }
@@ -2199,7 +2195,7 @@ public class GenericDelegator implements
     }
 
     protected static <T> EntityEcaRuleRunner<T> createEntityEcaRuleRunner(EntityEcaHandler<T> entityEcaHandler, String entityName) {
-        return new EntityEcaRuleRunner<T>(entityEcaHandler, entityEcaHandler != null ? entityEcaHandler.getEntityEventMap(entityName) : null);
+        return new EntityEcaRuleRunner<>(entityEcaHandler, entityEcaHandler != null ? entityEcaHandler.getEntityEventMap(entityName) : null);
     }
 
     /* (non-Javadoc)
@@ -2219,9 +2215,7 @@ public class GenericDelegator implements
         Future<EntityEcaHandler<?>> future = this.entityEcaHandler.get();
         try {
             return UtilGenerics.cast(future != null ? future.get() : null);
-        } catch (ExecutionException e) {
-            Debug.logError(e, "Could not fetch EntityEcaHandler from the asynchronous instantiation", module);
-        } catch (InterruptedException e) {
+        } catch (ExecutionException | InterruptedException e) {
             Debug.logError(e, "Could not fetch EntityEcaHandler from the asynchronous instantiation", module);
         }
         return null;
@@ -2249,9 +2243,8 @@ public class GenericDelegator implements
 
         if (UtilValidate.isNotEmpty(this.delegatorInfo.getSequencedIdPrefix())) {
             return this.delegatorInfo.getSequencedIdPrefix() + nextSeqLong.toString();
-        } else {
-            return nextSeqLong.toString();
         }
+        return nextSeqLong.toString();
     }
 
     /* (non-Javadoc)
@@ -2327,7 +2320,6 @@ public class GenericDelegator implements
 
                 // get values in whatever order, we will go through all of them to find the highest value
                 List<GenericValue> allValues = this.findByAnd(value.getEntityName(), lookupValue, null, false);
-                //Debug.logInfo("Get existing values from entity " + value.getEntityName() + " with lookupValue: " + lookupValue + ", and the seqFieldName: " + seqFieldName + ", and the results are: " + allValues, module);
                 Integer highestSeqVal = null;
                 for (GenericValue curValue: allValues) {
                     String currentSeqId = curValue.getString(seqFieldName);
@@ -2625,7 +2617,7 @@ public class GenericDelegator implements
                 return createDistributedCacheClear();
             }
         };
-        FutureTask<DistributedCacheClear> futureTask = new FutureTask<DistributedCacheClear>(creator);
+        FutureTask<DistributedCacheClear> futureTask = new FutureTask<>(creator);
         if (distributedCacheClear.compareAndSet(null, futureTask)) {
             ExecutionPool.GLOBAL_BATCH.submit(futureTask);
         }
@@ -2663,9 +2655,7 @@ public class GenericDelegator implements
         Future<DistributedCacheClear> future = this.distributedCacheClear.get();
         try {
             return future != null ? future.get() : null;
-        } catch (ExecutionException e) {
-            Debug.logError(e, "Could not fetch DistributedCacheClear from the asynchronous instantiation", module);
-        } catch (InterruptedException e) {
+        } catch (ExecutionException | InterruptedException e) {
             Debug.logError(e, "Could not fetch DistributedCacheClear from the asynchronous instantiation", module);
         }
         return null;

Modified: ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericEntity.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericEntity.java?rev=1818468&r1=1818467&r2=1818468&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericEntity.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/GenericEntity.java Sun Dec 17 09:56:54 2017
@@ -100,7 +100,7 @@ public class GenericEntity implements Ma
      *  between desiring to set a value to null and desiring to not modify the
      *  current value on an update.
      */
-    private Map<String, Object> fields = new HashMap<String, Object>();
+    private Map<String, Object> fields = new HashMap<>();
 
     /** Contains the entityName of this entity, necessary for efficiency when creating EJBs */
     private String entityName = null;
@@ -236,7 +236,9 @@ public class GenericEntity implements Ma
         this.entityName = value.getEntityName();
         // NOTE: could call getModelEntity to insure we have a value, just in case the value passed in has been serialized, but might as well leave it null to keep the object light if it isn't there
         this.modelEntity = value.modelEntity;
-        if (value.fields != null) this.fields.putAll(value.fields);
+        if (value.fields != null) {
+            this.fields.putAll(value.fields);
+        }
         this.delegatorName = value.delegatorName;
         this.internalDelegator = value.internalDelegator;
         this.observable = new Observable(value.observable);
@@ -248,7 +250,7 @@ public class GenericEntity implements Ma
         this.delegatorName = null;
         this.internalDelegator = null;
         this.originalDbValues = null;
-        this.fields = new HashMap<String, Object>();
+        this.fields = new HashMap<>();
         this.entityName = null;
         this.modelEntity = null;
         this.generateHashCode = true;
@@ -268,7 +270,7 @@ public class GenericEntity implements Ma
         if (!thisPK.equals(newPK)) {
             throw new GenericEntityException("Could not refresh value, new value did not have the same primary key; this PK=" + thisPK + ", new value PK=" + newPK);
         }
-        this.fields = new HashMap<String, Object>(newValue.fields);
+        this.fields = new HashMap<>(newValue.fields);
         this.setDelegator(newValue.getDelegator());
         this.generateHashCode = newValue.generateHashCode;
         this.cachedHashCode = newValue.cachedHashCode;
@@ -276,7 +278,7 @@ public class GenericEntity implements Ma
     }
 
     /**
-     * 
+     *
      * @deprecated Use hasChanged()
      */
     public boolean isModified() {
@@ -338,7 +340,9 @@ public class GenericEntity implements Ma
 
     public ModelEntity getModelEntity() {
         if (modelEntity == null) {
-            if (entityName != null) modelEntity = this.getDelegator().getModelEntity(entityName);
+            if (entityName != null) {
+                modelEntity = this.getDelegator().getModelEntity(entityName);
+            }
             if (modelEntity == null) {
                 throw new IllegalStateException("[GenericEntity.getModelEntity] could not find modelEntity for entityName " + entityName);
             }
@@ -351,7 +355,9 @@ public class GenericEntity implements Ma
      */
     public Delegator getDelegator() {
         if (internalDelegator == null) {
-            if (delegatorName == null) delegatorName = "default";
+            if (delegatorName == null) {
+                delegatorName = "default";
+            }
             internalDelegator = DelegatorFactory.getDelegator(delegatorName);
             if (internalDelegator == null) {
                 throw new IllegalStateException("[GenericEntity.getDelegator] could not find delegator with name " + delegatorName);
@@ -363,7 +369,9 @@ public class GenericEntity implements Ma
     /** Set the GenericDelegator instance that created this value object and that is responsible for it. */
     public void setDelegator(Delegator internalDelegator) {
         assertIsMutable();
-        if (internalDelegator == null) return;
+        if (internalDelegator == null) {
+            return;
+        }
         this.delegatorName = internalDelegator.getDelegatorName();
         this.internalDelegator = internalDelegator;
     }
@@ -380,17 +388,23 @@ public class GenericEntity implements Ma
         return isPrimaryKey(false);
     }
     public boolean isPrimaryKey(boolean requireValue) {
-        TreeSet<String> fieldKeys = new TreeSet<String>(this.fields.keySet());
+        TreeSet<String> fieldKeys = new TreeSet<>(this.fields.keySet());
         for (ModelField curPk: this.getModelEntity().getPkFieldsUnmodifiable()) {
             String fieldName = curPk.getName();
             if (requireValue) {
-                if (this.fields.get(fieldName) == null) return false;
+                if (this.fields.get(fieldName) == null) {
+                    return false;
+                }
             } else {
-                if (!this.fields.containsKey(fieldName)) return false;
+                if (!this.fields.containsKey(fieldName)) {
+                    return false;
+                }
             }
             fieldKeys.remove(fieldName);
         }
-        if (!fieldKeys.isEmpty()) return false;
+        if (!fieldKeys.isEmpty()) {
+            return false;
+        }
         return true;
     }
 
@@ -399,13 +413,16 @@ public class GenericEntity implements Ma
         return containsPrimaryKey(false);
     }
     public boolean containsPrimaryKey(boolean requireValue) {
-        //TreeSet fieldKeys = new TreeSet(fields.keySet());
         for (ModelField curPk: this.getModelEntity().getPkFieldsUnmodifiable()) {
             String fieldName = curPk.getName();
             if (requireValue) {
-                if (this.fields.get(fieldName) == null) return false;
+                if (this.fields.get(fieldName) == null) {
+                    return false;
+                }
             } else {
-                if (!this.fields.containsKey(fieldName)) return false;
+                if (!this.fields.containsKey(fieldName)) {
+                    return false;
+                }
             }
         }
         return true;
@@ -491,14 +508,15 @@ public class GenericEntity implements Ma
             this.setChanged();
             this.notifyObservers(name);
             return old;
-        } else {
-            return fields.get(name);
         }
+        return fields.get(name);
     }
 
     public void dangerousSetNoCheckButFast(ModelField modelField, Object value) {
         assertIsMutable();
-        if (modelField == null) throw new IllegalArgumentException("Cannot set field with a null modelField");
+        if (modelField == null) {
+            throw new IllegalArgumentException("Cannot set field with a null modelField");
+        }
         generateHashCode = true;
         this.fields.put(modelField.getName(), value);
         this.setChanged();
@@ -506,7 +524,9 @@ public class GenericEntity implements Ma
     }
 
     public Object dangerousGetNoCheckButFast(ModelField modelField) {
-        if (modelField == null) throw new IllegalArgumentException("Cannot get field with a null modelField");
+        if (modelField == null) {
+            throw new IllegalArgumentException("Cannot get field with a null modelField");
+        }
         return this.fields.get(modelField.getName());
     }
 
@@ -527,7 +547,10 @@ public class GenericEntity implements Ma
         }
 
         ModelField field = getModelEntity().getField(name);
-        if (field == null) set(name, value); // this will get an error in the set() method...
+        if (field == null)
+         {
+            set(name, value); // this will get an error in the set() method...
+        }
 
         ModelFieldType type = null;
         try {
@@ -537,7 +560,9 @@ public class GenericEntity implements Ma
         } catch (IllegalStateException | GenericEntityException e) {
             Debug.logWarning(e, module);
         }
-        if (type == null) throw new IllegalArgumentException("Type " + field.getType() + " not found");
+        if (type == null) {
+            throw new IllegalArgumentException("Type " + field.getType() + " not found");
+        }
         String fieldType = type.getJavaType();
 
         try {
@@ -809,15 +834,12 @@ public class GenericEntity implements Ma
               resourceValue = get(this.getModelEntity(), modelEntityToUse, name, resource, locale);
               if (resourceValue == null) {
                   return fieldValue;
-              } else {
-                  return resourceValue;
               }
-          } else {
-              return fieldValue;
-          }
-        } else {
             return resourceValue;
+          }
+        return fieldValue;
         }
+        return resourceValue;
     }
 
     /**
@@ -831,7 +853,6 @@ public class GenericEntity implements Ma
             resource = modelEntityToUse.getDefaultResourceName();
             // still empty? return null
             if (UtilValidate.isEmpty(resource)) {
-                //Debug.logWarning("Tried to getResource value for field named " + name + " but no resource name was passed to the method or specified in the default-resource-name attribute of the entity definition", module);
                 return null;
             }
         }
@@ -846,7 +867,6 @@ public class GenericEntity implements Ma
             bundle = null;
         }
         if (bundle == null) {
-            //Debug.logWarning("Tried to getResource value for field named " + name + " but no resource was found with the name " + resource + " in the locale " + locale, module);
             return null;
         }
 
@@ -860,7 +880,7 @@ public class GenericEntity implements Ma
         if (modelEntity instanceof ModelViewEntity){
             // retrieve pkNames of realEntity
             ModelViewEntity modelViewEntity = (ModelViewEntity) modelEntity;
-            List<String> pkNamesToUse = new LinkedList<String>();
+            List<String> pkNamesToUse = new LinkedList<>();
             // iterate on realEntity for pkField
             Iterator<ModelField> iter = modelEntityToUse.getPksIterator();
             while (iter != null && iter.hasNext()) {
@@ -878,7 +898,9 @@ public class GenericEntity implements Ma
                         }
                     }
                 }
-                if (pkName == null) pkName = curField.getName();
+                if (pkName == null) {
+                    pkName = curField.getName();
+                }
                 pkNamesToUse.add(pkName);
             }
             // read value with modelEntity name of pkNames
@@ -967,7 +989,6 @@ public class GenericEntity implements Ma
             if (fields.containsKey(sourceFieldName)) {
                 Object field = fields.get(sourceFieldName);
 
-                // if (Debug.verboseOn()) Debug.logVerbose("Setting field " + curField.getName() + ": " + field + ", setIfEmpty = " + setIfEmpty, module);
                 if (setIfEmpty) {
                     // if empty string, set to null
                     if (field != null && field instanceof String && ((String) field).length() == 0) {
@@ -1005,7 +1026,7 @@ public class GenericEntity implements Ma
      * @return java.util.Map
      */
     public Map<String, Object> getAllFields() {
-        return new HashMap<String, Object>(this.fields);
+        return new HashMap<>(this.fields);
     }
 
     /** Used by clients to specify exactly the fields they are interested in
@@ -1013,8 +1034,10 @@ public class GenericEntity implements Ma
      * @return java.util.Map
      */
     public Map<String, Object> getFields(Collection<String> keysofFields) {
-        if (keysofFields == null) return null;
-        Map<String, Object> aMap = new HashMap<String, Object>();
+        if (keysofFields == null) {
+            return null;
+        }
+        Map<String, Object> aMap = new HashMap<>();
 
         for (String aKey: keysofFields) {
             aMap.put(aKey, this.fields.get(aKey));
@@ -1026,7 +1049,9 @@ public class GenericEntity implements Ma
      * @param keyValuePairs java.util.Map
      */
     public void setFields(Map<? extends String, ? extends Object> keyValuePairs) {
-        if (keyValuePairs == null) return;
+        if (keyValuePairs == null) {
+            return;
+        }
         // this could be implement with Map.putAll, but we'll leave it like this for the extra features it has
         for (Map.Entry<? extends String, ? extends Object> anEntry: keyValuePairs.entrySet()) {
             this.set(anEntry.getKey(), anEntry.getValue(), true);
@@ -1034,8 +1059,12 @@ public class GenericEntity implements Ma
     }
 
     public boolean matchesFields(Map<String, ? extends Object> keyValuePairs) {
-        if (fields == null) return true;
-        if (UtilValidate.isEmpty(keyValuePairs)) return true;
+        if (fields == null) {
+            return true;
+        }
+        if (UtilValidate.isEmpty(keyValuePairs)) {
+            return true;
+        }
         for (Map.Entry<String, ? extends Object> anEntry: keyValuePairs.entrySet()) {
             if (!UtilValidate.areEqual(anEntry.getValue(), this.fields.get(anEntry.getKey()))) {
                 return false;
@@ -1055,7 +1084,9 @@ public class GenericEntity implements Ma
     public static Document makeXmlDocument(Collection<GenericValue> values) {
         Document document = UtilXml.makeEmptyXmlDocument("entity-engine-xml");
 
-        if (document == null) return null;
+        if (document == null) {
+            return null;
+        }
 
         addToXmlDocument(values, document);
         return document;
@@ -1066,8 +1097,12 @@ public class GenericEntity implements Ma
     }
 
     public static int addToXmlElement(Collection<GenericValue> values, Document document, Element element) {
-        if (values == null) return 0;
-        if (document == null) return 0;
+        if (values == null) {
+            return 0;
+        }
+        if (document == null) {
+            return 0;
+        }
 
         int numberAdded = 0;
 
@@ -1096,10 +1131,15 @@ public class GenericEntity implements Ma
     public Element makeXmlElement(Document document, String prefix) {
         Element element = null;
 
-        if (prefix == null) prefix = "";
-        if (document != null) element = document.createElement(prefix + this.getEntityName());
-        // else element = new ElementImpl(null, this.getEntityName());
-        if (element == null) return null;
+        if (prefix == null) {
+            prefix = "";
+        }
+        if (document != null) {
+            element = document.createElement(prefix + this.getEntityName());
+        }
+        if (element == null) {
+            return null;
+        }
 
         Iterator<ModelField> modelFields = this.getModelEntity().getFieldsIterator();
         while (modelFields.hasNext()) {
@@ -1113,8 +1153,6 @@ public class GenericEntity implements Ma
                 } else {
                     element.setAttribute(name, value);
                 }
-                // } else {
-                // element.setAttribute(name, GenericEntity.NULL_FIELD.toString());
             }
         }
 
@@ -1128,10 +1166,14 @@ public class GenericEntity implements Ma
     public void writeXmlText(PrintWriter writer, String prefix) {
         int indent = 4;
         StringBuilder indentStrBuf = new StringBuilder();
-        for (int i = 0; i < indent; i++) indentStrBuf.append(' ');
+        for (int i = 0; i < indent; i++) {
+            indentStrBuf.append(' ');
+        }
         String indentString = indentStrBuf.toString();
 
-        if (prefix == null) prefix = "";
+        if (prefix == null) {
+            prefix = "";
+        }
 
         writer.print(indentString);
         writer.print('<');
@@ -1139,7 +1181,7 @@ public class GenericEntity implements Ma
         writer.print(this.getEntityName());
 
         // write attributes immediately and if a CDATA element is needed, put those in a Map for now
-        Map<String, String> cdataMap = new HashMap<String, String>();
+        Map<String, String> cdataMap = new HashMap<>();
 
         Iterator<ModelField> modelFields = this.getModelEntity().getFieldsIterator();
         while (modelFields.hasNext()) {
@@ -1320,7 +1362,7 @@ public class GenericEntity implements Ma
         theString.append(getEntityName());
         theString.append(']');
 
-        for (String curKey: new TreeSet<String>(fields.keySet())) {
+        for (String curKey: new TreeSet<>(fields.keySet())) {
             Object curValue = fields.get(curKey);
             ModelField field = this.getModelEntity().getField(curKey);
             if (field.getEncryptMethod().isEncrypted() && curValue instanceof String) {
@@ -1355,7 +1397,7 @@ public class GenericEntity implements Ma
         theString.append(getEntityName());
         theString.append(']');
 
-        for (String curKey: new TreeSet<String>(fields.keySet())) {
+        for (String curKey: new TreeSet<>(fields.keySet())) {
             Object curValue = fields.get(curKey);
             theString.append('[');
             theString.append(curKey);
@@ -1374,18 +1416,17 @@ public class GenericEntity implements Ma
         Object thatVal = that.fields.get(name);
 
         if (thisVal == null) {
-            if (thatVal == null)
+            if (thatVal == null) {
                 return 0;
             // if thisVal is null, but thatVal is not, return 1 to put this earlier in the list
-            else
-                return 1;
-        } else {
-            // if thatVal is null, put the other earlier in the list
-            if (thatVal == null)
-                return  -1;
-            else
-                return thisVal.compareTo(thatVal);
+            }
+            return 1;
         }
+        // if thatVal is null, put the other earlier in the list
+        if (thatVal == null) {
+            return  -1;
+        }
+        return thisVal.compareTo(thatVal);
     }
 
     /** Compares this GenericEntity to the passed object
@@ -1394,19 +1435,25 @@ public class GenericEntity implements Ma
      */
     public int compareTo(GenericEntity that) {
         // if null, it will push to the beginning
-        if (that == null) return -1;
+        if (that == null) {
+            return -1;
+        }
 
         int tempResult = this.entityName.compareTo(that.entityName);
 
         // if they did not match, we know the order, otherwise compare the primary keys
-        if (tempResult != 0) return tempResult;
+        if (tempResult != 0) {
+            return tempResult;
+        }
 
         // both have same entityName, should be the same so let's compare PKs
         Iterator<ModelField> pkIter = getModelEntity().getPksIterator();
         while (pkIter.hasNext()) {
             ModelField curField = pkIter.next();
             tempResult = compareToFields(that, curField.getName());
-            if (tempResult != 0) return tempResult;
+            if (tempResult != 0) {
+                return tempResult;
+            }
         }
 
         // okay, if we got here it means the primaryKeys are exactly the SAME, so compare the rest of the fields
@@ -1415,7 +1462,9 @@ public class GenericEntity implements Ma
             ModelField curField = nopkIter.next();
             if (!curField.getIsAutoCreatedInternal()) {
                 tempResult = compareToFields(that, curField.getName());
-                if (tempResult != 0) return tempResult;
+                if (tempResult != 0) {
+                    return tempResult;
+                }
             }
         }
 
@@ -1529,7 +1578,9 @@ public class GenericEntity implements Ma
         if (getModelEntity().getField(name) == null) {
             throw new IllegalArgumentException("[GenericEntity.get] \"" + name + "\" is not a field of " + getEntityName());
         }
-        if (originalDbValues == null) return null;
+        if (originalDbValues == null) {
+            return null;
+        }
         return originalDbValues.get(name);
     }
 
@@ -1548,7 +1599,7 @@ public class GenericEntity implements Ma
             ModelRelation relation = relItr.next();
             if ("one".equalsIgnoreCase(relation.getType())) {
                 // see if the related value exists
-                Map<String, Object> fields = new HashMap<String, Object>();
+                Map<String, Object> fields = new HashMap<>();
                 for (ModelKeyMap keyMap : relation.getKeyMaps()) {
                     fields.put(keyMap.getRelFieldName(), this.get(keyMap.getFieldName()));
                 }
@@ -1562,13 +1613,17 @@ public class GenericEntity implements Ma
                         for (ModelKeyMap mkm : relation.getKeyMaps()) {
                             if (this.get(mkm.getFieldName()) != null) {
                                 newValue.set(mkm.getRelFieldName(), this.get(mkm.getFieldName()));
-                                if (Debug.infoOn()) Debug.logInfo("Set [" + mkm.getRelFieldName() + "] to - " + this.get(mkm.getFieldName()), module);
+                                if (Debug.infoOn()) {
+                                    Debug.logInfo("Set [" + mkm.getRelFieldName() + "] to - " + this.get(mkm.getFieldName()), module);
+                                }
                             } else {
                                 allFieldsSet = false;
                             }
                         }
                         if (allFieldsSet) {
-                            if (Debug.infoOn()) Debug.logInfo("Creating place holder value : " + newValue, module);
+                            if (Debug.infoOn()) {
+                                Debug.logInfo("Creating place holder value : " + newValue, module);
+                            }
 
                             // inherit create and update times from this value in order to make this not seem like new/fresh data
                             newValue.put(ModelEntity.CREATE_STAMP_FIELD, this.get(ModelEntity.CREATE_STAMP_FIELD));