Merge remote-tracking branch 'origin/BETA_JAVA_12'
diff --git a/org.eclipse.pde.build.tests/pom.xml b/org.eclipse.pde.build.tests/pom.xml
index ff9a688..0ce709b 100644
--- a/org.eclipse.pde.build.tests/pom.xml
+++ b/org.eclipse.pde.build.tests/pom.xml
@@ -14,7 +14,7 @@
   <parent>
     <artifactId>eclipse.pde.build</artifactId>
     <groupId>eclipse.pde.build</groupId>
-    <version>4.11.0-SNAPSHOT</version>
+    <version>4.12.0-SNAPSHOT</version>
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.build.tests</artifactId>
diff --git a/org.eclipse.pde.build/META-INF/MANIFEST.MF b/org.eclipse.pde.build/META-INF/MANIFEST.MF
index 2a16c6f..a86fe0b 100644
--- a/org.eclipse.pde.build/META-INF/MANIFEST.MF
+++ b/org.eclipse.pde.build/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.pde.build;singleton:=true
-Bundle-Version: 3.10.300.qualifier
+Bundle-Version: 3.10.400.qualifier
 Bundle-ClassPath: pdebuild.jar
 Bundle-Activator: org.eclipse.pde.internal.build.BuildActivator
 Bundle-Vendor: %providerName
diff --git a/org.eclipse.pde.build/pom.xml b/org.eclipse.pde.build/pom.xml
index 5d622d9..7ad6699 100644
--- a/org.eclipse.pde.build/pom.xml
+++ b/org.eclipse.pde.build/pom.xml
@@ -14,10 +14,10 @@
   <parent>
     <artifactId>eclipse.pde.build</artifactId>
     <groupId>eclipse.pde.build</groupId>
-    <version>4.11.0-SNAPSHOT</version>
+    <version>4.12.0-SNAPSHOT</version>
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.build</artifactId>
-  <version>3.10.300-SNAPSHOT</version>
+  <version>3.10.400-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/build/IAntScript.java b/org.eclipse.pde.build/src/org/eclipse/pde/build/IAntScript.java
index b2efb07..9f92f5a 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/build/IAntScript.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/build/IAntScript.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -71,29 +71,29 @@
 	public void printAttribute(String name, String value, boolean mandatory);
 
 	/**
-	 * Print tagName as an xml begin tag (<code>&lt;tagName&gt;<code>).
+	 * Print tagName as an xml begin tag (<code>&lt;tagName&gt;</code>).
 	 * @param tagName the tag to print.
 	 */
 	public void printStartTag(String tagName);
 
 	/**
-	 * Print tagName as an xml begin tag with attributes (<code>&lt;tagName [attributes...] &gt;<code>).
-	 * @param tag
-	 * @param attributes
+	 * Print tagName as an xml begin tag with attributes (<code>&lt;tagName [attributes...] &gt;</code>).
+	 * @param tag the tag to print.
+	 * @param attributes attributes for the tag.
 	 * @since 3.6
 	 */
 	public void printStartTag(String tag, Map<String, String> attributes);
 
 	/**
-	 * Print tagName as an xml end tag (<code>&lt;/tagName&gt;<code>).
+	 * Print tagName as an xml end tag (<code>&lt;/tagName&gt;</code>).
 	 * @param endTag the tag to print.
 	 */
 	public void printEndTag(String endTag);
 
 	/**
-	 * Print an xml element with attributes (<code>&lt;tagName [attributes...] /&gt;<code>).
-	 * @param tag
-	 * @param attributes
+	 * Print an xml element with attributes (<code>&lt;tagName [attributes...] /&gt;</code>).
+	 * @param tag the tag to print
+	 * @param attributes the attributes for the tag
 	 * @since 3.6
 	 */
 	public void printElement(String tag, Map<String, String> attributes);
