diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
index 8c0f056..91ff2aa 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
@@ -63,7 +63,7 @@
     IMedicalInsurance medIns2 = null;
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
index d147706..59ff787 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
@@ -62,7 +62,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
index 7fc81bb..b0e2fc9 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
@@ -64,7 +64,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
index 647aad2..0a60f57 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
@@ -62,7 +62,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
index 61b46d1..bbf6051 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
@@ -64,7 +64,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
index 3992675..d943b3a 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
@@ -61,7 +61,7 @@
     }
         
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java
index f9ab671..562dad1 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java
@@ -64,7 +64,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java
index 3db25b6..7a5d57f 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java
@@ -61,7 +61,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java b/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java
index dd55c27..64c4e7c 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java
@@ -153,7 +153,7 @@
 
     /**
      * Remove an employee from the department.
-     * @param emp The employee to remove from the department.
+     * @param index The index of the employee to remove from the department.
      */
     public void removeEmployee(int index) {
         employees.remove(index);
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java b/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java
index 831d6e4..dfdfa18 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java
@@ -145,7 +145,8 @@
 
     /**
      * Add an role to the department.
-     * @param emp The role to add to the department.
+     * @param role The role to add to the department.
+     * @param emp The employee in the role
      */
     public void addRole(String role, Employee emp) {
         roles.put(role, emp);
@@ -153,7 +154,7 @@
 
     /**
      * Remove an role from the department.
-     * @param emp The role to remove from the department.
+     * @param key The key of the role to remove from the department.
      */
     public void removeRole(String key) {
         roles.remove(key);
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResult.java b/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResult.java
index f34d674..bf80005 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResult.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResult.java
@@ -19,7 +19,6 @@
 
 import java.util.Arrays;
 
-import org.apache.jdo.tck.JDO_Test;
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Department;
 import org.apache.jdo.tck.pc.company.Employee;
@@ -216,7 +215,7 @@
     }
 
     /**
-     * @see JDO_Test#localSetUp()
+     * @see QueryTest#localSetUp()
      */
     protected void localSetUp() {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java b/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
index 80c73e8..e18c9c3 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
@@ -272,7 +272,7 @@
                 expectedResult[index]);
     }
     /**
-     * @see JDO_Test#localSetUp()
+     * @see QueryTest#localSetUp()
      */
     protected void localSetUp() {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
diff --git a/tck2-legacy/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java b/tck2-legacy/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
index b1efe64..d385a3e 100644
--- a/tck2-legacy/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
+++ b/tck2-legacy/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
@@ -166,7 +166,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see QueryTest#localSetUp()
      */
     protected void localSetUp() {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
index 8c0f056..91ff2aa 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1AllRelationships.java
@@ -63,7 +63,7 @@
     IMedicalInsurance medIns2 = null;
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
index d147706..59ff787 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1To1NoRelationships.java
@@ -62,7 +62,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
index 7fc81bb..b0e2fc9 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
@@ -64,7 +64,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
index 647aad2..0a60f57 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyNoRelationships.java
@@ -62,7 +62,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
index 61b46d1..bbf6051 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
@@ -64,7 +64,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
index 3992675..d943b3a 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyNoRelationships.java
@@ -61,7 +61,7 @@
     }
         
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java
index f9ab671..562dad1 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1To1Test.java
@@ -64,7 +64,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java
index 3db25b6..7a5d57f 100644
--- a/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java
+++ b/tck2/src/java/org/apache/jdo/tck/mapping/RelationshipNegative1ToManyTest.java
@@ -61,7 +61,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see AbstractRelationshipTest#localSetUp()
      */
     protected void localSetUp() {
         super.localSetUp();
diff --git a/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedJPA/JPAAppPhoneNumber.java b/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedJPA/JPAAppPhoneNumber.java
index 39dbb0e..c115e42 100644
--- a/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedJPA/JPAAppPhoneNumber.java
+++ b/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedJPA/JPAAppPhoneNumber.java
@@ -49,8 +49,7 @@
     /**
      * Construct a <code>JPAAppPhoneNumber</code> instance.
      * 
-     * @param phonenumid The phone number identifier.
-     * @param person The person id
+     * @param person The person instance
      * @param type The type of the phone for this number
      * @param phoneNumber The phone number
      */
@@ -106,7 +105,7 @@
 
     /**
      * Set the phone number.
-     * @param phone number The phone number.
+     * @param phoneNumber The phone number.
      */
     public void setPhoneNumber(String phoneNumber) {
         this.phoneNumber = phoneNumber;
diff --git a/tck2/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java b/tck2/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java
index dd55c27..64c4e7c 100644
--- a/tck2/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java
+++ b/tck2/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java
@@ -153,7 +153,7 @@
 
     /**
      * Remove an employee from the department.
-     * @param emp The employee to remove from the department.
+     * @param index The index of the employee to remove from the department.
      */
     public void removeEmployee(int index) {
         employees.remove(index);
diff --git a/tck2/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java b/tck2/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java
index 831d6e4..e00b234 100644
--- a/tck2/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java
+++ b/tck2/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java
@@ -145,7 +145,8 @@
 
     /**
      * Add an role to the department.
-     * @param emp The role to add to the department.
+     * @param role The role to add to the department.
+     * @param emp The Employee in the role.
      */
     public void addRole(String role, Employee emp) {
         roles.put(role, emp);
@@ -153,7 +154,7 @@
 
     /**
      * Remove an role from the department.
-     * @param emp The role to remove from the department.
+     * @param key The key of the role to remove from the department.
      */
     public void removeRole(String key) {
         roles.remove(key);
diff --git a/tck2/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java b/tck2/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
index 80c73e8..e18c9c3 100644
--- a/tck2/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
+++ b/tck2/src/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
@@ -272,7 +272,7 @@
                 expectedResult[index]);
     }
     /**
-     * @see JDO_Test#localSetUp()
+     * @see QueryTest#localSetUp()
      */
     protected void localSetUp() {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
diff --git a/tck2/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java b/tck2/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
index b1efe64..d385a3e 100644
--- a/tck2/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
+++ b/tck2/src/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
@@ -166,7 +166,7 @@
     }
     
     /**
-     * @see JDO_Test#localSetUp()
+     * @see QueryTest#localSetUp()
      */
     protected void localSetUp() {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
