Cayenne-server check

Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/87c6ccc8
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/87c6ccc8
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/87c6ccc8

Branch: refs/heads/master
Commit: 87c6ccc894ab8d57b393f6478e42419765621c56
Parents: 93510a7
Author: Arseni Bulatski <ancars...@gmail.com>
Authored: Thu Jan 25 13:32:19 2018 +0300
Committer: Arseni Bulatski <ancars...@gmail.com>
Committed: Thu Jan 25 13:32:19 2018 +0300

----------------------------------------------------------------------
 .../src/main/resources/cayenne-pmd.xml          | 45 +++++++--------
 .../apache/cayenne/jcache/JCacheConstants.java  |  7 +--
 .../java/org/apache/cayenne/BaseContext.java    |  6 +-
 .../java/org/apache/cayenne/BaseDataObject.java |  2 +-
 .../apache/cayenne/ObjectContextChangeLog.java  |  3 +-
 .../apache/cayenne/ObjectContextStateLog.java   |  2 +-
 .../org/apache/cayenne/access/DataContext.java  |  4 +-
 .../access/DataDomainLegacyQueryAction.java     |  2 +-
 .../cayenne/access/DataDomainQueryAction.java   |  2 +-
 .../cayenne/access/DataDomainSyncBucket.java    |  2 +-
 .../org/apache/cayenne/access/DataRowStore.java |  2 +-
 .../org/apache/cayenne/access/DbGenerator.java  |  2 +-
 .../cayenne/access/IncrementalFaultList.java    |  9 ++-
 .../access/jdbc/DistinctResultIterator.java     |  4 +-
 .../access/jdbc/LimitResultIterator.java        |  2 +-
 .../ejbql/EJBQLConditionTranslator.java         |  2 +-
 .../access/translator/ejbql/EJBQLTableId.java   |  2 +-
 .../translator/select/QualifierTranslator.java  | 12 ++--
 .../cayenne/access/types/CalendarType.java      | 12 ++--
 .../cayenne/access/types/ExtendedEnumType.java  |  6 +-
 .../cayenne/access/types/ExtendedTypeMap.java   |  2 +-
 .../cayenne/ashwood/AshwoodEntitySorter.java    | 19 ++++---
 .../ashwood/graph/DepthFirstStampSearch.java    |  3 +-
 .../ashwood/graph/FilterArcIterator.java        |  6 +-
 .../cayenne/ashwood/graph/FilterIteration.java  |  6 +-
 .../ashwood/graph/IndegreeTopologicalSort.java  |  3 +-
 .../cayenne/ashwood/graph/MapDigraph.java       | 33 +++++++----
 .../cayenne/ashwood/graph/StrongConnection.java | 18 ++++--
 .../DefaultConfigurationNameMapper.java         |  4 +-
 .../DefaultDataChannelDescriptorMerger.java     |  2 +-
 .../configuration/Rot13PasswordEncoder.java     |  6 +-
 .../configuration/Rot47PasswordEncoder.java     |  3 +-
 .../server/DataDomainProvider.java              |  2 +-
 .../server/DefaultDbAdapterFactory.java         |  2 +-
 .../xml/DataChannelChildrenHandler.java         |  2 +-
 .../configuration/xml/DataChannelHandler.java   |  2 +-
 .../xml/DataSourceChildrenHandler.java          |  2 +-
 .../configuration/xml/DbEntityHandler.java      |  4 +-
 .../xml/DefaultHandlerFactory.java              |  2 +-
 .../configuration/xml/ObjEntityHandler.java     |  4 +-
 .../xml/QueryDescriptorHandler.java             |  4 +-
 .../xml/XMLDataChannelDescriptorLoader.java     |  4 +-
 .../org/apache/cayenne/conn/DataSourceInfo.java | 45 +++++++++++----
 .../cayenne/datasource/DriverDataSource.java    |  2 +-
 .../datasource/UnmanagedPoolingDataSource.java  |  2 +-
 .../apache/cayenne/dba/mysql/MySQLAdapter.java  | 14 +++--
 .../java/org/apache/cayenne/exp/Expression.java |  2 +-
 .../apache/cayenne/exp/ExpressionFactory.java   | 18 +++---
 .../apache/cayenne/exp/ExpressionParameter.java |  6 ++
 .../java/org/apache/cayenne/exp/Property.java   | 16 ++++--
 .../apache/cayenne/graph/ChildDiffLoader.java   |  2 +-
 .../log/FormattedSlf4jJdbcEventLogger.java      |  3 +-
 .../cayenne/log/Slf4jJdbcEventLogger.java       |  3 +-
 .../apache/cayenne/map/CallbackDescriptor.java  |  3 +-
 .../java/org/apache/cayenne/map/DataMap.java    | 18 +++---
 .../org/apache/cayenne/map/DbKeyGenerator.java  |  6 +-
 .../cayenne/map/PathComponentIterator.java      |  3 +-
 .../cayenne/map/QueryDescriptorLoader.java      |  8 ++-
 .../org/apache/cayenne/query/ColumnSelect.java  |  2 +-
 .../apache/cayenne/query/DeleteBatchQuery.java  |  2 +-
 .../org/apache/cayenne/query/ObjectIdQuery.java |  2 +-
 .../java/org/apache/cayenne/query/Ordering.java | 24 +++++---
 .../apache/cayenne/query/PrefetchTreeNode.java  |  2 +-
 .../cayenne/query/SelectQueryMetadata.java      |  2 +-
 .../apache/cayenne/query/UpdateBatchQuery.java  |  2 +-
 .../cayenne/reflect/BaseToManyProperty.java     |  2 +-
 .../cayenne/reflect/ClassDescriptorMap.java     |  2 +-
 .../cayenne/reflect/ConverterFactory.java       | 58 ++++++++++++--------
 .../reflect/LifecycleCallbackRegistry.java      |  2 +-
 .../cayenne/reflect/PersistentDescriptor.java   |  2 +-
 .../reflect/PersistentDescriptorFactory.java    |  6 +-
 .../cayenne/reflect/PropertyAccessor.java       |  2 +-
 .../apache/cayenne/reflect/ToAnyConverter.java  |  8 ++-
 .../valueholder/ValueHolderMapProperty.java     |  2 +-
 .../resource/FilesystemResourceLocator.java     |  2 +-
 .../org/apache/cayenne/util/ReferenceMap.java   |  4 +-
 .../java/org/apache/cayenne/util/RegexUtil.java |  2 +-
 .../apache/cayenne/util/RelationshipFault.java  |  4 +-
 .../main/java/org/apache/cayenne/util/Util.java | 12 ++--
 .../ConcurrentLinkedHashMap.java                |  2 +-
 .../validation/BeanValidationFailure.java       |  2 +-
 .../apache/cayenne/util/WeakValueMapTest.java   |  4 +-
 pom.xml                                         |  8 +--
 83 files changed, 347 insertions(+), 225 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml 
