Bug 580183 - Update to Eclipse Platform 4.24 causes random test failures
diff --git a/org.eclipse.handly.examples.basic.ui.tests/src/org/eclipse/handly/internal/examples/basic/ui/model/FooModelTest.java b/org.eclipse.handly.examples.basic.ui.tests/src/org/eclipse/handly/internal/examples/basic/ui/model/FooModelTest.java
index 5f30ddf..09299c0 100644
--- a/org.eclipse.handly.examples.basic.ui.tests/src/org/eclipse/handly/internal/examples/basic/ui/model/FooModelTest.java
+++ b/org.eclipse.handly.examples.basic.ui.tests/src/org/eclipse/handly/internal/examples/basic/ui/model/FooModelTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2014, 2016 1C-Soft LLC and others.
+ * Copyright (c) 2014, 2022 1C-Soft LLC and others.
  *
  * This program and the accompanying materials are made available under
  * the terms of the Eclipse Public License 2.0 which is available at
@@ -50,7 +50,7 @@
         IFooFile fooFile = fooFiles[0];
         assertEquals("test.foo", fooFile.getName());
         IResource[] nonFooResources = fooProject.getNonFooResources();
-        assertEquals(3, nonFooResources.length);
+        assertEquals(4, nonFooResources.length);
 
         IFooProject fooProject2 = fooModel.getFooProject("Test002");
         assertFalse(fooProject2.exists());
@@ -65,7 +65,7 @@
         IFooFile fooFile2 = fooFiles2[0];
         assertEquals("test.foo", fooFile2.getName());
         nonFooResources = fooProject2.getNonFooResources();
-        assertEquals(1, nonFooResources.length);
+        assertEquals(2, nonFooResources.length);
 
         fooFile.getFile().delete(true, null);
         assertFalse(fooFile.exists());
diff --git a/org.eclipse.handly.examples.basic.ui.tests/workspace/SimpleProject/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.basic.ui.tests/workspace/SimpleProject/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.basic.ui.tests/workspace/SimpleProject/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.basic.ui.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.basic.ui.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.basic.ui.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.basic.ui.tests/workspace/Test002/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.basic.ui.tests/workspace/Test002/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.basic.ui.tests/workspace/Test002/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/src/org/eclipse/handly/internal/examples/jmodel/JavaProjectTest.java b/org.eclipse.handly.examples.jmodel.tests/src/org/eclipse/handly/internal/examples/jmodel/JavaProjectTest.java
index 6389b2f..7569057 100644
--- a/org.eclipse.handly.examples.jmodel.tests/src/org/eclipse/handly/internal/examples/jmodel/JavaProjectTest.java
+++ b/org.eclipse.handly.examples.jmodel.tests/src/org/eclipse/handly/internal/examples/jmodel/JavaProjectTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2015 1C-Soft LLC.
+ * Copyright (c) 2015, 2022 1C-Soft LLC.
  *
  * This program and the accompanying materials are made available under
  * the terms of the Eclipse Public License 2.0 which is available at
@@ -43,8 +43,11 @@
         assertEquals(0, roots.length);
 
         IResource[] nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(1, nonJavaResources.length);
-        assertEquals(project.getFile(".project"), nonJavaResources[0]);
+        assertEquals(2, nonJavaResources.length);
+        assertTrue(Arrays.asList(nonJavaResources).contains(project.getFile(
+            ".project")));
+        assertTrue(Arrays.asList(nonJavaResources).contains(project.getFolder(
+            ".settings")));
     }
 
     public void test002() throws Exception
@@ -56,11 +59,13 @@
         assertEquals(0, roots.length);
 
         IResource[] nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(2, nonJavaResources.length);
+        assertEquals(3, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(project.getFile(
             ".project")));
         assertTrue(Arrays.asList(nonJavaResources).contains(project.getFile(
             ".classpath")));
+        assertTrue(Arrays.asList(nonJavaResources).contains(project.getFolder(
+            ".settings")));
     }
 
     public void test003() throws Exception
@@ -76,12 +81,14 @@
         assertTrue(srcRoot.exists());
 
         IResource[] nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(4, nonJavaResources.length);
+        assertEquals(5, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(project.getFile(
             ".project")));
         assertTrue(Arrays.asList(nonJavaResources).contains(project.getFile(
             ".classpath")));
         assertTrue(Arrays.asList(nonJavaResources).contains(project.getFolder(
+            ".settings")));
+        assertTrue(Arrays.asList(nonJavaResources).contains(project.getFolder(
             "abc")));
         assertTrue(Arrays.asList(nonJavaResources).contains(project.getFolder(
             "bin")));
@@ -104,11 +111,13 @@
         assertTrue(srcGenRoot.exists());
 
         IResource[] nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(3, nonJavaResources.length);
+        assertEquals(4, nonJavaResources.length);
         IFile projectFile = project.getFile(".project");
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         IFile classpathFile = project.getFile(".classpath");
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        IFolder settingsFolder = project.getFolder(".settings");
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         IFolder binFolder = project.getFolder("bin");
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
 
@@ -122,9 +131,10 @@
         assertFalse(srcGenRoot.exists());
 
         nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(3, nonJavaResources.length);
+        assertEquals(4, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
 
         // (re-)create src-gen
@@ -138,9 +148,10 @@
         assertTrue(srcGenRoot.exists());
 
         nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(3, nonJavaResources.length);
+        assertEquals(4, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
 
         // remove src-gen from classpath
@@ -154,9 +165,10 @@
         assertFalse(srcGenRoot.exists());
 
         nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(4, nonJavaResources.length);
+        assertEquals(5, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(
             srcGenRoot.getResource()));
@@ -173,9 +185,10 @@
         assertTrue(srcRoot.exists());
 
         nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(3, nonJavaResources.length);
+        assertEquals(4, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
 
         // delete src-gen (again)
@@ -188,9 +201,10 @@
         assertFalse(srcGenRoot.exists());
 
         nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(3, nonJavaResources.length);
+        assertEquals(4, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
 
         // (re-)create src-gen and check it is still the first entry
@@ -204,9 +218,10 @@
         assertTrue(srcRoot.exists());
 
         nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(3, nonJavaResources.length);
+        assertEquals(4, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
 
         // move src-gen
@@ -220,9 +235,10 @@
         assertFalse(srcGenRoot.exists());
 
         nonJavaResources = javaProject.getNonJavaResources();
-        assertEquals(4, nonJavaResources.length);
+        assertEquals(5, nonJavaResources.length);
         assertTrue(Arrays.asList(nonJavaResources).contains(projectFile));
         assertTrue(Arrays.asList(nonJavaResources).contains(classpathFile));
+        assertTrue(Arrays.asList(nonJavaResources).contains(settingsFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(binFolder));
         assertTrue(Arrays.asList(nonJavaResources).contains(otherFolder));
     }
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/SimpleProject/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/SimpleProject/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/SimpleProject/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test002/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test002/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test002/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test003/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test003/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test003/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test004/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test004/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test004/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test005/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test005/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test005/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test006/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test006/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test006/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test007/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test007/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test007/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test008/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test008/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test008/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test009/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test009/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test009/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.examples.jmodel.tests/workspace/Test010/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.examples.jmodel.tests/workspace/Test010/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.examples.jmodel.tests/workspace/Test010/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.handly.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs b/org.eclipse.handly.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.handly.tests/workspace/Test001/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8