From de657f8f13b6fbb26b16b32b12846c2585219def Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Mon, 22 Aug 2016 17:39:32 +0200 Subject: [PATCH] Please cherry-pick: - maybe I missunderstood this whole thing ... ;-( --- .../database/BasePizzaDatabaseBean.java | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/src/org/mxchange/pizzaaplication/database/BasePizzaDatabaseBean.java b/src/org/mxchange/pizzaaplication/database/BasePizzaDatabaseBean.java index 526fc15..0d18b85 100644 --- a/src/org/mxchange/pizzaaplication/database/BasePizzaDatabaseBean.java +++ b/src/org/mxchange/pizzaaplication/database/BasePizzaDatabaseBean.java @@ -133,8 +133,14 @@ public abstract class BasePizzaDatabaseBean extends BaseDatabaseBean { // Fetch it from entity manager DialableMobileNumber fetchedNumber = this.getEntityManager().getReference(MobileNumber.class, contact.getContactMobileNumber().getPhoneId()); - // Copy mobile number - contact.setContactMobileNumber(this.getDetached(contact.getContactMobileNumber(), fetchedNumber)); + // Get detached number + DialableMobileNumber detachedNumber = this.getDetached(contact.getContactMobileNumber(), fetchedNumber); + + // Is it null? + if (detachedNumber instanceof DialableMobileNumber) { + // Copy mobile number + contact.setContactMobileNumber(detachedNumber); + } } // Debug message @@ -145,8 +151,14 @@ public abstract class BasePizzaDatabaseBean extends BaseDatabaseBean { // Fetch it from entity manager DialableLandLineNumber fetchedNumber = this.getEntityManager().getReference(LandLineNumber.class, contact.getContactLandLineNumber().getPhoneId()); - // Copy land-line number - contact.setContactLandLineNumber(this.getDetached(contact.getContactLandLineNumber(), fetchedNumber)); + // Get detached number + DialableLandLineNumber detachedNumber = this.getDetached(contact.getContactLandLineNumber(), fetchedNumber); + + // Is it null? + if (detachedNumber instanceof DialableLandLineNumber) { + // Copy mobile number + contact.setContactLandLineNumber(detachedNumber); + } } // Debug message @@ -157,8 +169,14 @@ public abstract class BasePizzaDatabaseBean extends BaseDatabaseBean { // Fetch it from entity manager DialableFaxNumber fetchedNumber = this.getEntityManager().getReference(FaxNumber.class, contact.getContactFaxNumber().getPhoneId()); - // Copy fax number - contact.setContactFaxNumber(this.getDetached(contact.getContactFaxNumber(), fetchedNumber)); + // Get detached number + DialableFaxNumber detachedNumber = this.getDetached(contact.getContactFaxNumber(), fetchedNumber); + + // Is it null? + if (detachedNumber instanceof DialableFaxNumber) { + // Copy mobile number + contact.setContactFaxNumber(detachedNumber); + } } // Trace message @@ -252,8 +270,8 @@ public abstract class BasePizzaDatabaseBean extends BaseDatabaseBean { // Debug message this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.getDetached: foundNumber={1}", this.getClass().getSimpleName(), foundNumber)); //NOI18N - // Default is fetched number - DialableMobileNumber detachedNumber = fetchedNumber; + // Default is null + DialableMobileNumber detachedNumber = null; // Is there a difference? if (!PhoneUtils.isSameMobileNumber(mobileNumber, fetchedNumber)) { @@ -284,6 +302,9 @@ public abstract class BasePizzaDatabaseBean extends BaseDatabaseBean { if (null == landLineNumber) { // Throw NPE throw new NullPointerException("landLineNumber is null"); //NOI18N + } else if (null == fetchedNumber) { + // Throw NPE again + throw new NullPointerException("fetchedNumber is null"); //NOI18N } else if (fetchedNumber.getPhoneId() == null) { // ..and again throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N @@ -330,6 +351,9 @@ public abstract class BasePizzaDatabaseBean extends BaseDatabaseBean { if (null == faxNumber) { // Throw NPE throw new NullPointerException("faxNumber is null"); //NOI18N + } else if (null == fetchedNumber) { + // Throw NPE again + throw new NullPointerException("fetchedNumber is null"); //NOI18N } else if (fetchedNumber.getPhoneId() == null) { // ..and again throw new NullPointerException("fetchedNumber.phoneId is null"); //NOI18N -- 2.39.5