[572022] Tomcat cannot be started from Eclipse under Java 16
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/AddTomcat.md b/plugins/org.eclipse.jst.server.tomcat.core/AddTomcat.md
index b4f5ccc..8fb3898 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/AddTomcat.md
+++ b/plugins/org.eclipse.jst.server.tomcat.core/AddTomcat.md
@@ -41,5 +41,5 @@
     2. Add a new **fragment** to the **org.eclipse.wst.server.ui.wizardFragments** extension.
 
 ### Determining values for installable runtimes:
-    1. For ostype linux: filecount = tar tvzf apache-tomcat-8.0.53.tar.gz|grep -v '\/$'|wc -l
-    1. For ostype win32: filecount = unzip -l apache-tomcat-8.0.36-windows-x86.zip|grep -v '\/$'|grep 'apache-tomcat-8.0.36/'|wc -l
+    1. For ostype win32:  filecount = unzip -l apache-tomcat-10.0.6.zip|grep -v '\/$'|grep 'apache-tomcat-'|grep -v ^Archive|wc -l
+    1. For other ostypes: filecount = tar tvzf apache-tomcat-10.0.6.tar.gz|grep -v '\/$'|wc -l
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml b/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml
index dd455ec..016dba0 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml
+++ b/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml
@@ -780,34 +780,34 @@
     <runtime
         id="org.eclipse.jst.server.tomcat.runtime.90"
         licenseUrl="http://www.apache.org/licenses/LICENSE-2.0.txt"
-        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.43/bin/apache-tomcat-9.0.43.tar.gz"
-        archivePath="apache-tomcat-9.0.43"
-        archiveSize="11483588"
+        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz"
+        archivePath="apache-tomcat-9.0.46"
+        archiveSize="11496577"
         fileCount="639"
         os="linux,macosx"/>
     <runtime
         id="org.eclipse.jst.server.tomcat.runtime.90"
         licenseUrl="http://www.apache.org/licenses/LICENSE-2.0.txt"
-        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.43/bin/apache-tomcat-9.0.43.zip"
-        archivePath="apache-tomcat-9.0.43"
-        archiveSize="12022644"
+        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.zip"
+        archivePath="apache-tomcat-9.0.46"
+        archiveSize="12037488"
         fileCount="639"
         os="win32"/>
 
     <runtime
         id="org.eclipse.jst.server.tomcat.runtime.100"
         licenseUrl="http://www.apache.org/licenses/LICENSE-2.0.txt"
-        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-10/v10.0.4/bin/apache-tomcat-10.0.4.tar.gz"
-        archivePath="apache-tomcat-10.0.4"
-        archiveSize="11811329"
+        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz"
+        archivePath="apache-tomcat-10.0.6"
+        archiveSize="11822805"
         fileCount="642"
         os="linux,macosx"/>
     <runtime
         id="org.eclipse.jst.server.tomcat.runtime.100"
         licenseUrl="http://www.apache.org/licenses/LICENSE-2.0.txt"
-        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-10/v10.0.4/bin/apache-tomcat-10.0.4.zip"
-        archivePath="apache-tomcat-10.0.4"
-        archiveSize="12356103"
+        archiveUrl="http://archive.apache.org/dist/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.zip"
+        archivePath="apache-tomcat-10.0.6"
+        archiveSize="12367163"
         fileCount="642"
         os="win32"/>
   </extension>
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java
index 34c8862..500af23 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2018 IBM Corporation and others.
+ * Copyright (c) 2003, 2021 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -52,6 +52,12 @@
 		"-Dcom.sun.management.jmxremote.ssl=",
 		"-Dcom.sun.management.jmxremote.authenticate="
 	};
+	private static final String[] ALLOW_REFLECTION_ARGS = new String[] {
+				"--add-opens=java.base/java.lang=ALL-UNNAMED",
+				"--add-opens=java.base/java.io=ALL-UNNAMED",
+				"--add-opens=java.base/java.util=ALL-UNNAMED",
+				"--add-opens=java.base/java.util.concurrent=ALL-UNNAMED",
+				"--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"};
 
 	// the thread used to ping the server to check for startup
 	protected transient PingThread ping = null;
@@ -955,6 +961,10 @@
 						workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, mergedVMArguments);
 					}
 				}
+				if (version != null && version_num >= 9) {
+					mergedVMArguments = mergeArguments(mergedVMArguments, ALLOW_REFLECTION_ARGS, null, false);
+					workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, mergedVMArguments);
+				}
 			}
 		}