b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
index 7c26548..de950e7 100644
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
@@ -18,11 +18,11 @@
   under the License.
   -->
 <ruleset>
-<!--
+
   <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops">
     <priority>3</priority>
   </rule>
--->
+
   <rule ref="rulesets/java/basic.xml/BooleanInstantiation">
     <priority>1</priority>
   </rule>
@@ -44,7 +44,7 @@
   <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
     <priority>2</priority>
     <properties>
-      <property name="reportLevel" value="15" />
+      <property name="reportLevel" value="30" />
     </properties>
   </rule>
   <rule 
ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
@@ -56,9 +56,9 @@
   <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyIfStmt">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/empty.xml/EmptyIfStmt">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
     <priority>3</priority>
   </rule>
@@ -71,9 +71,9 @@
   <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule 
ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
     <priority>3</priority>
   </rule>
@@ -156,15 +156,15 @@
   <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/EqualsNull">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/EqualsNull">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/basic.xml/MisplacedNullCheck">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/MissingBreakInSwitch">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
     <priority>1</priority>
   </rule>
@@ -180,18 +180,15 @@
   <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/ConstantsInInterface">
-    <priority>3</priority>
-  </rule>
   <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
     <priority>1</priority>
   </rule>
   <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/PreserveStackTrace">
-    <priority>1</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/PreserveStackTrace">-->
+    <!--<priority>1</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/logging-java.xml/SystemPrintln">
     <priority>1</priority>
   </rule>
@@ -228,9 +225,9 @@
   <rule ref="rulesets/java/empty.xml/EmptyInitializer">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
     <priority>3</priority>
   </rule>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
----------------------------------------------------------------------
diff --git 
a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java 
b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
index a2183f5..63a2ca6 100644
--- 
a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
+++ 
b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
@@ -22,13 +22,12 @@ package org.apache.cayenne.jcache;
 /**
  * @since 4.0
  */