@@ -140,9 +140,9 @@
 	public void printEchoTask(String file, String message, String level);
 
 	/**
-	 * Print the beginning of a <a href="http://ant.apache.org/manual/Tasks/macrodef.html">macro definition</a>
-	 * @param macroName
-	 * @param attributes
+	 * Print the beginning of a <a href="http://ant.apache.org/manual/Tasks/macrodef.html">macro definition</a>.
+	 * @param macroName the name of the macro
+	 * @param attributes the attributes of the macro
 	 * @since 3.6
 	 */
 	public void printMacroDef(String macroName, List<String> attributes);
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/build/IFetchFactory.java b/org.eclipse.pde.build/src/org/eclipse/pde/build/IFetchFactory.java
index bfd3875..89baeac 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/build/IFetchFactory.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/build/IFetchFactory.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2004, 2013 Eclipse Foundation and others.
+ * Copyright (c) 2004, 2019 Eclipse Foundation and others.
  *
  *   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -32,7 +32,7 @@
  * The format of <code>elementType</code> and <code>elementName</code> is fixed.
  * The factories specify the value of <code>repositoryTag</code> and the format of the <code>repositoryDetails</code>.
  * <code>repositoryTag</code> and <code>repositoryDetails</code> becomes defacto APIs. 
- * </br>
+ * <br>
  * <code>repositoryTag</code> should match the factory id used when declaring the factory extension. For example, for the CVS the value is "CVS". 
  * <code>repositoryDetails</code> should contains enough details to allow the factory to generate a fetch script retrieving the element.
   * </p>
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/AbstractScriptGenerator.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/AbstractScriptGenerator.java
index 7f51a80..d1ccfa6 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/AbstractScriptGenerator.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/AbstractScriptGenerator.java
@@ -127,9 +127,8 @@
 	}
 
 	public static void setConfigInfo(String spec) throws CoreException {
-		configInfos.clear();
 		String[] configs = Utils.getArrayFromStringWithBlank(spec, "&"); //$NON-NLS-1$
-		configInfos = new ArrayList<>(configs.length);
+		List<Config> infos = new ArrayList<>(configs.length);
 		String[] os = new String[configs.length];
 		String[] ws = new String[configs.length];
 		String[] archs = new String[configs.length];
@@ -140,10 +139,11 @@
 				throw new CoreException(error);
 			}
 			Config aConfig = new Config(configs[i]);
-			if (aConfig.equals(Config.genericConfig()))
-				configInfos.add(Config.genericConfig());
-			else
-				configInfos.add(aConfig);
+			if (aConfig.equals(Config.genericConfig())) {
+				infos.add(Config.genericConfig());
+			} else {
+				infos.add(aConfig);
+			}
 
 			// create a list of all ws, os and arch to feed the SiteManager
 			os[i] = aConfig.getOs();
@@ -153,6 +153,7 @@
 		SiteManager.setOS(Utils.getStringFromArray(os, ",")); //$NON-NLS-1$
 		SiteManager.setWS(Utils.getStringFromArray(ws, ",")); //$NON-NLS-1$
 		SiteManager.setArch(Utils.getStringFromArray(archs, ",")); //$NON-NLS-1$
+		configInfos = infos;
 	}
 
 	public void setWorkingDirectory(String location) {
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/FeatureGenerator.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/FeatureGenerator.java
index cecda1f..597deda 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/FeatureGenerator.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/FeatureGenerator.java
@@ -374,7 +374,7 @@
 			writer.startTag(FEATURE, parameters, true);
 
 			boolean fragment = false;
-			List<Config> configs = getConfigInfos();
+			List<Config> configs = new ArrayList<>(getConfigInfos());
 			//we do the generic config first as a special case
 			configs.remove(Config.genericConfig());
 			Iterator<Config> configIterator = configs.iterator();
diff --git a/pom.xml b/pom.xml
index 6aeaf86..dbcb7c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.eclipse</groupId>
     <artifactId>eclipse-platform-parent</artifactId>
-    <version>4.11.0-SNAPSHOT</version>
+    <version>4.12.0-SNAPSHOT</version>
     <relativePath>../eclipse-platform-parent</relativePath>
   </parent>