Bug 394735: NPE when parallelizationNumber is missing, modified patch from Mohamed Hussein <mohamed_hussein@mentor.com> Change-Id: I4cb60f33f6fc405ab9110668d30e18bd708532d7 Reviewed-on: https://git.eclipse.org/r/9887 Reviewed-by: Doug Schaefer <dschaefer@qnx.com> IP-Clean: Doug Schaefer <dschaefer@qnx.com> Tested-by: Doug Schaefer <dschaefer@qnx.com>
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java index 009f729..d695a83 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java
@@ -632,26 +632,27 @@ private int decodeParallelizationNumber(String value) { int parallelNumber = -1; - if (VALUE_OPTIMAL.equals(value)) { + if (value == null || VALUE_OPTIMAL.equals(value)) { parallelNumber = -getOptimalParallelJobNum(); } else if (VALUE_UNLIMITED.equals(value)) { parallelNumber = UNLIMITED_JOBS; } else { try { parallelNumber = Integer.decode(value); + if (parallelNumber <= 0) { + // compatibility with legacy representation - it was that inconsistent + if (isInternalBuilder()) { + // "optimal" for Internal Builder + parallelNumber = -getOptimalParallelJobNum(); + } else { + // unlimited for External Builder + parallelNumber = UNLIMITED_JOBS; + } + } } catch (NumberFormatException e) { ManagedBuilderCorePlugin.log(e); - parallelNumber = getOptimalParallelJobNum(); - } - if (parallelNumber <= 0) { - // compatibility with legacy representation - it was that inconsistent - if (isInternalBuilder()) { - // "optimal" for Internal Builder - parallelNumber = -getOptimalParallelJobNum(); - } else { - // unlimited for External Builder - parallelNumber = UNLIMITED_JOBS; - } + // default to "optimal" if not recognized + parallelNumber = -getOptimalParallelJobNum(); } } return parallelNumber;