diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/AliasManager.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/AliasManager.java
index 5d0ebda..8d8c943 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/AliasManager.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/AliasManager.java
@@ -55,7 +55,7 @@
  *  - when linked resources are created, deleted, or moved.
  */
 public class AliasManager implements IManager, ILifecycleListener, IResourceChangeListener {
-	public class AddToCollectionDoit implements Doit {
+	public static class AddToCollectionDoit implements Doit {
 		Collection<IResource> collection;
 
 		@Override
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ContentDescriptionManager.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ContentDescriptionManager.java
index ee80ac6..2f757dc 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ContentDescriptionManager.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ContentDescriptionManager.java
@@ -128,7 +128,7 @@
 	 * An input stream that only opens the file if bytes are actually requested.
 	 * @see #readDescription(File)
 	 */
-	class LazyFileInputStream extends InputStream {
+	static class LazyFileInputStream extends InputStream {
 		private InputStream actual;
 		private IFileStore target;
 
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/WorkManager.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/WorkManager.java
index fb90411..b3c29f4 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/WorkManager.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/WorkManager.java
@@ -47,7 +47,7 @@
 	 * threads that own the workspace lock must never block trying to acquire a
 	 * resource rule.
 	 */
-	class NotifyRule implements ISchedulingRule {
+	static class NotifyRule implements ISchedulingRule {
 		@Override
 		public boolean contains(ISchedulingRule rule) {
 			return (rule instanceof IResource) || rule.getClass().equals(NotifyRule.class);
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/watson/ElementTree.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/watson/ElementTree.java
index 4753667..8fdda4d 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/watson/ElementTree.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/watson/ElementTree.java
@@ -82,7 +82,7 @@
 	protected DeltaDataTree tree;
 	protected IElementTreeData userData;
 
-	private class ChildIDsCache {
+	private static class ChildIDsCache {
 		ChildIDsCache(IPath path, IPath[] childPaths) {
 			this.path = path;
 			this.childPaths = childPaths;
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java
index 42e30c6..0dc3e36 100644
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java
+++ b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java
@@ -49,7 +49,7 @@
 		// empty impl
 	}
 
-	class FileStateEditorInput implements IStorageEditorInput {
+	static class FileStateEditorInput implements IStorageEditorInput {
 		private IFileState state;
 
 		public FileStateEditorInput(IFileState state) {
@@ -95,7 +95,7 @@
 		}
 	}
 
-	class Node {
+	static class Node {
 
 		Node parent;
 		String name;
@@ -201,7 +201,7 @@
 		}
 	}
 
-	class ViewLabelProvider extends LabelProvider {
+	static class ViewLabelProvider extends LabelProvider {
 
 		@Override
 		public String getText(Object obj) {
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java
index 8244a52..2cf0410 100644
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java
+++ b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java
@@ -34,7 +34,7 @@
  * resource change events.
  */
 public class ResourceChangeView extends SpyView implements IResourceChangeListener {
-	class DeltaNode implements IAdaptable {
+	static class DeltaNode implements IAdaptable {
 		private ArrayList<DeltaNode> children;
 		private int deltaFlags = -1;
 		private int deltaKind = -1;
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/markers/MarkerView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/markers/MarkerView.java
index c605821..8840cc4 100644
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/markers/MarkerView.java
+++ b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/markers/MarkerView.java
@@ -71,7 +71,7 @@
 	protected SelectionProvider selectionProvider;
 	protected MarkerViewPropertySheetPage propertyPage;
 
-	class SelectionProvider implements ISelectionProvider {
+	static class SelectionProvider implements ISelectionProvider {
 		private List<ISelectionChangedListener> listeners = new ArrayList<>();
 		private ISelection selection;
 
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/localstore/HistoryStoreTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/localstore/HistoryStoreTest.java
index f6b88c3..86fad71 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/localstore/HistoryStoreTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/localstore/HistoryStoreTest.java
@@ -31,7 +31,7 @@
 
 public class HistoryStoreTest extends ResourceTest {
 
-	class LogListenerVerifier implements ILogListener {
+	static class LogListenerVerifier implements ILogListener {
 		List<Integer> actual = new ArrayList<>();
 		List<Integer> expected = new ArrayList<>();
 
@@ -79,7 +79,7 @@
 		}
 	}
 
-	class VerificationFailedException extends Exception {
+	static class VerificationFailedException extends Exception {
 		/**
 		 * All serializable objects should have a stable serialVersionUID
 		 */
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/properties/PropertyManagerTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/properties/PropertyManagerTest.java
index 3eac161..f049c8d 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/properties/PropertyManagerTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/properties/PropertyManagerTest.java
@@ -24,7 +24,7 @@
 
 public class PropertyManagerTest extends LocalStoreTest {
 
-	public class StoredProperty {
+	public static class StoredProperty {
 		protected QualifiedName name = null;
 		protected String value = null;
 
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/resources/ProjectPreferencesTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/resources/ProjectPreferencesTest.java
index 8080a82..317922b 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/resources/ProjectPreferencesTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/resources/ProjectPreferencesTest.java
@@ -35,7 +35,7 @@
 	private static final String DIR_NAME = ".settings";
 	private static final String FILE_EXTENSION = "prefs";
 
-	class Tracer implements IEclipsePreferences.IPreferenceChangeListener {
+	static class Tracer implements IEclipsePreferences.IPreferenceChangeListener {
 		public StringBuilder log = new StringBuilder();
 
 		private String typeCode(Object value) {
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IPathVariableTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IPathVariableTest.java
index ebb2ca3..d3916e1 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IPathVariableTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IPathVariableTest.java
@@ -45,7 +45,7 @@
 		manager = project.getPathVariableManager();
 	}
 
-	class PathVariableChangeVerifier implements IPathVariableChangeListener {
+	static class PathVariableChangeVerifier implements IPathVariableChangeListener {
 		class VerificationFailedException extends Exception {
 			/**
 			 * All serializable objects should have a stable serialVersionUID
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceChangeListenerTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceChangeListenerTest.java
index 00d6969..0f406fb 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceChangeListenerTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceChangeListenerTest.java
@@ -31,7 +31,7 @@
  * that correct deltas are received for all types of workspace changes.
  */
 public class IResourceChangeListenerTest extends ResourceTest {
-	class SimpleListener implements IResourceChangeListener {
+	static class SimpleListener implements IResourceChangeListener {
 		Object source;
 		int trigger;
 
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/SpecificContextTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/SpecificContextTest.java
index 2e2dd9c..a619501 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/SpecificContextTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/SpecificContextTest.java
@@ -38,7 +38,7 @@
 	/**
 	 * A minimal scope implementation.
 	 */
-	private class SingleNodeScope implements IScopeContext {
+	private static class SingleNodeScope implements IScopeContext {
 		private final IEclipsePreferences node;
 
 		SingleNodeScope() {
