diff --git a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FileSystemComparator.java b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FileSystemComparator.java
index 364a356..18aa129 100644
--- a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FileSystemComparator.java
+++ b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FileSystemComparator.java
@@ -33,7 +33,7 @@
  */
 public class FileSystemComparator {
 
-	private class FileSummary {
+	private static class FileSummary {
 		boolean directory;
 		private String path;
 		private long size;
diff --git a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FussyProgressMonitor.java b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FussyProgressMonitor.java
index 201c0f6..1ccc3df 100644
--- a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FussyProgressMonitor.java
+++ b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/FussyProgressMonitor.java
@@ -27,7 +27,7 @@
  * you are testing.
  */
 public class FussyProgressMonitor extends TestProgressMonitor {
-	public class FussyProgressAssertionFailed extends AssertionFailedError {
+	public static class FussyProgressAssertionFailed extends AssertionFailedError {
 		/**
 		 * All serializable objects should have a stable serialVersionUID
 		 */
diff --git a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/ProcessController.java b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/ProcessController.java
index 459769a..51066bf 100644
--- a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/ProcessController.java
+++ b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/ProcessController.java
@@ -26,7 +26,7 @@
 	 * Thrown when a process being executed exceeds the maximum amount
 	 * of time allowed for it to complete.
 	 */
-	public class TimeOutException extends Exception {
+	public static class TimeOutException extends Exception {
 		/**
 		 * All serializable objects should have a stable serialVersionUID
 		 */
diff --git a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SessionTestRunner.java b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SessionTestRunner.java
index 17dd459..e834686 100644
--- a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SessionTestRunner.java
+++ b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SessionTestRunner.java
@@ -38,7 +38,7 @@
  */
 public class SessionTestRunner {
 
-	class Result {
+	static class Result {
 		final static int ERROR = 2;
 		final static int FAILURE = 1;
 		final static int SUCCESS = 0;
diff --git a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java
index d3a9cca..a5a1837 100644
--- a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java
+++ b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java
@@ -34,7 +34,7 @@
 import org.xml.sax.SAXException;
 
 public class SetupManager {
-	public class SetupException extends Exception {
+	public static class SetupException extends Exception {
 		/**
 		 * All serializable objects should have a stable serialVersionUID
 		 */
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/EclipsePreferencesTest.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/EclipsePreferencesTest.java
index 0eae798..23e590a 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/EclipsePreferencesTest.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/EclipsePreferencesTest.java
@@ -32,7 +32,7 @@
  */
 public class EclipsePreferencesTest extends RuntimeTest {
 
-	class NodeTracer implements IEclipsePreferences.INodeChangeListener {
+	static class NodeTracer implements IEclipsePreferences.INodeChangeListener {
 		StringBuilder log = new StringBuilder();
 
 		@Override
@@ -54,7 +54,7 @@
 		}
 	}
 
-	class PreferenceTracer implements IEclipsePreferences.IPreferenceChangeListener {
+	static class PreferenceTracer implements IEclipsePreferences.IPreferenceChangeListener {
 		public StringBuilder log = new StringBuilder();
 
 		private String typeCode(Object value) {
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/PreferencesServiceTest.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/PreferencesServiceTest.java
index 6afa820..e7ff91b 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/PreferencesServiceTest.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/preferences/PreferencesServiceTest.java
@@ -29,7 +29,7 @@
  */
 public class PreferencesServiceTest extends RuntimeTest {
 
-	class ExportVerifier {
+	static class ExportVerifier {
 
 		private IEclipsePreferences node;
 		private ByteArrayOutputStream output;
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/LogSerializationTest.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/LogSerializationTest.java
index 8d65a28..219d2ba 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/LogSerializationTest.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/LogSerializationTest.java
@@ -21,7 +21,7 @@
 
 public class LogSerializationTest extends RuntimeTest {
 
-	class TestException extends Exception {
+	static class TestException extends Exception {
 		private static final long serialVersionUID = 1L;
 
 		TestException() {
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/PlatformLogReader.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/PlatformLogReader.java
index b7db1e7..2983eb1 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/PlatformLogReader.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/PlatformLogReader.java
@@ -139,7 +139,7 @@
 	/**
 	 * A reconsituted exception that only contains a stack trace and a message.
 	 */
-	class FakeException extends Throwable {
+	static class FakeException extends Throwable {
 		/**
 		 * All serializable objects should have a stable serialVersionUID
 		 */
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferenceForwarderTest.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferenceForwarderTest.java
index c3dc4c5..88f7d90 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferenceForwarderTest.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferenceForwarderTest.java
@@ -32,7 +32,7 @@
 @Deprecated
 public class PreferenceForwarderTest extends RuntimeTest {
 
-	class Tracer implements Preferences.IPropertyChangeListener {
+	static class Tracer implements Preferences.IPropertyChangeListener {
 		public StringBuilder log = new StringBuilder();
 
 		private String typeCode(Object value) {
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferencesTest.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferencesTest.java
index db0a880..884ecf4 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferencesTest.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/PreferencesTest.java
@@ -25,7 +25,7 @@
 @Deprecated
 public class PreferencesTest extends RuntimeTest {
 
-	class Tracer implements Preferences.IPropertyChangeListener {
+	static class Tracer implements Preferences.IPropertyChangeListener {
 		public StringBuilder log = new StringBuilder();
 
 		private String typeCode(Object value) {
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_316839.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_316839.java
index 47cb4f7..91002b2 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_316839.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_316839.java
@@ -57,7 +57,7 @@
 		waitForCompletion(interruptingJob);
 	}
 
-	public class TestJob extends Job {
+	public static class TestJob extends Job {
 		public TestJob(String name) {
 			super(name);
 		}
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_478634.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_478634.java
index af5a7ef..7a6e544 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_478634.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/Bug_478634.java
@@ -107,7 +107,7 @@
 
 	}
 
-	class ThreadJobListener extends JobChangeAdapter {
+	static class ThreadJobListener extends JobChangeAdapter {
 
 		private boolean beginRule = false;
 
diff --git a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/RunAndTrackTest.java b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/RunAndTrackTest.java
index c4d2c52..66aa84d 100644
--- a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/RunAndTrackTest.java
+++ b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/RunAndTrackTest.java
@@ -67,7 +67,7 @@
 
 	}
 
-	private class ActivePartLookupFunction extends ContextFunction {
+	private static class ActivePartLookupFunction extends ContextFunction {
 
 		@Override
 		public Object compute(IEclipseContext context, String contextKey) {
diff --git a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ServiceContextTest.java b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ServiceContextTest.java
index 906be28..84e6ce8 100644
--- a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ServiceContextTest.java
+++ b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/contexts/inject/ServiceContextTest.java
@@ -46,7 +46,7 @@
  * Tests for contexts used in OSGi services.
  */
 public class ServiceContextTest {
-	class Crayon {
+	static class Crayon {
 		@Inject
 		IPaletteService palette;
 
@@ -69,7 +69,7 @@
 		public Color getColor();
 	}
 
-	class PaletteImpl implements IPaletteService {
+	static class PaletteImpl implements IPaletteService {
 		private final Color color;
 
 		PaletteImpl(Color color) {
diff --git a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/di/InvokeTestMissingAnnotation.java b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/di/InvokeTestMissingAnnotation.java
index 66b8daa..805bb33 100644
--- a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/di/InvokeTestMissingAnnotation.java
+++ b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/di/InvokeTestMissingAnnotation.java
@@ -29,7 +29,7 @@
 	/**
 	 * Class to invoke for the test
 	 */
-	class TestSuperclass {
+	static class TestSuperclass {
 		public int saveCount = 0;
 
 		// @Execute annotation missing on purpose
diff --git a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ComputedValueLimitationTest.java b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ComputedValueLimitationTest.java
index f1b9f70..cfbaf57 100644
--- a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ComputedValueLimitationTest.java
+++ b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ComputedValueLimitationTest.java
@@ -42,7 +42,7 @@
 	/**
 	 * Used as an injection target
 	 */
-	public class UserObject {
+	public static class UserObject {
 
 		private String txt;
 
@@ -63,7 +63,7 @@
 		}
 	}
 
-	public class CalcColor extends ContextFunction {
+	public static class CalcColor extends ContextFunction {
 
 		@Override
 		public Object compute(IEclipseContext context, String contextKey) {
@@ -72,7 +72,7 @@
 		}
 	}
 
-	public class Time extends ContextFunction {
+	public static class Time extends ContextFunction {
 		@Override
 		public Object compute(IEclipseContext context, String contextKey) {
 			context.get(String.valueOf(System.currentTimeMillis()));
diff --git a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ContextExample.java b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ContextExample.java
index efdd404..5e1b461 100644
--- a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ContextExample.java
+++ b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/manual/ContextExample.java
@@ -31,7 +31,7 @@
  *
  */
 public class ContextExample {
-	class Crayon {
+	static class Crayon {
 		@Inject
 		IPaletteService pallete;
 
@@ -51,7 +51,7 @@
 		public Color getColor();
 	}
 
-	class PaletteImpl implements IPaletteService {
+	static class PaletteImpl implements IPaletteService {
 		private final Color color;
 
 		PaletteImpl(Color color) {
diff --git a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/nls/MessageRegistryTest.java b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/nls/MessageRegistryTest.java
index f42f39e..b284ca6 100644
--- a/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/nls/MessageRegistryTest.java
+++ b/tests/org.eclipse.e4.core.tests/src/org/eclipse/e4/core/internal/tests/nls/MessageRegistryTest.java
@@ -37,7 +37,7 @@
 		BundleMessagesRegistry registry;
 	}
 
-	class TestLocalizableObject {
+	static class TestLocalizableObject {
 		private String localizableValue;
 
 		public String getLocalizableValue() {
