Bug 568299 - changed default to allow early exit from inner loop

If one config requested rebuild, running following configs in same round
only wastes resources. We skip the rest of the current build round and
start again with the first config to be built, unless  a system property
is set to keep the legacy behavior.

The flag can be set via system property
-Dorg.eclipse.core.resources.disallowEarlyInnerBuildLoopExit and by
default early exit is allowed.

Change-Id: I763f51310240c786e443890c9aef6b205ca0076e
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.resources/+/181910
Tested-by: Platform Bot <platform-bot@eclipse.org>
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildManager.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildManager.java
index d4bc31a..ff81887 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildManager.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildManager.java
@@ -133,10 +133,10 @@
 	/**
 	 * {@code true} if we can exit inner build loop cycle early after
 	 * rebuildRequested is set by one build config and before following build
-	 * configs are executed. Default is {@code false} to keep legacy behavior.
+	 * configs are executed. Default is {@code true}.
 	 */
 	private static final boolean EARLY_EXIT_FROM_INNER_BUILD_LOOP_ALLOWED = System
-			.getProperty("org.eclipse.core.resources.allowEarlyInnerBuildLoopExit") != null; //$NON-NLS-1$
+			.getProperty("org.eclipse.core.resources.disallowEarlyInnerBuildLoopExit") == null; //$NON-NLS-1$
 
 	//used for the build cycle looping mechanism
 	private boolean rebuildRequested = false;