You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Anil Patel <an...@hotwaxmedia.com> on 2009/06/08 07:07:02 UTC
Fwd: svn commit: r781752 - in /ofbiz/trunk/applications/party: data/PartyTypeData.xml src/org/ofbiz/party/party/PartyServices.java
Hans,
Mods in this commit are causing checkout process to break. I am
getting following error.
2009-06-08 00:48:37,975 (http-0.0.0.0-8443-3)
[ CallService.java:247:ERROR]
---- exception report
----------------------------------------------------------
Exception: org.ofbiz.service.GenericServiceException
Message: Service [updatePerson] target threw an unexpected exception
(null)
---- cause
---------------------------------------------------------------------
Exception: java.lang.NullPointerException
Message: null
---- stack trace
---------------------------------------------------------------
java.lang.NullPointerException
org.ofbiz.party.party.PartyServices.updatePerson(PartyServices.java:306)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
Its because null value for statusId field is passed to service. Please
look into it and suggest the fix.
Regards
Anil Patel
Begin forwarded message:
> From: hansbak@apache.org
> Date: June 4, 2009 10:33:08 AM EDT
> To: commits@ofbiz.apache.org
> Subject: svn commit: r781752 - in /ofbiz/trunk/applications/party:
> data/PartyTypeData.xml src/org/ofbiz/party/party/PartyServices.java
> Reply-To: dev@ofbiz.apache.org
>
> Author: hansbak
> Date: Thu Jun 4 14:33:07 2009
> New Revision: 781752
>
> URL: http://svn.apache.org/viewvc?rev=781752&view=rev
> Log:
> disable related userlogins when a party is disabled, status changes
> makes now use of separate service, als make re-activate party possible
>
> Modified:
> ofbiz/trunk/applications/party/data/PartyTypeData.xml
> ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> PartyServices.java
>
> Modified: ofbiz/trunk/applications/party/data/PartyTypeData.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/data/PartyTypeData.xml?rev=781752&r1=781751&r2=781752&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- ofbiz/trunk/applications/party/data/PartyTypeData.xml (original)
> +++ ofbiz/trunk/applications/party/data/PartyTypeData.xml Thu Jun 4
> 14:33:07 2009
> @@ -297,7 +297,8 @@
> <StatusItem description="Enabled" sequenceId="01"
> statusCode="ENABLED" statusId="PARTY_ENABLED"
> statusTypeId="PARTY_STATUS"/>
> <StatusItem description="Disabled" sequenceId="99"
> statusCode="DISABLED" statusId="PARTY_DISABLED"
> statusTypeId="PARTY_STATUS"/>
> <StatusValidChange condition="" statusId="PARTY_ENABLED"
> statusIdTo="PARTY_DISABLED" transitionName="Disable"/>
> -
> + <StatusValidChange condition="" statusId="PARTY_DISABLED"
> statusIdTo="PARTY_ENABLED" transitionName="Re-Enable"/>
> +
> <StatusType description="Case" hasTable="N" parentTypeId=""
> statusTypeId="CASE_STATUS"/>
>
> <StatusType description="Communication Event" hasTable="N"
> parentTypeId="" statusTypeId="COM_EVENT_STATUS"/>
>
> Modified: ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> PartyServices.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/src/org/ofbiz/party/party/PartyServices.java?rev=781752&r1=781751&r2=781752&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> PartyServices.java (original)
> +++ ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> PartyServices.java Thu Jun 4 14:33:07 2009
> @@ -211,22 +211,40 @@
> try {
> GenericValue party = delegator.findByPrimaryKey("Party",
> UtilMisc.toMap("partyId", partyId));
>
> - // check that status is defined as a valid change
> - GenericValue statusValidChange =
> delegator.findByPrimaryKey("StatusValidChange",
> UtilMisc.toMap("statusId", party.getString("statusId"),
> "statusIdTo", statusId));
> - if (statusValidChange == null) {
> - String errorMsg = "Cannot change party status from
> " + party.getString("statusId") + " to " + statusId;
> - Debug.logWarning(errorMsg, module);
> - return ServiceUtil.returnError(errorMsg);
> + if (party.get("statusId") == null) { // old records
> + party.set("statusId", "PARTY_ENABLED");
> }
>
> - // record the oldStatusId and change the party status
> - String oldStatusId = party.getString("statusId");
> - party.set("statusId", statusId);
> - party.store();
> + String oldStatusId = party.getString("statusId");
> + if (!party.getString("statusId").equals(statusId)) {
>
> - // record this status change in PartyStatus table
> - GenericValue partyStatus =
> delegator.makeValue("PartyStatus", UtilMisc.toMap("partyId",
> partyId, "statusId", statusId, "statusDate", statusDate));
> - partyStatus.create();
> + // check that status is defined as a valid change
> + GenericValue statusValidChange =
> delegator.findByPrimaryKey("StatusValidChange",
> UtilMisc.toMap("statusId", party.getString("statusId"),
> "statusIdTo", statusId));
> + if (statusValidChange == null) {
> + String errorMsg = "Cannot change party status from "
> + party.getString("statusId") + " to " + statusId;
> + Debug.logWarning(errorMsg, module);
> + return ServiceUtil.returnError(errorMsg);
> + }
> +
> + party.set("statusId", statusId);
> + party.store();
> +
> + // record this status change in PartyStatus table
> + GenericValue partyStatus =
> delegator.makeValue("PartyStatus", UtilMisc.toMap("partyId",
> partyId, "statusId", statusId, "statusDate", statusDate));
> + partyStatus.create();
> +
> + // disable all userlogins for this user when the new
> status is disabled
> + if (("PARTY_DISABLED").equals(statusId)) {
> + List <GenericValue> userLogins =
> delegator.findByAnd("UserLogin", UtilMisc.toMap("partyId", partyId));
> + for(GenericValue userLogin : userLogins) {
> + if (!"N".equals(userLogin.getString("enabled"))) {
> + userLogin.set("enabled", "N");
> + userLogin.set("disabledDateTime",
> UtilDateTime.nowTimestamp());
> + userLogin.store();
> + }
> + }
> + }
> + }
>
> Map<String, Object> results = ServiceUtil.returnSuccess();
> results.put("oldStatusId", oldStatusId);
> @@ -246,6 +264,7 @@
> public static Map<String, Object> updatePerson(DispatchContext
> ctx, Map<String, ? extends Object> context) {
> Map<String, Object> result = FastMap.newInstance();
> GenericDelegator delegator = ctx.getDelegator();
> + LocalDispatcher dispatcher = ctx.getDispatcher();
> Locale locale = (Locale) context.get("locale");
>
> String partyId = getPartyId(context);
> @@ -267,10 +286,15 @@
> if (person == null || party == null) {
> return
> ServiceUtil.returnError(UtilProperties.getMessage(resource,
> "person.update.not_found", locale));
> }
> +
> + // update status by separate service
> + String oldStatusId = party.getString("statusId");
>
> person.setNonPKFields(context);
> party.setNonPKFields(context);
>
> + party.set("statusId", oldStatusId);
> +
> try {
> person.store();
> party.store();
> @@ -278,6 +302,15 @@
> Debug.logWarning(e.getMessage(), module);
> return
> ServiceUtil.returnError(UtilProperties.getMessage(resource,
> "person.update.write_failure", new Object[] { e.getMessage() },
> locale));
> }
> +
> + if (!context.get("statusId").equals(oldStatusId)) {
> + try {
> + dispatcher.runSync("setPartyStatus",
> UtilMisc.toMap("partyId", partyId, "statusId",
> context.get("statusId"), "userLogin", context.get("userLogin")));
> + } catch (GenericServiceException e) {
> + Debug.logWarning(e.getMessage(), module);
> + return
> ServiceUtil.returnError(UtilProperties.getMessage(resource,
> "person.update.write_failure", new Object[] { e.getMessage() },
> locale));
> + }
> + }
>
> result.put(ModelService.RESPONSE_MESSAGE,
> ModelService.RESPOND_SUCCESS);
> result.put(ModelService.SUCCESS_MESSAGE,
> UtilProperties.getMessage(resource, "person.update.success", locale));
> @@ -399,6 +432,7 @@
> public static Map<String, Object>
> updatePartyGroup(DispatchContext ctx, Map<String, ? extends Object>
> context) {
> Map<String, Object> result = FastMap.newInstance();
> GenericDelegator delegator = ctx.getDelegator();
> + LocalDispatcher dispatcher = ctx.getDispatcher();
> Locale locale = (Locale) context.get("locale");
>
> String partyId = getPartyId(context);
> @@ -425,8 +459,12 @@
> return ServiceUtil.returnError(errMsg);
> }
>
> +
> + // update status by separate service
> + String oldStatusId = party.getString("statusId");
> partyGroup.setNonPKFields(context);
> party.setNonPKFields(context);
> + party.set("statusId", oldStatusId);
>
> try {
> partyGroup.store();
> @@ -438,6 +476,15 @@
> return ServiceUtil.returnError(errMsg);
> }
>
> + if (!context.get("statusId").equals(oldStatusId)) {
> + try {
> + dispatcher.runSync("setPartyStatus",
> UtilMisc.toMap("partyId", partyId, "statusId",
> context.get("statusId"), "userLogin", context.get("userLogin")));
> + } catch (GenericServiceException e) {
> + Debug.logWarning(e.getMessage(), module);
> + return
> ServiceUtil.returnError(UtilProperties.getMessage(resource,
> "person.update.write_failure", new Object[] { e.getMessage() },
> locale));
> + }
> + }
> +
> result.put(ModelService.RESPONSE_MESSAGE,
> ModelService.RESPOND_SUCCESS);
> return result;
> }
>
>
Re: Fwd: svn commit: r781752 - in /ofbiz/trunk/applications/party:
data/PartyTypeData.xml src/org/ofbiz/party/party/PartyServices.java
Posted by Hans Bakker <ma...@antwebsystems.com>.
Hi Anil,
the problem should be solved with revision 782529, if not, let me know.
Thanks for reporting,
Regards,
Hans
On Mon, 2009-06-08 at 01:07 -0400, Anil Patel wrote:
> Hans,
> Mods in this commit are causing checkout process to break. I am
> getting following error.
>
> 2009-06-08 00:48:37,975 (http-0.0.0.0-8443-3)
> [ CallService.java:247:ERROR]
> ---- exception report
> ----------------------------------------------------------
> Exception: org.ofbiz.service.GenericServiceException
> Message: Service [updatePerson] target threw an unexpected exception
> (null)
> ---- cause
> ---------------------------------------------------------------------
> Exception: java.lang.NullPointerException
> Message: null
> ---- stack trace
> ---------------------------------------------------------------
> java.lang.NullPointerException
> org.ofbiz.party.party.PartyServices.updatePerson(PartyServices.java:306)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun
> .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>
> Its because null value for statusId field is passed to service. Please
> look into it and suggest the fix.
>
> Regards
> Anil Patel
>
>
> Begin forwarded message:
>
> > From: hansbak@apache.org
> > Date: June 4, 2009 10:33:08 AM EDT
> > To: commits@ofbiz.apache.org
> > Subject: svn commit: r781752 - in /ofbiz/trunk/applications/party:
> > data/PartyTypeData.xml src/org/ofbiz/party/party/PartyServices.java
> > Reply-To: dev@ofbiz.apache.org
> >
> > Author: hansbak
> > Date: Thu Jun 4 14:33:07 2009
> > New Revision: 781752
> >
> > URL: http://svn.apache.org/viewvc?rev=781752&view=rev
> > Log:
> > disable related userlogins when a party is disabled, status changes
> > makes now use of separate service, als make re-activate party possible
> >
> > Modified:
> > ofbiz/trunk/applications/party/data/PartyTypeData.xml
> > ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> > PartyServices.java
> >
> > Modified: ofbiz/trunk/applications/party/data/PartyTypeData.xml
> > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/data/PartyTypeData.xml?rev=781752&r1=781751&r2=781752&view=diff
> > =
> > =
> > =
> > =
> > =
> > =
> > =
> > =
> > ======================================================================
> > --- ofbiz/trunk/applications/party/data/PartyTypeData.xml (original)
> > +++ ofbiz/trunk/applications/party/data/PartyTypeData.xml Thu Jun 4
> > 14:33:07 2009
> > @@ -297,7 +297,8 @@
> > <StatusItem description="Enabled" sequenceId="01"
> > statusCode="ENABLED" statusId="PARTY_ENABLED"
> > statusTypeId="PARTY_STATUS"/>
> > <StatusItem description="Disabled" sequenceId="99"
> > statusCode="DISABLED" statusId="PARTY_DISABLED"
> > statusTypeId="PARTY_STATUS"/>
> > <StatusValidChange condition="" statusId="PARTY_ENABLED"
> > statusIdTo="PARTY_DISABLED" transitionName="Disable"/>
> > -
> > + <StatusValidChange condition="" statusId="PARTY_DISABLED"
> > statusIdTo="PARTY_ENABLED" transitionName="Re-Enable"/>
> > +
> > <StatusType description="Case" hasTable="N" parentTypeId=""
> > statusTypeId="CASE_STATUS"/>
> >
> > <StatusType description="Communication Event" hasTable="N"
> > parentTypeId="" statusTypeId="COM_EVENT_STATUS"/>
> >
> > Modified: ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> > PartyServices.java
> > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/src/org/ofbiz/party/party/PartyServices.java?rev=781752&r1=781751&r2=781752&view=diff
> > =
> > =
> > =
> > =
> > =
> > =
> > =
> > =
> > ======================================================================
> > --- ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> > PartyServices.java (original)
> > +++ ofbiz/trunk/applications/party/src/org/ofbiz/party/party/
> > PartyServices.java Thu Jun 4 14:33:07 2009
> > @@ -211,22 +211,40 @@
> > try {
> > GenericValue party = delegator.findByPrimaryKey("Party",
> > UtilMisc.toMap("partyId", partyId));
> >
> > - // check that status is defined as a valid change
> > - GenericValue statusValidChange =
> > delegator.findByPrimaryKey("StatusValidChange",
> > UtilMisc.toMap("statusId", party.getString("statusId"),
> > "statusIdTo", statusId));
> > - if (statusValidChange == null) {
> > - String errorMsg = "Cannot change party status from
> > " + party.getString("statusId") + " to " + statusId;
> > - Debug.logWarning(errorMsg, module);
> > - return ServiceUtil.returnError(errorMsg);
> > + if (party.get("statusId") == null) { // old records
> > + party.set("statusId", "PARTY_ENABLED");
> > }
> >
> > - // record the oldStatusId and change the party status
> > - String oldStatusId = party.getString("statusId");
> > - party.set("statusId", statusId);
> > - party.store();
> > + String oldStatusId = party.getString("statusId");
> > + if (!party.getString("statusId").equals(statusId)) {
> >
> > - // record this status change in PartyStatus table
> > - GenericValue partyStatus =
> > delegator.makeValue("PartyStatus", UtilMisc.toMap("partyId",
> > partyId, "statusId", statusId, "statusDate", statusDate));
> > - partyStatus.create();
> > + // check that status is defined as a valid change
> > + GenericValue statusValidChange =
> > delegator.findByPrimaryKey("StatusValidChange",
> > UtilMisc.toMap("statusId", party.getString("statusId"),
> > "statusIdTo", statusId));
> > + if (statusValidChange == null) {
> > + String errorMsg = "Cannot change party status from "
> > + party.getString("statusId") + " to " + statusId;
> > + Debug.logWarning(errorMsg, module);
> > + return ServiceUtil.returnError(errorMsg);
> > + }
> > +
> > + party.set("statusId", statusId);
> > + party.store();
> > +
> > + // record this status change in PartyStatus table
> > + GenericValue partyStatus =
> > delegator.makeValue("PartyStatus", UtilMisc.toMap("partyId",
> > partyId, "statusId", statusId, "statusDate", statusDate));
> > + partyStatus.create();
> > +
> > + // disable all userlogins for this user when the new
> > status is disabled
> > + if (("PARTY_DISABLED").equals(statusId)) {
> > + List <GenericValue> userLogins =
> > delegator.findByAnd("UserLogin", UtilMisc.toMap("partyId", partyId));
> > + for(GenericValue userLogin : userLogins) {
> > + if (!"N".equals(userLogin.getString("enabled"))) {
> > + userLogin.set("enabled", "N");
> > + userLogin.set("disabledDateTime",
> > UtilDateTime.nowTimestamp());
> > + userLogin.store();
> > + }
> > + }
> > + }
> > + }
> >
> > Map<String, Object> results = ServiceUtil.returnSuccess();
> > results.put("oldStatusId", oldStatusId);
> > @@ -246,6 +264,7 @@
> > public static Map<String, Object> updatePerson(DispatchContext
> > ctx, Map<String, ? extends Object> context) {
> > Map<String, Object> result = FastMap.newInstance();
> > GenericDelegator delegator = ctx.getDelegator();
> > + LocalDispatcher dispatcher = ctx.getDispatcher();
> > Locale locale = (Locale) context.get("locale");
> >
> > String partyId = getPartyId(context);
> > @@ -267,10 +286,15 @@
> > if (person == null || party == null) {
> > return
> > ServiceUtil.returnError(UtilProperties.getMessage(resource,
> > "person.update.not_found", locale));
> > }
> > +
> > + // update status by separate service
> > + String oldStatusId = party.getString("statusId");
> >
> > person.setNonPKFields(context);
> > party.setNonPKFields(context);
> >
> > + party.set("statusId", oldStatusId);
> > +
> > try {
> > person.store();
> > party.store();
> > @@ -278,6 +302,15 @@
> > Debug.logWarning(e.getMessage(), module);
> > return
> > ServiceUtil.returnError(UtilProperties.getMessage(resource,
> > "person.update.write_failure", new Object[] { e.getMessage() },
> > locale));
> > }
> > +
> > + if (!context.get("statusId").equals(oldStatusId)) {
> > + try {
> > + dispatcher.runSync("setPartyStatus",
> > UtilMisc.toMap("partyId", partyId, "statusId",
> > context.get("statusId"), "userLogin", context.get("userLogin")));
> > + } catch (GenericServiceException e) {
> > + Debug.logWarning(e.getMessage(), module);
> > + return
> > ServiceUtil.returnError(UtilProperties.getMessage(resource,
> > "person.update.write_failure", new Object[] { e.getMessage() },
> > locale));
> > + }
> > + }
> >
> > result.put(ModelService.RESPONSE_MESSAGE,
> > ModelService.RESPOND_SUCCESS);
> > result.put(ModelService.SUCCESS_MESSAGE,
> > UtilProperties.getMessage(resource, "person.update.success", locale));
> > @@ -399,6 +432,7 @@
> > public static Map<String, Object>
> > updatePartyGroup(DispatchContext ctx, Map<String, ? extends Object>
> > context) {
> > Map<String, Object> result = FastMap.newInstance();
> > GenericDelegator delegator = ctx.getDelegator();
> > + LocalDispatcher dispatcher = ctx.getDispatcher();
> > Locale locale = (Locale) context.get("locale");
> >
> > String partyId = getPartyId(context);
> > @@ -425,8 +459,12 @@
> > return ServiceUtil.returnError(errMsg);
> > }
> >
> > +
> > + // update status by separate service
> > + String oldStatusId = party.getString("statusId");
> > partyGroup.setNonPKFields(context);
> > party.setNonPKFields(context);
> > + party.set("statusId", oldStatusId);
> >
> > try {
> > partyGroup.store();
> > @@ -438,6 +476,15 @@
> > return ServiceUtil.returnError(errMsg);
> > }
> >
> > + if (!context.get("statusId").equals(oldStatusId)) {
> > + try {
> > + dispatcher.runSync("setPartyStatus",
> > UtilMisc.toMap("partyId", partyId, "statusId",
> > context.get("statusId"), "userLogin", context.get("userLogin")));
> > + } catch (GenericServiceException e) {
> > + Debug.logWarning(e.getMessage(), module);
> > + return
> > ServiceUtil.returnError(UtilProperties.getMessage(resource,
> > "person.update.write_failure", new Object[] { e.getMessage() },
> > locale));
> > + }
> > + }
> > +
> > result.put(ModelService.RESPONSE_MESSAGE,
> > ModelService.RESPOND_SUCCESS);
> > return result;
> > }
> >
> >
>
--
Antwebsystems.com: Quality OFBiz services for competitive rates