From 04001e1055de4b7358efbe78957cfdb6cb131791 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 24 Feb 2020 14:14:34 +0100 Subject: [PATCH] =?UTF-8?q?IDEMPIERE-4189=20Fix=20potential=20NPE=20in=20g?= =?UTF-8?q?enerate=20shipment=20-=20based=20on=20patch=20from=20Martin=20S?= =?UTF-8?q?ch=C3=B6nbeck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/org/compiere/process/InOutGenerate.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java b/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java index c3dba63b85..6b0bc97153 100644 --- a/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java +++ b/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java @@ -257,14 +257,11 @@ public class InOutGenerate extends SvrProcess BigDecimal onHand = Env.ZERO; BigDecimal toDeliver = line.getQtyOrdered() .subtract(line.getQtyDelivered()); - MProduct product = line.getProduct(); // Nothing to Deliver - if (product != null && toDeliver.signum() == 0) - continue; - - // or it's a charge - Bug#: 1603966 - if (line.getC_Charge_ID()!=0 && toDeliver.signum() == 0) + if (toDeliver.signum() == 0) continue; + + MProduct product = line.getProduct(); // Check / adjust for confirmations BigDecimal unconfirmedShippedQty = Env.ZERO; @@ -298,6 +295,11 @@ public class InOutGenerate extends SvrProcess createLine (order, line, toDeliver, null, false); continue; } + if (product == null) + { + // code must never arrive here - but for safety against NPE + continue; + } // Stored Product String MMPolicy = product.getMMPolicy();