diff --git a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/BaseTestCase.java b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/BaseTestCase.java
index 3ec153b..ac8705a 100644
--- a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/BaseTestCase.java
+++ b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/BaseTestCase.java
@@ -1,9 +1,3 @@
-/*
- * Created on Nov 24, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
 package org.eclipse.wst.common.tests;
 
 import java.util.ArrayList;
diff --git a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/CommonTestsPlugin.java b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/CommonTestsPlugin.java
index c41276b..3daf6cf 100644
--- a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/CommonTestsPlugin.java
+++ b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/CommonTestsPlugin.java
@@ -12,9 +12,6 @@
 
 /**
  * @author jsholl
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
  */
 public class CommonTestsPlugin extends Plugin {
 	public static String PLUGIN_ID = "org.eclipse.wst.common.tests";
@@ -28,7 +25,6 @@
 		super(descriptor);
 		instance = this;
 		dataModelVerifierExt = descriptor.getExtensionPoint("DataModelVerifier");
-		// TODO Auto-generated constructor stub
 	}
 
 }
diff --git a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/DataModelVerifierList.java b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/DataModelVerifierList.java
index dc822e0..f386588 100644
--- a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/DataModelVerifierList.java
+++ b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/DataModelVerifierList.java
@@ -1,18 +1,9 @@
-/*
- * Created on Dec 6, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
 package org.eclipse.wst.common.tests;
 
 import java.util.Map;
 
 /**
  * @author eteration
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 public abstract class DataModelVerifierList {
 	
diff --git a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PlatformModuleURLTest.java b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PlatformModuleURLTest.java
index bfbbdb3..cc97f6c 100644
--- a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PlatformModuleURLTest.java
+++ b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PlatformModuleURLTest.java
@@ -1,9 +1,3 @@
-/*
- * Created on Jan 21, 2005
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
 package org.eclipse.wst.common.tests;
 
 import java.net.URL;
diff --git a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PostBuildListener.java b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PostBuildListener.java
index 3db4657..03f4192 100644
--- a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PostBuildListener.java
+++ b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/PostBuildListener.java
@@ -1,9 +1,3 @@
-/*
- * Created on Oct 20, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
 package org.eclipse.wst.common.tests;
 
 import org.eclipse.core.resources.IResourceChangeEvent;
@@ -11,9 +5,6 @@
 
 /**
  * @author nirav
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 public class PostBuildListener implements IResourceChangeListener {
     private boolean buildComplete = false;
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditAPITests.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditAPITests.java
index 1d2d420..615063d 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditAPITests.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditAPITests.java
@@ -1,9 +1,3 @@
-/*
- * Created on Mar 31, 2005
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
 package org.eclipse.wst.common.frameworks.artifactedit.tests;
 
 
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditTest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditTest.java
index b79ad90..5639119 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditTest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/artifactedit/tests/ArtifactEditTest.java
@@ -124,7 +124,6 @@
 			url = new URL(url.toString() + zipFilePath);
 
 		} catch (MalformedURLException e1) {
-			// TODO Auto-generated catch block
 			e1.printStackTrace();
 		}
 
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java
index daac19d..1aa1cc5 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java
@@ -98,7 +98,6 @@
 	}
 
 	protected int getNextSeed() {
-		// TODO Auto-generated method stub
 		return seed++;
 	}
 
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualComponentAPITest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualComponentAPITest.java
index 2ead453..4cad961 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualComponentAPITest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualComponentAPITest.java
@@ -21,7 +21,6 @@
 
 	public IVirtualComponentAPITest(String name) {
 		super(name);
-		// TODO Auto-generated constructor stub
 	}
 
 	public void testGetName() {
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualFileAPITest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualFileAPITest.java
index efdb4e0..6c4c311 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualFileAPITest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/IVirtualFileAPITest.java
@@ -31,7 +31,6 @@
 		
 	}
 	protected void setUp() throws Exception {
-		// TODO Auto-generated method stub
 		super.setUp();
 		IVirtualFolder rootFolder = component.getRootFolder();
 		testFile1 = rootFolder.getFile(TESTDATA_FOLDER_RUNTIME_PATH); 
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ModuleCoreNatureAPITest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ModuleCoreNatureAPITest.java
index 057cce4..2de44db 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ModuleCoreNatureAPITest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ModuleCoreNatureAPITest.java
@@ -161,7 +161,6 @@
 		try {
 			project.getDescription().setNatureIds(new String[0]);
 		} catch (CoreException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 		ModuleCoreNature.addModuleCoreNatureIfNecessary(project, new NullProgressMonitor());
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/StructureEditStressTest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/StructureEditStressTest.java
index 56e01fc..b70a541 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/StructureEditStressTest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/StructureEditStressTest.java
@@ -99,10 +99,8 @@
 		try {
 			Platform.getJobManager().join(EDITMODEL_STRESS,null);
 		} catch (OperationCanceledException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 		
@@ -134,10 +132,8 @@
 		try {
 			Platform.getJobManager().join(EDITMODEL_STRESS,null);
 		} catch (OperationCanceledException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 		
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/A.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/A.java
index 299090b..5a20194 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/A.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/A.java
@@ -24,7 +24,6 @@
 	}
 
 	public String getID() {
-		// TODO Auto-generated method stub
 		return null;
 	}
 }
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/B.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/B.java
index 9b785a0..05a5f99 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/B.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/B.java
@@ -24,7 +24,6 @@
 	}
 
 	public String getID() {
-		// TODO Auto-generated method stub
 		return null;
 	}
 }
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/C.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/C.java
index 8c9bff3..6030857 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/C.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/C.java
@@ -24,7 +24,6 @@
 	}
 
 	public String getID() {
-		// TODO Auto-generated method stub
 		return null;
 	}
 }
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/DataModelAPITests.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/DataModelAPITests.java
index 75cab7d..1c5b7cc 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/DataModelAPITests.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/DataModelAPITests.java
@@ -18,9 +18,6 @@
 
 /**
  * @author jsholl
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Style - Code Templates
  */
 public class DataModelAPITests extends TestSuite {
 
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/NestingTest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/NestingTest.java
index 57519e5..59989c5 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/NestingTest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/datamodel/tests/NestingTest.java
@@ -21,9 +21,6 @@
 
 /**
  * @author jsholl
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Style - Code Templates
  */
 public class NestingTest extends TestCase {
 
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/tests/bvt/AutomatedBVTEclipse.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/tests/bvt/AutomatedBVTEclipse.java
index 2f1623e..b784a89 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/tests/bvt/AutomatedBVTEclipse.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/tests/bvt/AutomatedBVTEclipse.java
@@ -14,9 +14,6 @@
 
 /**
  * @author jsholl
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
  */
 public class AutomatedBVTEclipse extends AutomatedBVT {
 	
@@ -27,7 +24,6 @@
         try {
         	AutomatedBVT.baseDirectory = Platform.asLocalURL(url).getFile() + "TestData"+ java.io.File.separatorChar;
 		} catch (IOException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 	}
