You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/02/02 13:07:41 UTC

[07/11] cayenne git commit: Code-checkers, omd, checkstyle and code-coverage

Code-checkers, omd, checkstyle and code-coverage


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

Branch: refs/heads/master
Commit: 0b01512b8e72abe136d1b55e96c5be48de87eca5
Parents: ea745fd
Author: Arseni Bulatski <an...@gmail.com>
Authored: Fri Jan 26 15:22:15 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Fri Jan 26 15:22:15 2018 +0300

----------------------------------------------------------------------
 build-tools/cayenne-checkers/pom.xml            |   9 +-
 .../src/main/resources/cayenne-checkstyle.xml   |  82 ++++++
 .../src/main/resources/cayenne-pmd.xml          | 295 +++++++++++++++++++
 build-tools/cayenne-coverage/pom.xml            | 125 --------
 cayenne-checkstyle.xml                          |  82 ------
 cayenne-pmd.xml                                 | 295 -------------------
 .../java/org/apache/cayenne/BaseContext.java    |   6 +-
 .../java/org/apache/cayenne/BaseDataObject.java |   2 +-
 .../org/apache/cayenne/access/DataContext.java  |   4 +-
 .../access/DataDomainLegacyQueryAction.java     |   2 +-
 .../cayenne/access/DataDomainQueryAction.java   |   2 +-
 .../cayenne/access/DataDomainSyncBucket.java    |   2 +-
 .../access/jdbc/DistinctResultIterator.java     |   4 +-
 .../access/jdbc/LimitResultIterator.java        |   2 +-
 .../access/translator/ejbql/EJBQLTableId.java   |   2 +-
 .../cayenne/access/types/ExtendedTypeMap.java   |   2 +-
 .../cayenne/ashwood/AshwoodEntitySorter.java    |   4 +-
 .../DefaultConfigurationNameMapper.java         |   4 +-
 .../server/DefaultDbAdapterFactory.java         |   2 +-
 .../xml/XMLDataChannelDescriptorLoader.java     |   2 +-
 .../cayenne/datasource/DriverDataSource.java    |   2 +-
 .../java/org/apache/cayenne/exp/Expression.java |   2 +-
 .../apache/cayenne/exp/ExpressionFactory.java   |   6 +-
 .../apache/cayenne/graph/ChildDiffLoader.java   |   2 +-
 .../java/org/apache/cayenne/map/DataMap.java    |  18 +-
 .../org/apache/cayenne/query/ColumnSelect.java  |   2 +-
 .../apache/cayenne/query/DeleteBatchQuery.java  |   2 +-
 .../org/apache/cayenne/query/ObjectIdQuery.java |   2 +-
 .../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 +-
 .../reflect/LifecycleCallbackRegistry.java      |   2 +-
 .../cayenne/reflect/PersistentDescriptor.java   |   2 +-
 .../cayenne/reflect/PropertyAccessor.java       |   2 +-
 .../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 +-
 .../ConcurrentLinkedHashMap.java                |   2 +-
 .../validation/BeanValidationFailure.java       |   2 +-
 .../apache/cayenne/util/WeakValueMapTest.java   |   4 +-
 pom.xml                                         | 223 +++++++-------
 45 files changed, 546 insertions(+), 679 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/build-tools/cayenne-checkers/pom.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/pom.xml b/build-tools/cayenne-checkers/pom.xml
index 5d88b5b..6e2c2d3 100644
--- a/build-tools/cayenne-checkers/pom.xml
+++ b/build-tools/cayenne-checkers/pom.xml
@@ -20,14 +20,9 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <groupId>org.apache.cayenne.build-tools</groupId>
-        <artifactId>build-tools-parent</artifactId>
-        <version>4.1.M2-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
+    <groupId>org.apache.cayenne.build-tools</groupId>
     <artifactId>cayenne-checkers</artifactId>