-public final class JCacheConstants {
+public interface JCacheConstants {
 
-    private JCacheConstants() {}
     /**
      * Default JCache cache name. This will be the cache used for queries with 
no explicit cache groups.
      */
-    public static final String DEFAULT_CACHE_NAME = "cayenne.default.cache";
+    String DEFAULT_CACHE_NAME = "cayenne.default.cache";
 
-    public static final String JCACHE_PROVIDER_CONFIG = 
"cayenne.jcache.provider_config";
+    String JCACHE_PROVIDER_CONFIG = "cayenne.jcache.provider_config";
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java 
b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
index ac9cc7a..0d94f94 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
@@ -170,7 +170,7 @@ public abstract class BaseContext implements ObjectContext {
         */
        protected void attachToChannel(DataChannel channel) {
                if (channel == null) {
-                       throw new NullPointerException("Null channel");
+                       throw new IllegalArgumentException("Null channel");
                }
 
                setChannel(channel);
@@ -246,7 +246,7 @@ public abstract class BaseContext implements ObjectContext {
        public <T extends Persistent> T localObject(T objectFromAnotherContext) 
{
 
                if (objectFromAnotherContext == null) {
-                       throw new NullPointerException("Null object argument");
+                       throw new IllegalArgumentException("Null object 
argument");
                }
 
                ObjectId id = objectFromAnotherContext.getObjectId();
@@ -553,7 +553,7 @@ public abstract class BaseContext implements ObjectContext {
 
                // don't allow null collections as a matter of coding discipline
                if (objects == null) {
-                       throw new NullPointerException("Null collection of 
objects to invalidate");
+                       throw new IllegalArgumentException("Null collection of 
objects to invalidate");
                }
 
                if (!objects.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java 
b/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
index a12b1bb..5857edb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
@@ -248,7 +248,7 @@ public abstract class BaseDataObject extends 
PersistentObject implements DataObj
     @Override
     public void addToManyTarget(String relName, DataObject value, boolean 
setReverse) {
         if (value == null) {
-            throw new NullPointerException("Attempt to add null target 
DataObject.");
+            throw new IllegalArgumentException("Attempt to add null target 
DataObject.");
         }
 
         willConnect(relName, value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java 
b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
index 0c7b483..4c2ef5f 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
@@ -162,8 +162,9 @@ class ObjectContextChangeLog {
         private int size;
 
         SubList(List<GraphDiff> list, int fromIndex, int toIndex) {
-            if (fromIndex < 0)
+            if (fromIndex < 0) {
                 throw new IndexOutOfBoundsException("fromIndex = " + 
fromIndex);
+            }
             if (toIndex > list.size()) {
                 throw new IndexOutOfBoundsException("toIndex = " + toIndex);
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java 
b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
index 408813e..69920d3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
@@ -56,7 +56,7 @@ class ObjectContextStateLog implements GraphChangeHandler {
         /*
          * Array for deleted ids, to avoid concurrent modification
          */
-        List<Object> deletedIds = new Vector<>();
+        List<Object> deletedIds = new ArrayList<>();
         
         for (Object id : dirtyIds) {
             Object node = graphManager.getNode(id);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
index 27460d2..99ba355 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
@@ -463,7 +463,7 @@ public class DataContext extends BaseContext {
     @Override
     public <T> T newObject(Class<T> persistentClass) {
         if (persistentClass == null) {
-            throw new NullPointerException("Null 'persistentClass'");
+            throw new IllegalArgumentException("Null 'persistentClass'");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity(persistentClass);
@@ -527,7 +527,7 @@ public class DataContext extends BaseContext {
     @Override
     public void registerNewObject(Object object) {
         if (object == null) {
-            throw new NullPointerException("Can't register null object.");
+            throw new IllegalArgumentException("Can't register null object.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity((Persistent) 
object);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
index 7715c12..6ec5e43 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
@@ -114,7 +114,7 @@ class DataDomainLegacyQueryAction implements QueryRouter, 
OperationObserver {
     @Override
     public QueryEngine engineForDataMap(DataMap map) {
         if (map == null) {
-            throw new NullPointerException("Null DataMap, can't determine 
DataNode.");
+            throw new IllegalArgumentException("Null DataMap, can't determine 
DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
index a87de83..b005b90 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
@@ -536,7 +536,7 @@ class DataDomainQueryAction implements QueryRouter, 
OperationObserver {
     @Override
     public QueryEngine engineForDataMap(DataMap map) {
         if (map == null) {
-            throw new NullPointerException("Null DataMap, can't determine 
DataNode.");
+            throw new IllegalArgumentException("Null DataMap, can't determine 
DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
index 7c25ab5..c5d98e6 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
@@ -82,7 +82,7 @@ abstract class DataDomainSyncBucket {
     void checkReadOnly(ObjEntity entity) throws CayenneRuntimeException {
 
         if (entity == null) {
-            throw new NullPointerException("Entity must not be null.");
+            throw new IllegalArgumentException("Entity must not be null.");
         }
 
         if (entity.isReadOnly()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
index e03d2ed..a68e11a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
@@ -52,7 +52,7 @@ import java.util.concurrent.ConcurrentMap;
  */
 public class DataRowStore implements Serializable {
 
-    private static Logger logger = LoggerFactory.getLogger(DataRowStore.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(DataRowStore.class);
 
     // default property values
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
index d49f839..23403be 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
@@ -58,7 +58,7 @@ import java.util.Map;
  */
 public class DbGenerator {
 
-       private Logger logObj = LoggerFactory.getLogger(DbGenerator.class);
+       private static final Logger logObj = 
LoggerFactory.getLogger(DbGenerator.class);
 
        protected DbAdapter adapter;
        protected DataMap map;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
index 2d2cca0..d78b3d9 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
@@ -422,8 +422,9 @@ public class IncrementalFaultList<E> implements List<E>, 
Serializable {
                        }
 
                        public E next() {
-                               if (listIndex >= elements.size())
+                               if (listIndex >= elements.size()) {
                                        throw new NoSuchElementException("no 
more elements");
+                               }
 
                                return get(listIndex++);
                        }
@@ -807,8 +808,9 @@ public class IncrementalFaultList<E> implements List<E>, 
Serializable {
                }
 
                public E next() {
-                       if (listIndex >= elements.size())
+                       if (listIndex >= elements.size()) {
                                throw new NoSuchElementException("at the end of 
the list");
+                       }
 
                        return get(listIndex++);
                }
@@ -818,8 +820,9 @@ public class IncrementalFaultList<E> implements List<E>, 
Serializable {
                }
 
                public E previous() {
-                       if (listIndex < 1)
+                       if (listIndex < 1) {
                                throw new NoSuchElementException("at the 
beginning of the list");
+                       }
 
                        return get(--listIndex);
                }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
index e6e5dab..5393980 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
@@ -59,11 +59,11 @@ public class DistinctResultIterator<T> implements 
ResultIterator<T> {
      */
     public DistinctResultIterator(ResultIterator<T> delegate, DbEntity 
defaultEntity, boolean compareFullRows) {
         if (delegate == null) {
-            throw new NullPointerException("Null wrapped iterator.");
+            throw new IllegalArgumentException("Null wrapped iterator.");
         }
 
         if (defaultEntity == null) {
-            throw new NullPointerException("Null defaultEntity.");
+            throw new IllegalArgumentException("Null defaultEntity.");
         }
 
         this.delegate = delegate;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
index e2f03ce..da7d3e8 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
@@ -44,7 +44,7 @@ public class LimitResultIterator<T> implements 
ResultIterator<T> {
     public LimitResultIterator(ResultIterator<T> delegate, int offset, int 
fetchLimit) {
 
         if (delegate == null) {
-            throw new NullPointerException("Null delegate iterator.");
+            throw new IllegalArgumentException("Null delegate iterator.");
         }
         this.delegate = delegate;
         this.offset = offset;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
index 11fa179..a70d322 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
@@ -693,7 +693,7 @@ public class EJBQLConditionTranslator extends 
EJBQLBaseVisitor {
             Long longValue;
 
             try {
-                longValue = new Long(text);
+                longValue = Long.valueOf(text);
             } catch (NumberFormatException nfex) {
                 throw new EJBQLException("Invalid integer: " + 
expression.getText());
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
index a28d647..485b989 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
@@ -62,7 +62,7 @@ class EJBQLTableId {
     EJBQLTableId(String entityId, String dbPath) {
 
         if (entityId == null) {
-            throw new NullPointerException("Null entityId");
+            throw new IllegalArgumentException("Null entityId");
         }
 
         this.entityId = entityId;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
index 81ec0ee..774d0bf 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
@@ -314,16 +314,20 @@ public class QualifierTranslator extends 
QueryAssemblerHelper implements Travers
                                out.append(" / ");
                                break;
                        case Expression.BETWEEN:
-                               if (childIndex == 0)
+                               if (childIndex == 0) {
                                        out.append(" BETWEEN ");
-                               else if (childIndex == 1)
+                               }
+                               else if (childIndex == 1) {
                                        out.append(" AND ");
+                               }
                                break;
                        case Expression.NOT_BETWEEN:
-                               if (childIndex == 0)
+                               if (childIndex == 0) {
                                        out.append(" NOT BETWEEN ");
-                               else if (childIndex == 1)
+                               }
+                               else if (childIndex == 1) {
                                        out.append(" AND ");
+                               }
                                break;
                        case Expression.BITWISE_OR:
                                out.append(" 
").append(operandForBitwiseOr()).append(" ");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
index 044605f..d5d2c42 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
@@ -149,18 +149,22 @@ public class CalendarType<T extends Calendar> implements 
ExtendedType<Calendar>
     }
 
     protected Object convertToJdbcObject(Calendar value, int type) throws 
Exception {
-        if (type == Types.DATE)
+        if (type == Types.DATE) {
             return new java.sql.Date(value.getTimeInMillis());
-        else if (type == Types.TIME)
+        }
+        else if (type == Types.TIME) {
             return new java.sql.Time(value.getTimeInMillis());
-        else if (type == Types.TIMESTAMP)
+        }
+        else if (type == Types.TIMESTAMP) {
             return new java.sql.Timestamp(value.getTimeInMillis());
-        else
+        }
+        else {
             throw new IllegalArgumentException(
                     "Only DATE, TIME or TIMESTAMP can be mapped as '"
                             + getClassName()
                             + "', got "
                             + TypesMapping.getSqlNameByType(type));
+        }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
index 17151cb..77a1cd4 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
@@ -49,8 +49,9 @@ public class ExtendedEnumType<T extends Enum<T>> implements 
ExtendedType<T> {
     private Map<Object, Enum<T>> enumerationMappings = new HashMap<>();
 
     public ExtendedEnumType(Class<T> enumerationClass) {
-        if (enumerationClass == null)
+        if (enumerationClass == null) {
             throw new IllegalArgumentException("Null ExtendedEnumType class");
+        }
 
         this.enumerationClass = enumerationClass;
 
@@ -117,8 +118,9 @@ public class ExtendedEnumType<T extends Enum<T>> implements 
ExtendedType<T> {
     private void register(Enum<T> enumeration, Object databaseValue) {
         // Check for duplicates.
         if (enumerationMappings.containsKey(databaseValue)
-                || enumerationMappings.containsValue(enumeration))
+                || enumerationMappings.containsValue(enumeration)) {
             throw new CayenneRuntimeException("Enumerations/values may not be 
duplicated.");
+        }
 
         // Store by database value/enum because we have to lookup by db value 
later.
         enumerationMappings.put(databaseValue, enumeration);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
index 8d3d31b..e2b869e 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
@@ -189,7 +189,7 @@ public class ExtendedTypeMap {
        ExtendedType getExplictlyRegisteredType(String className) {
 
                if (className == null) {
-                       throw new NullPointerException("Null className");
+                       throw new IllegalArgumentException("Null className");
                }
                return typeMap.get(className);
        }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
index 13214a9..1fa1b9e 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
@@ -265,9 +265,10 @@ public class AshwoodEntitySorter implements EntitySorter {
 
                while (sorter.hasNext()) {
                        Persistent o = sorter.next();
-                       if (o == null)
+                       if (o == null) {
                                throw new CayenneRuntimeException("Sorting 
objects for %s failed. Cycles found."
                                                , objEntity.getClassName());
+                       }
                        sorted.add(o);
                }
 
@@ -340,8 +341,9 @@ public class AshwoodEntitySorter implements EntitySorter {
 
                @Override
                public int compare(ObjEntity o1, ObjEntity o2) {
-                       if (o1 == o2)
+                       if (o1 == o2) {
                                return 0;
+                       }
                        DbEntity t1 = o1.getDbEntity();
                        DbEntity t2 = o2.getDbEntity();
                        return dbEntityComparator.compare(t1, t2);
@@ -353,22 +355,25 @@ public class AshwoodEntitySorter implements EntitySorter {
                @Override
                public int compare(DbEntity t1, DbEntity t2) {
 
-                       if (t1 == t2)
+                       if (t1 == t2) {
                                return 0;
-                       if (t1 == null)
+                       }
+                       if (t1 == null) {
                                return -1;
-                       else if (t2 == null)
+                       }
+                       else if (t2 == null) {
                                return 1;
+                       }
                        else {
                                ComponentRecord rec1 = components.get(t1);
                                ComponentRecord rec2 = components.get(t2);
 
                                if(rec1 == null) {
-                                       throw new NullPointerException("No 
record for DbEntity: " + t1);
+                                       throw new IllegalArgumentException("No 
record for DbEntity: " + t1);
                                }
 
                                if(rec2 == null) {
-                                       throw new NullPointerException("No 
record for DbEntity: " + t2);
+                                       throw new IllegalArgumentException("No 
record for DbEntity: " + t2);
                                }
 
                                int index1 = rec1.index;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
index cc8321e..4bc8ab6 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
@@ -100,8 +100,9 @@ public class DepthFirstStampSearch<E> extends 
DepthFirstSearch<E> {
                        stack.push(factory.outgoingIterator(dst));
                        // grow depth
                        stamp = GROW_DEPTH_STAMP;
-                       if (i.hasNext())
+                       if (i.hasNext()) {
                                i.next();
+                       }
                } else {
                        if (i.hasNext()) {
                                i.next();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
index 81653ab..7b0f3a0 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
@@ -84,11 +84,13 @@ public class FilterArcIterator<E, V> implements 
ArcIterator<E, V> {
         this.acceptDestination = acceptDestination;
         this.acceptArc = acceptArc;
         nextOrigin = iterator.getOrigin();
-        if (!acceptOrigin.test(nextOrigin))
+        if (!acceptOrigin.test(nextOrigin)) {
             nextOrigin = null;
+        }
         nextDst = iterator.getDestination();
-        if (!acceptDestination.test(nextDst))
+        if (!acceptDestination.test(nextDst)) {
             nextDst = null;
+        }
     }
 
     public E getOrigin() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
index e679c22..89b6e27 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
@@ -93,8 +93,9 @@ public class FilterIteration<E, V> implements 
DigraphIteration<E, V> {
     }
 
     public ArcIterator<E, V> outgoingIterator(E vertex) {
-        if (!acceptVertex.test(vertex))
+        if (!acceptVertex.test(vertex)) {
             return EmptyIterator.instance();
+        }
         return new FilterArcIterator<>(
                 digraph.outgoingIterator(vertex),
                 v -> true,
@@ -103,8 +104,9 @@ public class FilterIteration<E, V> implements 
DigraphIteration<E, V> {
     }
 
     public ArcIterator<E, V> incomingIterator(E vertex) {
-        if (!acceptVertex.test(vertex))
+        if (!acceptVertex.test(vertex)) {
             return EmptyIterator.instance();
+        }
         return new FilterArcIterator<>(
                 digraph.incomingIterator(vertex),
                 acceptVertex,

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
index 597edaa..749730d 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
@@ -94,8 +94,9 @@ public class IndegreeTopologicalSort<E> implements 
Iterator<E> {
         boolean progress = true;
         while (hasNext()) {
             if (!current.hasNext()) {
-                if (!progress)
+                if (!progress) {
                     break;
+                }
                 progress = false;
                 current = vertices.listIterator();
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
index 1526379..31cac7b 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
@@ -130,10 +130,12 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
        @Override
        public boolean removeVertex(E vertex) {
                Map<E, V> destination = graph.remove(vertex);
-               if (destination != null)
+               if (destination != null) {
                        size -= destination.size();
-               else
+               }
+               else {
                        return false;
+               }
 
                removeIncoming(vertex);
                return true;
@@ -158,8 +160,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
                }
 
                V arc = destinations.remove(destination);
-               if (arc != null)
+               if (arc != null) {
                        size--;
+               }
 
                return arc;
        }
@@ -170,8 +173,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 
                for (Map<E, V> destinations : graph.values()) {
                        Object arc = destinations.remove(vertex);
-                       if (arc != null)
+                       if (arc != null) {
                                size--;
+                       }
                        modified |= (arc != null);
                }
 
@@ -182,10 +186,12 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
        public boolean removeOutgoing(E vertex) {
 
                Map<E, V> destinations = graph.remove(vertex);
-               if (destinations != null)
+               if (destinations != null) {
                        size -= destinations.size();
-               else
+               }
+               else {
                        return false;
+               }
                boolean modified = !destinations.isEmpty();
                destinations.clear();
                return modified;
@@ -232,17 +238,20 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
        @Override
        public int outgoingSize(E vertex) {
                Map<E, V> destinations = graph.get(vertex);
-               if (destinations == null)
+               if (destinations == null) {
                        return 0;
-               else
+               }
+               else {
                        return destinations.size();
+               }
        }
 
        @Override
        public int incomingSize(E vertex) {
                int count = 0;
-               if (!graph.containsKey(vertex))
+               if (!graph.containsKey(vertex)) {
                        return 0;
+               }
 
                for (Map<E, V> destinations : graph.values()) {
                        count += (destinations.containsKey(vertex) ? 1 : 0);
@@ -264,8 +273,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
        @Override
        public boolean hasArc(E origin, E destination) {
                Map<E, V> destinations = graph.get(origin);
-               if (destinations == null)
+               if (destinations == null) {
                        return false;
+               }
                return destinations.containsKey(destination);
        }
 
@@ -366,8 +376,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 
                @Override
                public E getDestination() {
-                       if (entry == null)
+                       if (entry == null) {
                                return null;
+                       }
                        return entry.getKey();
                }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
index d099ea1..3c9cf20 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
@@ -140,8 +140,9 @@ public class StrongConnection<E, V> implements 
Iterator<Collection<E>> {
                                for (ArcIterator<E, V> k = 
digraph.outgoingIterator(member); k.hasNext();) {
                                        V arc = k.next();
                                        E dst = k.getDestination();
-                                       if (origin.contains(dst))
+                                       if (origin.contains(dst)) {
                                                continue;
+                                       }
                                        Collection<E> destination = 
memberToComponent.get(dst);
 
                                        Collection<V> contractedArc = 
contractedDigraph.getArc(origin, destination);
@@ -172,12 +173,15 @@ public class StrongConnection<E, V> implements 
Iterator<Collection<E>> {
                dfsStack.clear();
                reverseDFSFilter.seenVertices.clear();
                E root = nextDFSRoot();
-               if (root == null)
+               if (root == null) {
                        return false;
-               if (directDfs == null)
+               }
+               if (directDfs == null) {
                        directDfs = new 
DepthFirstStampSearch<>(filteredDigraph, root);
-               else
+               }
+               else {
                        directDfs.reset(root);
+               }
                int stamp;
                E vertex;
                while (directDfs.hasNext()) {
@@ -198,10 +202,12 @@ public class StrongConnection<E, V> implements 
Iterator<Collection<E>> {
                E root = (E) dfsStack.pop();
                Collection<E> component = Collections.singletonList(root);
                boolean singleton = true;
-               if (reverseDfs == null)
+               if (reverseDfs == null) {
                        reverseDfs = new DepthFirstSearch<>(reverseDigraph, 
root);
-               else
+               }
+               else {
                        reverseDfs.reset(root);
+               }
                while (reverseDfs.hasNext()) {
                        E vertex = reverseDfs.next();
                        if (vertex != root) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
index 5e6a53d..d399b86 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
@@ -92,7 +92,7 @@ public class DefaultConfigurationNameMapper implements 
ConfigurationNameMapper {
 
        protected String getDataChannelName(String name) {
                if (name == null) {
-                       throw new NullPointerException("Null 
DataChannelDescriptor name");
+                       throw new IllegalArgumentException("Null 
DataChannelDescriptor name");
                }
 
                return CAYENNE_PREFIX + name + CAYENNE_SUFFIX;
@@ -100,7 +100,7 @@ public class DefaultConfigurationNameMapper implements 
ConfigurationNameMapper {
 
        protected String getDataMapName(String name) {
                if (name == null) {
-                       throw new NullPointerException("Null DataMap name");
+                       throw new IllegalArgumentException("Null DataMap name");
                }
 
                return name + DATA_MAP_SUFFIX;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
index 9e44d19..675525a 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
@@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory;
  */
 public class DefaultDataChannelDescriptorMerger implements 
DataChannelDescriptorMerger {
 
-    private static Logger logger = LoggerFactory
+    private static final Logger logger = LoggerFactory
             .getLogger(DefaultDataChannelDescriptorMerger.class);
 
     public DataChannelDescriptor merge(DataChannelDescriptor... descriptors) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
index 67b7581..d8cd163 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
@@ -66,10 +66,12 @@ public class Rot13PasswordEncoder implements 
PasswordEncoding {
             char c = value.charAt(i);
 
             // If c is a letter, rotate it by 13. Numbers/symbols are 
untouched.
-            if ((c >= 'a' && c <= 'm') || (c >= 'A' && c <= 'M'))
+            if ((c >= 'a' && c <= 'm') || (c >= 'A' && c <= 'M')) {
                 c += 13; // The first half of the alphabet goes forward 13 
letters
-            else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z'))
+            }
+            else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z')) {
                 c -= 13; // The last half of the alphabet goes backward 13 
letters
+            }
 
             result.append(c);
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
index 5895fcd..e5d87b3 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
@@ -76,8 +76,9 @@ public class Rot47PasswordEncoder implements PasswordEncoding 
{
                 // therefore the value that needs to be subtracted from the
                 // non-printable character to put it into the correct printable
                 // range.
-                if (c > '~')
+                if (c > '~') {
                     c -= 94;
+                }
             }
 
             result.append(c);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
index e616700..f0d3402 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
@@ -57,7 +57,7 @@ import java.util.List;
  */
 public class DataDomainProvider implements Provider<DataDomain> {
 
-       private static Logger logger = 
LoggerFactory.getLogger(DataDomainProvider.class);
+       private static final Logger logger = 
LoggerFactory.getLogger(DataDomainProvider.class);
 
        @Inject
        protected ResourceLocator resourceLocator;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
index 2287071..46ea16d 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
@@ -57,7 +57,7 @@ public class DefaultDbAdapterFactory implements 
DbAdapterFactory {
 
        public 
DefaultDbAdapterFactory(@Inject(Constants.SERVER_ADAPTER_DETECTORS_LIST) 
List<DbAdapterDetector> detectors) {
                if (detectors == null) {
-                       throw new NullPointerException("Null detectors list");
+                       throw new IllegalArgumentException("Null detectors 
list");
                }
 
                this.detectors = detectors;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
index ddca060..e351fac 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
@@ -34,7 +34,7 @@ import org.xml.sax.ContentHandler;
  */
 final class DataChannelChildrenHandler extends NamespaceAwareNestedTagHandler {
 
-    private static Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     static final String OLD_MAP_TAG = "map";
     static final String NODE_TAG = "node";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
index 8b71bc7..b55e604 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
@@ -30,7 +30,7 @@ import org.xml.sax.ContentHandler;
  */
 final class DataChannelHandler extends VersionAwareHandler {
 
-    private static Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     static final String DOMAIN_TAG = "domain";
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
index 066dd31..df95704 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
@@ -35,7 +35,7 @@ import org.xml.sax.Attributes;
  */
 class DataSourceChildrenHandler extends NamespaceAwareNestedTagHandler {
 
-    private static Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     static final String DRIVER_TAG = "driver";
     static final String LOGIN_TAG = "login";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
index 8de6bb1..ce766f8 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
@@ -28,6 +28,8 @@ import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * @since 4.1
  */
@@ -126,7 +128,7 @@ public class DbEntityHandler extends 
NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (qualifier.trim().length() == 0) {
+        if (isBlank(qualifier.trim())) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
index 5fd2293..f20b058 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
@@ -28,7 +28,7 @@ import org.xml.sax.Attributes;
  */
 public class DefaultHandlerFactory implements HandlerFactory {
 
-    private static Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     @Override
     public NamespaceAwareNestedTagHandler createHandler(String namespace, 
String localName, NamespaceAwareNestedTagHandler parent) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
index e9ee9aa..ab4a655 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
@@ -28,6 +28,8 @@ import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * @since 4.1
  */
@@ -191,7 +193,7 @@ public class ObjEntityHandler extends 
NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (qualifier.trim().length() == 0) {
+        if (isBlank(qualifier.trim())) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
index 4034184..da18429 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
@@ -26,6 +26,8 @@ import org.apache.cayenne.util.Util;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * @since 4.1
  */
@@ -160,7 +162,7 @@ public class QueryDescriptorHandler extends 
NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (qualifier.trim().length() == 0) {
+        if (isBlank(qualifier.trim())) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
index 8444732..5a55447 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
@@ -47,7 +47,7 @@ import java.net.URL;
  */
 public class XMLDataChannelDescriptorLoader implements 
DataChannelDescriptorLoader {
 
-       private static Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+       private static final Logger logger = 
LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
        static final String CURRENT_PROJECT_VERSION = "10";
 
@@ -117,7 +117,7 @@ public class XMLDataChannelDescriptorLoader implements 
DataChannelDescriptorLoad
        public ConfigurationTree<DataChannelDescriptor> load(Resource 
configurationResource) throws ConfigurationException {
 
                if (configurationResource == null) {
-                       throw new NullPointerException("Null 
configurationResource");
+                       throw new IllegalArgumentException("Null 
configurationResource");
                }
 
                URL configurationURL = configurationResource.getURL();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java 
b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
index 0647fbc..967054c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
@@ -20,6 +20,7 @@
 package org.apache.cayenne.conn;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.PasswordEncoding;
@@ -38,7 +39,7 @@ public class DataSourceInfo implements Cloneable, 
Serializable, XMLSerializable
 
        private static final long serialVersionUID = 3748394113864532902L;
 
-       private static Logger logger = 
LoggerFactory.getLogger(DataSourceInfo.class);
+       private static final Logger logger = 
LoggerFactory.getLogger(DataSourceInfo.class);
 
        public static final String PASSWORD_LOCATION_CLASSPATH = "classpath";
        public static final String PASSWORD_LOCATION_EXECUTABLE = "executable";
@@ -132,6 +133,15 @@ public class DataSourceInfo implements Cloneable, 
Serializable, XMLSerializable
                return true;
        }
 
+       @Override
+       public int hashCode() {
+               return Objects.hash(userName, password, jdbcDriver,
+                               dataSourceUrl, adapterClassName, minConnections,
+                               maxConnections, passwordEncoderClass, 
passwordEncoderKey,
+                               passwordLocation, passwordSourceFilename, 
passwordSourceModel,
+                               passwordSourceUrl);
+       }
+
        /**
         * @since 3.1
         */
@@ -268,10 +278,12 @@ public class DataSourceInfo implements Cloneable, 
Serializable, XMLSerializable
         *            the passwordEncoderClass to set
         */
        public void setPasswordEncoderClass(String passwordEncoderClass) {
-               if (passwordEncoderClass == null)
+               if (passwordEncoderClass == null) {
                        this.passwordEncoderClass = 
PasswordEncoding.standardEncoders[0];
-               else
+               }
+               else {
                        this.passwordEncoderClass = passwordEncoderClass;
+               }
        }
 
        /**
@@ -342,26 +354,33 @@ public class DataSourceInfo implements Cloneable, 
Serializable, XMLSerializable
        }
 
        public String getPasswordSource() {
-               if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
+               if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH)) {
                        return getPasswordSourceFilename();
-               else if 
(getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
+               }
+               else if 
(getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
                        return getPasswordSourceExecutable();
-               else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL))
+               }
+               else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL)) 
{
                        return getPasswordSourceModel();
-               else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
+               }
+               else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
                        return getPasswordSourceUrl();
+               }
 
                throw new RuntimeException("Invalid password source detected");
        }
 
        public void setPasswordSource(String passwordSource) {
                // The location for the model is omitted since it cannot change
-               if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
+               if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH)) {
                        setPasswordSourceFilename(passwordSource);
-               else if 
(getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
+               }
+               else if 
(getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
                        setPasswordSourceExecutable(passwordSource);
-               else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
+               }
+               else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
                        setPasswordSourceUrl(passwordSource);
+               }
        }
 
        /**
@@ -376,10 +395,12 @@ public class DataSourceInfo implements Cloneable, 
Serializable, XMLSerializable
         *            the passwordLocation to set
         */
        public void setPasswordLocation(String passwordLocation) {
-               if (passwordLocation == null)
+               if (passwordLocation == null) {
                        this.passwordLocation = 
DataSourceInfo.PASSWORD_LOCATION_MODEL;
-               else
+               }
+               else {
                        this.passwordLocation = passwordLocation;
+               }
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
index b5ccc5a..33e8f9f 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
@@ -58,7 +58,7 @@ public class DriverDataSource implements DataSource {
        public DriverDataSource(Driver driver, String connectionUrl, String 
userName, String password) {
 
                if (connectionUrl == null) {
-                       throw new NullPointerException("Null 'connectionUrl'");
+                       throw new IllegalArgumentException("Null 
'connectionUrl'");
                }
 
                this.driver = driver;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
index da40900..a51fe55 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
@@ -88,7 +88,7 @@ public class UnmanagedPoolingDataSource implements 
PoolingDataSource {
         */
        public static final int MAX_QUEUE_WAIT_DEFAULT = 20000;
 
-       private static Logger LOGGER = 
LoggerFactory.getLogger(UnmanagedPoolingDataSource.class);
+       private static final Logger LOGGER = 
LoggerFactory.getLogger(UnmanagedPoolingDataSource.class);
 
        private DataSource nonPoolingDataSource;
        private long maxQueueWaitTime;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
index 24d39ae..4c53225 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
@@ -197,8 +197,8 @@ public class MySQLAdapter extends JdbcAdapter {
                else if (typeName != null && typeName.endsWith(" unsigned")) {
                        // per
                        // 
http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-conversions.html
-                       if (typeName.equals("int unsigned") || 
typeName.equals("integer unsigned")
-                                       || typeName.equals("mediumint 
unsigned")) {
+                       if ("int unsigned".equals(typeName) || "integer 
unsigned".equals(typeName)
+                                       || "mediumint 
unsigned".equals(typeName)) {
                                type = Types.BIGINT;
                        }
                        // BIGINT UNSIGNED maps to BigInteger according to 
MySQL docs, but
@@ -288,10 +288,12 @@ public class MySQLAdapter extends JdbcAdapter {
             sqlBuffer.append(", PRIMARY KEY (");
             boolean firstPk = true;
             while (pkit.hasNext()) {
-                if (firstPk)
-                    firstPk = false;
-                else
-                    sqlBuffer.append(", ");
+                if (firstPk) {
+                                       firstPk = false;
+                               }
+                else {
+                                       sqlBuffer.append(", ");
+                               }
 
                 DbAttribute at = pkit.next();
                 sqlBuffer.append(quotingStrategy.quotedName(at));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java 
b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
index ce2636f..02a7ca5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
@@ -524,7 +524,7 @@ public abstract class Expression implements Serializable, 
XMLSerializable {
         */
        public void traverse(TraversalHandler visitor) {
                if (visitor == null) {
-                       throw new NullPointerException("Null Visitor.");
+                       throw new IllegalArgumentException("Null Visitor.");
                }
 
                traverse(null, visitor);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java 
b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
index 6c227a9..7a27469 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
@@ -107,17 +107,21 @@ public class ExpressionFactory {
                int min = 0;
                int allLen = allTypes.length;
                for (int i = 0; i < allLen; i++) {
-                       if (allTypes[i] > max)
+                       if (allTypes[i] > max) {
                                max = allTypes[i];
-                       else if (allTypes[i] < min)
+                       }
+                       else if (allTypes[i] < min) {
                                min = allTypes[i];
+                       }
                }
 
                // sanity check....
-               if (max > 500)
+               if (max > 500) {
                        throw new RuntimeException("Types values are too big: " 
+ max);
-               if (min < 0)
+               }
+               if (min < 0) {
                        throw new RuntimeException("Types values are too small: 
" + min);
+               }
 
                // now we know that if types are used as indexes,
                // they will fit in array "max + 1" long (though gaps are 
possible)
@@ -285,7 +289,7 @@ public class ExpressionFactory {
        public static Expression matchAllExp(String path, Collection<?> values) 
{
 
                if (values == null) {
-                       throw new NullPointerException("Null values 
collection");
+                       throw new IllegalArgumentException("Null values 
collection");
                }
 
                if (values.size() == 0) {
@@ -301,7 +305,7 @@ public class ExpressionFactory {
        public static Expression matchAllExp(String path, Object... values) {
 
                if (values == null) {
-                       throw new NullPointerException("Null values 
collection");
+                       throw new IllegalArgumentException("Null values 
collection");
                }
 
                if (values.length == 0) {
@@ -1321,7 +1325,7 @@ public class ExpressionFactory {
        private static Expression fromString(String expressionString) {
 
                if (expressionString == null) {
-                       throw new NullPointerException("Null expression 
string.");
+                       throw new IllegalArgumentException("Null expression 
string.");
                }
 
                // optimizing parser buffers per CAY-1667...

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java 
b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
index 5562b12..c89169e 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
@@ -22,6 +22,7 @@ package org.apache.cayenne.exp;
 import org.apache.cayenne.util.Util;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 /**
  * Named parameter for parameterized expressions.
@@ -60,4 +61,9 @@ public class ExpressionParameter implements Serializable {
                ExpressionParameter parameter = (ExpressionParameter) o;
                return Util.nullSafeEquals(name, parameter.name);
        }
+
+       @Override
+       public int hashCode() {
+               return Objects.hash(name);
+       }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java 
b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
index 8260333..6872615 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
@@ -168,12 +168,20 @@ public class Property<E> {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
 
         Property<?> property = (Property<?>) o;
-        if (name != null ? !name.equals(property.name) : property.name != 
null) return false;
-        if (name == null && 
!expressionProvider.get().equals(property.expressionProvider.get())) return 
false;
+        if (name != null ? !name.equals(property.name) : property.name != 
null) {
+            return false;
+        }
+        if (name == null && 
!expressionProvider.get().equals(property.expressionProvider.get())) {
+            return false;
+        }
         return (type == null ? property.type == null : 
type.equals(property.type));
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java 
b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
index 4777fd3..54ee014 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
@@ -94,7 +94,7 @@ public class ChildDiffLoader implements GraphChangeHandler {
                try {
                        ObjectId id = (ObjectId) nodeId;
                        if (id.getEntityName() == null) {
-                               throw new NullPointerException("Null entity 
name in id " + id);
+                               throw new IllegalArgumentException("Null entity 
name in id " + id);
                        }
 
                        ObjEntity entity = 
context.getEntityResolver().getObjEntity(id.getEntityName());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
index b38c90e..aa8e7e6 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
@@ -70,8 +70,9 @@ public class FormattedSlf4jJdbcEventLogger extends 
Slf4jJdbcEventLogger {
         for (int pos = 0; pos < sql.length(); pos++) {
             if (sql.charAt(pos) == '\'') {
                 apixCount++;
-                if (pos > 0 && sql.charAt(pos - 1) == '\'')
+                if (pos > 0 && sql.charAt(pos - 1) == '\'') {
                     apixCount = apixCount - 2;
+                }
             }
             if (apixCount % 2 != 0) {
                 continue;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java 
b/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
index d29b585..9eef8e9 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
@@ -75,8 +75,9 @@ public class Slf4jJdbcEventLogger implements JdbcEventLogger {
        }
 
        private boolean isInserting(String query) {
-               if (query == null || query.length() == 0)
+               if (query == null || query.length() == 0) {
                        return false;
+               }
 
                char firstCharacter = query.charAt(0);
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java 
b/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
index 6d6b341..b2d73d5 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
@@ -83,9 +83,10 @@ public class CallbackDescriptor implements Serializable {
     public boolean moveMethod(String callbackMethod, int destinationIndex) {
         List<String> callbackMethodsList = new ArrayList<>(callbackMethods);
         int currentIndex = callbackMethodsList.indexOf(callbackMethod);
-        if (currentIndex < 0)
+        if (currentIndex < 0) {
             throw new IllegalArgumentException("Unknown callback method: "
                     + callbackMethod);
+        }
 
         boolean changed = false;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java 
b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index f52f5b5..64f5aff 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -455,11 +455,11 @@ public class DataMap implements Serializable, 
ConfigurationNode, XMLSerializable
         */
        public void addQueryDescriptor(QueryDescriptor queryDescriptor) {
                if (queryDescriptor == null) {
-                       throw new NullPointerException("Can't add null query.");
+                       throw new IllegalArgumentException("Can't add null 
query.");
                }
 
                if (queryDescriptor.getName() == null) {
-                       throw new NullPointerException("Query name can't be 
null.");
+                       throw new IllegalArgumentException("Query name can't be 
null.");
                }
 
                // TODO: change method signature to return replaced procedure 
and make
@@ -553,11 +553,11 @@ public class DataMap implements Serializable, 
ConfigurationNode, XMLSerializable
         */
        public void addEmbeddable(Embeddable embeddable) {
                if (embeddable == null) {
-                       throw new NullPointerException("Null embeddable");
+                       throw new IllegalArgumentException("Null embeddable");
                }
 
                if (embeddable.getClassName() == null) {
-                       throw new NullPointerException("Attempt to add 
Embeddable with no class name.");
+                       throw new IllegalArgumentException("Attempt to add 
Embeddable with no class name.");
                }
 
                // TODO: change method signature to return replaced entity and 
make sure
@@ -583,11 +583,11 @@ public class DataMap implements Serializable, 
ConfigurationNode, XMLSerializable
         */
        public void addResult(SQLResult result) {
                if (result == null) {
-                       throw new NullPointerException("Null result");
+                       throw new IllegalArgumentException("Null result");
                }
 
                if (result.getName() == null) {
-                       throw new NullPointerException("Attempt to add 
resultSetMapping with no name.");
+                       throw new IllegalArgumentException("Attempt to add 
resultSetMapping with no name.");
                }
 
                Object existing = results.get(result.getName());
@@ -607,7 +607,7 @@ public class DataMap implements Serializable, 
ConfigurationNode, XMLSerializable
         */
        public void addObjEntity(ObjEntity entity) {
                if (entity.getName() == null) {
-                       throw new NullPointerException("Attempt to add 
ObjEntity with no name.");
+                       throw new IllegalArgumentException("Attempt to add 
ObjEntity with no name.");
                }
 
                // TODO: change method signature to return replaced entity and 
make sure
@@ -631,7 +631,7 @@ public class DataMap implements Serializable, 
ConfigurationNode, XMLSerializable
         */
        public void addDbEntity(DbEntity entity) {
                if (entity.getName() == null) {
-                       throw new NullPointerException("Attempt to add DbEntity 
with no name.");
+                       throw new IllegalArgumentException("Attempt to add 
DbEntity with no name.");
                }
 
                // TODO: change method signature to return replaced entity and 
make sure
@@ -922,7 +922,7 @@ public class DataMap implements Serializable, 
ConfigurationNode, XMLSerializable
         */
        public void addProcedure(Procedure procedure) {
                if (procedure.getName() == null) {
-                       throw new NullPointerException("Attempt to add 
procedure with no name.");
+                       throw new IllegalArgumentException("Attempt to add 
procedure with no name.");
                }
 
                // TODO: change method signature to return replaced procedure 
and make

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java 
b/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
index d91e787..30e54e1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
@@ -109,8 +109,9 @@ public class DbKeyGenerator implements CayenneMapEntry, 
XMLSerializable, Seriali
         if (this.generatorType != null) {
             this.generatorType = this.generatorType.trim().toUpperCase();
             if (!(ORACLE_TYPE.equals(this.generatorType)
-                    || NAMED_SEQUENCE_TABLE_TYPE.equals(this.generatorType)))
+                    || NAMED_SEQUENCE_TABLE_TYPE.equals(this.generatorType))) {
                 this.generatorType = null;
+            }
         }
     }
 
@@ -133,8 +134,9 @@ public class DbKeyGenerator implements CayenneMapEntry, 
XMLSerializable, Seriali
         this.generatorName = generatorName;
         if (this.generatorName != null) {
             this.generatorName = this.generatorName.trim();
-            if (this.generatorName.length() == 0)
+            if (this.generatorName.length() == 0) {
                 this.generatorName = null;
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
index d4f7d54..e631156 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
@@ -64,13 +64,14 @@ class PathComponentIterator implements 
Iterator<PathComponent<Attribute, Relatio
         Attribute attr = currentEntity.getAttribute(pathComp);
         if (attr != null) {
             // do a sanity check...
-            if (toks.hasMoreTokens())
+            if (toks.hasMoreTokens()) {
                 throw new ExpressionException(
                         "Attribute must be the last component of the path: '"
                                 + pathComp
                                 + "'.",
                         path,
                         null);
+            }
 
             return new AttributePathComponent<Attribute, Relationship>(attr);
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
index cd5235f..fe4382b 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
@@ -30,6 +30,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * A builder that constructs Cayenne queries from abstract configuration 
information
  * defined in cayenne-data-map*.dtd. This abstract builder supports values 
declared in the
@@ -189,7 +191,7 @@ public class QueryDescriptorLoader {
     }
 
     public void setQualifier(String qualifier) {
-        if (qualifier == null || qualifier.trim().length() == 0) {
+        if (qualifier == null || isBlank(qualifier.trim())) {
             this.qualifier = null;
         }
         else {
@@ -210,7 +212,7 @@ public class QueryDescriptorLoader {
             orderings = new ArrayList<>();
         }
 
-        if (path != null && path.trim().length() == 0) {
+        if (path != null && isBlank(path.trim())) {
             path = null;
         }
         boolean isDescending = "true".equalsIgnoreCase(descending);
@@ -233,7 +235,7 @@ public class QueryDescriptorLoader {
     }
 
     public void addPrefetch(String path) {
-        if (path == null || (path != null && path.trim().length() == 0)) {
+        if (path == null || (path != null && isBlank(path.trim()))) {
             // throw??
             return;
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java 
b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
index ca9db48..d16fbae 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
@@ -462,7 +462,7 @@ public class ColumnSelect<T> extends FluentSelect<T> {
     @SuppressWarnings("unchecked")
     public ColumnSelect<Object[]> columns(Collection<Property<?>> properties) {
         if (properties == null){
-            throw new NullPointerException("properties is null");
+            throw new IllegalArgumentException("properties is null");
         }
         if (properties.isEmpty()) {
             throw new IllegalArgumentException("properties must contain at 
least one element");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java 
b/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
index b58d11c..7c430eb 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
@@ -54,7 +54,7 @@ public class DeleteBatchQuery extends BatchQuery {
         super(dbEntity, qualifierAttributes, batchCapacity);
 
         if (nullQualifierNames == null) {
-            throw new NullPointerException("Null 'nullQualifierNames'");
+            throw new IllegalArgumentException("Null 'nullQualifierNames'");
         }
 
         this.nullQualifierNames = nullQualifierNames;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java 
b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
index 96968c5..ddbe32f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
@@ -69,7 +69,7 @@ public class ObjectIdQuery extends IndirectQuery {
      */
     public ObjectIdQuery(ObjectId objectId, boolean fetchingDataRows, int 
cachePolicy) {
         if (objectId == null) {
-            throw new NullPointerException("Null objectID");
+            throw new IllegalArgumentException("Null objectID");
         }
 
         this.objectId = objectId;

Reply via email to