From 3c6d895d6496b19eb808e90e5e3752954825c04b Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Wed, 21 Nov 2012 10:32:52 -0500 Subject: [PATCH] Bug 394735: NPE when parallelizationNumber is missing, modified patch from Mohamed Hussein --- .../managedbuilder/internal/core/Builder.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) 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 86129eac8bb..9378bdf1988 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 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider 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;