+    <version>4.1.M2-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <name>cayenne-checkers: Cayenne Code Checkers</name>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
new file mode 100644
index 0000000..90587cb
--- /dev/null
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+        "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"><!-- Generated by Sonar -->
+<module name="Checker">
+    <module name="SuppressionCommentFilter"/>
+    <module name="TreeWalker">
+        <module name="FileContentsHolder"/>
+        <module name="CyclomaticComplexity">
+            <property name="severity" value="error"/>
+            <property name="max" value="15"/>
+        </module>
+        <module name="MethodLength">
+            <property name="severity" value="warning"/>
+            <property name="max" value="200"/>
+        </module>
+        <module name="IllegalCatch">
+            <property name="severity" value="warning"/>
+        </module>
+
+        <module name="FallThrough">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="EqualsHashCode">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="MissingSwitchDefault">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ExecutableStatementCount">
+            <property name="severity" value="error"/>
+        </module>
+        <module name="CovariantEquals">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ConstantName">
+            <property name="severity" value="info"/>
+            <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger|log)$"/>
+        </module>
+        <module name="IllegalThrows">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ArrayTypeStyle">
+            <property name="severity" value="info"/>
+        </module>
+        <module name="EqualsAvoidNull">
+            <property name="severity" value="warning"/>
+            <property name="ignoreEqualsIgnoreCase" value="false"/>
+        </module>
+        <module name="AvoidNestedBlocks">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="MissingDeprecated">
+            <property name="severity" value="info"/>
+        </module>
+        <module name="DefaultComesLast">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="BooleanExpressionComplexity">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="EmptyBlock">
+            <property name="severity" value="warning"/>
+        </module>
+    </module>
+</module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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
new file mode 100644
index 0000000..de950e7
--- /dev/null
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  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>
+  <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
+    <priority>2</priority>
+    <properties>
+      <property name="reportLevel" value="30" />
+    </properties>
+  </rule>
+  <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
+    <priority>3</priority>
+  </rule>
+  <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/codesize.xml/ExcessiveClassLength">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
+    <priority>3</priority>
+  </rule>
+  <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/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/BrokenNullCheck">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/MethodNamingConventions">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/ShortMethodName">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
+    <priority>3</priority>
+  </rule>
+
+  <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/TooManyMethods">
+    <priority>3</priority>
+    <properties>
+      <property name="maxmethods" value="30" />
+    </properties>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/LongInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
+    <priority>3</priority>
+  </rule>
+  <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/basic.xml/MisplacedNullCheck">
+    <priority>1</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
+    <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/logging-java.xml/SystemPrintln">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/controversial.xml/AssignmentInOperand">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/optimizations.xml/AddEmptyString">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/clone.xml/ProperCloneImplementation">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidThreadGroup">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingGenericException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidLosingExceptionInformation">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/BadComparison">
+    <priority>3</priority>
+  </rule>
+  <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/empty.xml/EmptyStatementNotInLoop">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strings.xml/StringToString">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/CloseResource">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException">
+    <priority>3</priority>
+  </rule>
+</ruleset>
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/build-tools/cayenne-coverage/pom.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-coverage/pom.xml b/build-tools/cayenne-coverage/pom.xml
deleted file mode 100644
index 6a4a51b..0000000
--- a/build-tools/cayenne-coverage/pom.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>build-tools-parent</artifactId>
-        <groupId>org.apache.cayenne.build-tools</groupId>
-        <version>4.0.M2-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>cayenne-coverage</artifactId>
-    <name>cayenne-coverage</name>
-
-    <properties>
-        <cayenne.version>${parent.version}</cayenne.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-server</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-di</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-crypto</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne.plugins</groupId>
-            <artifactId>cayenne-maven-plugin</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-ant</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>extract</id>
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>unpack-dependencies</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${basedir}/target/classes</outputDirectory>
-                            <includeGroupIds>org.apache.cayenne,org.apache.cayenne.plugins,org.apache.cayenne.modeler</includeGroupIds>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco.version}</version>
-                <executions>
-                    <execution>
-                        <id>aggregate-jacoco-ut.exec</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>merge</goal>
-                        </goals>
-                        <configuration>
-                            <fileSets>
-                                <fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
-                                    <directory>${basedir}/../..</directory>
-                                    <includes>
-                                        <include>**/*.exec</include>
-                                    </includes>
-                                </fileSet>
-                            </fileSets>
-                            <destFile>${build.directory}/coverage-reports/jacoco-ut.exec</destFile>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>post-unit-test</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                        <configuration>
-                            <!-- Sets the path to the file which contains the execution data. -->
-                            <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
-                            <!-- Sets the output directory for the code coverage report. -->
-                            <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-checkstyle.xml
----------------------------------------------------------------------
diff --git a/cayenne-checkstyle.xml b/cayenne-checkstyle.xml
deleted file mode 100644
index 90587cb..0000000
--- a/cayenne-checkstyle.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  -->
-<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
-        "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"><!-- Generated by Sonar -->
-<module name="Checker">
-    <module name="SuppressionCommentFilter"/>
-    <module name="TreeWalker">
-        <module name="FileContentsHolder"/>
-        <module name="CyclomaticComplexity">
-            <property name="severity" value="error"/>
-            <property name="max" value="15"/>
-        </module>
-        <module name="MethodLength">
-            <property name="severity" value="warning"/>
-            <property name="max" value="200"/>
-        </module>
-        <module name="IllegalCatch">
-            <property name="severity" value="warning"/>
-        </module>
-
-        <module name="FallThrough">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="EqualsHashCode">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="MissingSwitchDefault">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ExecutableStatementCount">
-            <property name="severity" value="error"/>
-        </module>
-        <module name="CovariantEquals">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ConstantName">
-            <property name="severity" value="info"/>
-            <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger|log)$"/>
-        </module>
-        <module name="IllegalThrows">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ArrayTypeStyle">
-            <property name="severity" value="info"/>
-        </module>
-        <module name="EqualsAvoidNull">
-            <property name="severity" value="warning"/>
-            <property name="ignoreEqualsIgnoreCase" value="false"/>
-        </module>
-        <module name="AvoidNestedBlocks">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="MissingDeprecated">
-            <property name="severity" value="info"/>
-        </module>
-        <module name="DefaultComesLast">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="BooleanExpressionComplexity">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="EmptyBlock">
-            <property name="severity" value="warning"/>
-        </module>
-    </module>
-</module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/cayenne-pmd.xml b/cayenne-pmd.xml
deleted file mode 100644
index de950e7..0000000
--- a/cayenne-pmd.xml
+++ /dev/null
@@ -1,295 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  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>
-  <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
-    <priority>2</priority>
-    <properties>
-      <property name="reportLevel" value="30" />
-    </properties>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
-    <priority>3</priority>
-  </rule>
-  <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/codesize.xml/ExcessiveClassLength">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
-    <priority>3</priority>
-  </rule>
-  <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/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/BrokenNullCheck">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/MethodNamingConventions">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/ShortMethodName">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
-    <priority>3</priority>
-  </rule>
-
-  <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/TooManyMethods">
-    <priority>3</priority>
-    <properties>
-      <property name="maxmethods" value="30" />
-    </properties>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/LongInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
-    <priority>3</priority>
-  </rule>
-  <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/basic.xml/MisplacedNullCheck">
-    <priority>1</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
-    <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/logging-java.xml/SystemPrintln">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/AssignmentInOperand">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/optimizations.xml/AddEmptyString">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/clone.xml/ProperCloneImplementation">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidThreadGroup">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingGenericException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidLosingExceptionInformation">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/BadComparison">
-    <priority>3</priority>
-  </rule>
-  <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/empty.xml/EmptyStatementNotInLoop">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strings.xml/StringToString">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/CloseResource">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException">
-    <priority>3</priority>
-  </rule>
-</ruleset>
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 0d94f94..ac9cc7a 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 IllegalArgumentException("Null channel");
+			throw new NullPointerException("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 IllegalArgumentException("Null object argument");
+			throw new NullPointerException("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 IllegalArgumentException("Null collection of objects to invalidate");
+			throw new NullPointerException("Null collection of objects to invalidate");
 		}
 
 		if (!objects.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 5857edb..a12b1bb 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 IllegalArgumentException("Attempt to add null target DataObject.");
+            throw new NullPointerException("Attempt to add null target DataObject.");
         }
 
         willConnect(relName, value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 99ba355..27460d2 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 IllegalArgumentException("Null 'persistentClass'");
+            throw new NullPointerException("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 IllegalArgumentException("Can't register null object.");
+            throw new NullPointerException("Can't register null object.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity((Persistent) object);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 6ec5e43..7715c12 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 IllegalArgumentException("Null DataMap, can't determine DataNode.");
+            throw new NullPointerException("Null DataMap, can't determine DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 b005b90..a87de83 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 IllegalArgumentException("Null DataMap, can't determine DataNode.");
+            throw new NullPointerException("Null DataMap, can't determine DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 c5d98e6..7c25ab5 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 IllegalArgumentException("Entity must not be null.");
+            throw new NullPointerException("Entity must not be null.");
         }
 
         if (entity.isReadOnly()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 5393980..e6e5dab 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 IllegalArgumentException("Null wrapped iterator.");
+            throw new NullPointerException("Null wrapped iterator.");
         }
 
         if (defaultEntity == null) {
-            throw new IllegalArgumentException("Null defaultEntity.");
+            throw new NullPointerException("Null defaultEntity.");
         }
 
         this.delegate = delegate;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 da7d3e8..e2f03ce 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 IllegalArgumentException("Null delegate iterator.");
+            throw new NullPointerException("Null delegate iterator.");
         }
         this.delegate = delegate;
         this.offset = offset;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 485b989..a28d647 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 IllegalArgumentException("Null entityId");
+            throw new NullPointerException("Null entityId");
         }
 
         this.entityId = entityId;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 e2b869e..8d3d31b 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 IllegalArgumentException("Null className");
+			throw new NullPointerException("Null className");
 		}
 		return typeMap.get(className);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 1fa1b9e..c7775a5 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
@@ -369,11 +369,11 @@ public class AshwoodEntitySorter implements EntitySorter {
 				ComponentRecord rec2 = components.get(t2);
 
 				if(rec1 == null) {
-					throw new IllegalArgumentException("No record for DbEntity: " + t1);
+					throw new NullPointerException("No record for DbEntity: " + t1);
 				}
 
 				if(rec2 == null) {
-					throw new IllegalArgumentException("No record for DbEntity: " + t2);
+					throw new NullPointerException("No record for DbEntity: " + t2);
 				}
 
 				int index1 = rec1.index;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 d399b86..5e6a53d 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 IllegalArgumentException("Null DataChannelDescriptor name");
+			throw new NullPointerException("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 IllegalArgumentException("Null DataMap name");
+			throw new NullPointerException("Null DataMap name");
 		}
 
 		return name + DATA_MAP_SUFFIX;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 46ea16d..2287071 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 IllegalArgumentException("Null detectors list");
+			throw new NullPointerException("Null detectors list");
 		}
 
 		this.detectors = detectors;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 5a55447..1f3f6f1 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
@@ -117,7 +117,7 @@ public class XMLDataChannelDescriptorLoader implements DataChannelDescriptorLoad
 	public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource) throws ConfigurationException {
 
 		if (configurationResource == null) {
-			throw new IllegalArgumentException("Null configurationResource");
+			throw new NullPointerException("Null configurationResource");
 		}
 
 		URL configurationURL = configurationResource.getURL();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 33e8f9f..b5ccc5a 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 IllegalArgumentException("Null 'connectionUrl'");
+			throw new NullPointerException("Null 'connectionUrl'");
 		}
 
 		this.driver = driver;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 02a7ca5..ce2636f 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 IllegalArgumentException("Null Visitor.");
+			throw new NullPointerException("Null Visitor.");
 		}
 
 		traverse(null, visitor);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 7a27469..ec0b2ce 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
@@ -289,7 +289,7 @@ public class ExpressionFactory {
 	public static Expression matchAllExp(String path, Collection<?> values) {
 
 		if (values == null) {
-			throw new IllegalArgumentException("Null values collection");
+			throw new NullPointerException("Null values collection");
 		}
 
 		if (values.size() == 0) {
@@ -305,7 +305,7 @@ public class ExpressionFactory {
 	public static Expression matchAllExp(String path, Object... values) {
 
 		if (values == null) {
-			throw new IllegalArgumentException("Null values collection");
+			throw new NullPointerException("Null values collection");
 		}
 
 		if (values.length == 0) {
@@ -1325,7 +1325,7 @@ public class ExpressionFactory {
 	private static Expression fromString(String expressionString) {
 
 		if (expressionString == null) {
-			throw new IllegalArgumentException("Null expression string.");
+			throw new NullPointerException("Null expression string.");
 		}
 
 		// optimizing parser buffers per CAY-1667...

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 54ee014..4777fd3 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 IllegalArgumentException("Null entity name in id " + id);
+				throw new NullPointerException("Null entity name in id " + id);
 			}
 
 			ObjEntity entity = context.getEntityResolver().getObjEntity(id.getEntityName());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 64f5aff..f52f5b5 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 IllegalArgumentException("Can't add null query.");
+			throw new NullPointerException("Can't add null query.");
 		}
 
 		if (queryDescriptor.getName() == null) {
-			throw new IllegalArgumentException("Query name can't be null.");
+			throw new NullPointerException("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 IllegalArgumentException("Null embeddable");
+			throw new NullPointerException("Null embeddable");
 		}
 
 		if (embeddable.getClassName() == null) {
-			throw new IllegalArgumentException("Attempt to add Embeddable with no class name.");
+			throw new NullPointerException("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 IllegalArgumentException("Null result");
+			throw new NullPointerException("Null result");
 		}
 
 		if (result.getName() == null) {
-			throw new IllegalArgumentException("Attempt to add resultSetMapping with no name.");
+			throw new NullPointerException("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 IllegalArgumentException("Attempt to add ObjEntity with no name.");
+			throw new NullPointerException("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 IllegalArgumentException("Attempt to add DbEntity with no name.");
+			throw new NullPointerException("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 IllegalArgumentException("Attempt to add procedure with no name.");
+			throw new NullPointerException("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/0b01512b/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 d16fbae..ca9db48 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 IllegalArgumentException("properties is null");
+            throw new NullPointerException("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/0b01512b/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 7c430eb..b58d11c 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 IllegalArgumentException("Null 'nullQualifierNames'");
+            throw new NullPointerException("Null 'nullQualifierNames'");
         }
 
         this.nullQualifierNames = nullQualifierNames;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/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 ddbe32f..96968c5 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 IllegalArgumentException("Null objectID");
+            throw new NullPointerException("Null objectID");
         }
 
         this.objectId = objectId;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
index f398d4c..2f72e4e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
@@ -306,7 +306,7 @@ public class PrefetchTreeNode implements Serializable, XMLSerializable {
 	 */
 	public void merge(PrefetchTreeNode node) {
 		if (node == null) {
-			throw new IllegalArgumentException("Null node");
+			throw new NullPointerException("Null node");
 		}
 
 		PrefetchTreeNode start = node.getName() != null ? addPath(node.getName()) : this;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
index 5c4ec62..66c947d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
@@ -194,7 +194,7 @@ class SelectQueryMetadata extends BaseQueryMetadata {
 	 */
 	public void addPathSplitAliases(String path, String... aliases) {
 		if (aliases == null) {
-			throw new IllegalArgumentException("Null aliases");
+			throw new NullPointerException("Null aliases");
 		}
 
 		if (aliases.length == 0) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
index 3d9e8e9..8b44d86 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
@@ -69,7 +69,7 @@ public class UpdateBatchQuery extends BatchQuery {
         super(dbEntity, toDbAttributes(qualifierAttributes, updatedAttributes), batchCapacity);
 
         if (nullQualifierNames == null) {
-            throw new IllegalArgumentException("Null 'nullQualifierNames'");
+            throw new NullPointerException("Null 'nullQualifierNames'");
         }
 
         this.updatedAttributes = updatedAttributes;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
index e296d1c..f2c9879 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
@@ -62,7 +62,7 @@ public abstract class BaseToManyProperty extends BaseArcProperty implements
 
     public void addTarget(Object source, Object target, boolean setReverse) {
         if (target == null) {
-            throw new IllegalArgumentException("Attempt to add null object.");
+            throw new NullPointerException("Attempt to add null object.");
         }
 
         // TODO, Andrus, 2/9/2006 - CayenneDataObject differences:

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
index 1700f72..73992a6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
@@ -91,7 +91,7 @@ public class ClassDescriptorMap {
 
     public ClassDescriptor getDescriptor(String entityName) {
         if (entityName == null) {
-            throw new IllegalArgumentException("Null 'entityName'");
+            throw new NullPointerException("Null 'entityName'");
         }
 
         ClassDescriptor cached = descriptors.get(entityName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
index 31773bb..3b01d5e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
@@ -167,7 +167,7 @@ public class LifecycleCallbackRegistry {
 	 */
 	public void addListener(Object listener) {
 		if (listener == null) {
-			throw new IllegalArgumentException("Null listener");
+			throw new NullPointerException("Null listener");
 		}
 
 		Class<?> listenerType = listener.getClass();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
index d1497aa..548ea90 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
@@ -309,7 +309,7 @@ public class PersistentDescriptor implements ClassDescriptor {
 	 */
 	public Object createObject() {
 		if (objectClass == null) {
-			throw new IllegalArgumentException("Null objectClass. Descriptor wasn't initialized properly.");
+			throw new NullPointerException("Null objectClass. Descriptor wasn't initialized properly.");
 		}
 
 		try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
index 21f75e9..c9812cf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
@@ -29,7 +29,7 @@ public class PropertyAccessor implements Accessor {
 
     public PropertyAccessor(PropertyDescriptor property) {
         if (property == null) {
-            throw new IllegalArgumentException("Null property");
+            throw new NullPointerException("Null property");
         }
         this.property = property;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
index 49887d1..2a91499 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
@@ -46,7 +46,7 @@ class ValueHolderMapProperty extends ValueHolderToManyProperty implements
     public void addTarget(Object source, Object target, boolean setReverse) {
 
         if (target == null) {
-            throw new IllegalArgumentException("Attempt to add null object.");
+            throw new NullPointerException("Attempt to add null object.");
         }
 
         // Now do the rest of the normal handling (regardless of whether it was

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
index 9867a95..8bd3128 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
@@ -66,7 +66,7 @@ public class FilesystemResourceLocator implements ResourceLocator {
      */
     public FilesystemResourceLocator(Collection<File> roots) {
         if (roots == null) {
-            throw new IllegalArgumentException("Null roots");
+            throw new NullPointerException("Null roots");
         }
 
         init(roots.toArray(new File[roots.size()]));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
index d3035f9..99a91a4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
@@ -146,7 +146,7 @@ abstract class ReferenceMap<K, V, R extends Reference<V>> extends AbstractMap<K,
     @Override
     public V put(K key, V value) {
         if(value == null) {
-            throw new IllegalArgumentException("ReferenceMap can't contain null values");
+            throw new NullPointerException("ReferenceMap can't contain null values");
         }
         checkReferenceQueue();
         R refValue = newReference(value);
@@ -172,7 +172,7 @@ abstract class ReferenceMap<K, V, R extends Reference<V>> extends AbstractMap<K,
         checkReferenceQueue();
         for(Map.Entry<? extends K, ? extends V> entry : m.entrySet()) {
             if(entry.getValue() == null) {
-                throw new IllegalArgumentException("ReferenceMap can't contain null values");
+                throw new NullPointerException("ReferenceMap can't contain null values");
             }
             R value = newReference(entry.getValue());
             map.put(entry.getKey(), value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
index c07c4a4..2292caf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
@@ -75,7 +75,7 @@ class RegexUtil {
      */
     static String sqlPatternToRegex(String pattern) {
         if (pattern == null) {
-            throw new IllegalArgumentException("Null pattern.");
+            throw new NullPointerException("Null pattern.");
         }
 
         if (pattern.length() == 0) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
index 6654d4c..067e7cb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
@@ -46,11 +46,11 @@ public abstract class RelationshipFault {
 
     public RelationshipFault(Persistent relationshipOwner, String relationshipName) {
         if (relationshipOwner == null) {
-            throw new IllegalArgumentException("'relationshipOwner' can't be null.");
+            throw new NullPointerException("'relationshipOwner' can't be null.");
         }
 
         if (relationshipName == null) {
-            throw new IllegalArgumentException("'relationshipName' can't be null.");
+            throw new NullPointerException("'relationshipName' can't be null.");
         }
 
         this.relationshipOwner = relationshipOwner;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
index a76b35c..91f15f2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
@@ -258,7 +258,7 @@ public class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V> implements
     /** Asserts that the object is not null. */
     static void checkNotNull(Object o) {
         if (o == null) {
-            throw new IllegalArgumentException();
+            throw new NullPointerException();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
index 47e4784..6969b16 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
@@ -80,7 +80,7 @@ public class BeanValidationFailure extends SimpleValidationFailure {
 
     public static ValidationFailure validateMandatory(Object bean, String attribute) {
         if (bean == null) {
-            throw new IllegalArgumentException("Null bean.");
+            throw new NullPointerException("Null bean.");
         }
 
         try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
index 4aeced3..ace6579 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
@@ -205,13 +205,13 @@ public class WeakValueMapTest {
         }
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testPutNullValue() {
         Map<Object, Object> map = new WeakValueMap<>();
         map.put("1", null);
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testPutAllNullValue() {
 
         Map<Object, Object> values = new HashMap<>();