Hi all,
I'm writing a couple of tests to create a simple service. The service is called from java code. When I call 'fail-property ' inside a 'call-map-processor ' I get 'Locate cannot be null' but if I use it inside an 'if-compare' every thing is ok. I would like to notice that i'm using the latest trunk. Any help is appreciated. Here's the methods code called by the service: test 1 (inside if-compare): ==================== <?xml version="1.0" encoding="UTF-8" ?> <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> <simple-method method-name="test1" short-description="test1" login-required="false"> <set field="require_login" value="true"/> <if-compare field="require_login" operator="equals" value="true"> <add-error> <fail-property resource="PartyUiLabels" property="PartyUserNameMissing"/> </add-error> </if-compare> </simple-method> </simple-methods> this test is correct; test 2 inside call-map-processor: ========================= <?xml version="1.0" encoding="UTF-8" ?> <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> <simple-method method-name="test2" short-description="test2" login-required="false"> <call-map-processor in-map-name="parameters" out-map-name="personContext"> <simple-map-processor name="newPerson"> <process field="USER_FIRST_NAME"><copy to-field="firstName"/> <not-empty> <fail-property resource="PartyUiLabels" property="PartyFirstNameMissing"/> </not-empty> </process> </simple-map-processor> </call-map-processor> this test logged the error 'locate cannot be null' in ofbiz.log thanks in advance Saad. |
Hi Hage
The code you are trying to write is correct, adding something more you need to add a additional tag <check-errors/> see (CheckErrors.java code) which returns the fail-property errors for you . S.Hage wrote: > Hi all, > > I'm writing a couple of tests to create a simple service. The service is > called from java code. When I call 'fail-property ' inside a > 'call-map-processor ' I get 'Locate cannot be null' but if I use it inside > an 'if-compare' every thing is ok. I would like to notice that i'm using > the latest trunk. > > Any help is appreciated. > > Here's the methods code called by the service: > > test 1 (inside if-compare): > ==================== > <?xml version="1.0" encoding="UTF-8" ?> > > <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> > <simple-method method-name="test1" short-description="test1" > login-required="false"> > > <!-- TEST 1 --> > <set field="require_login" value="true"/> > <if-compare field="require_login" operator="equals" value="true"> > <add-error> > <fail-property resource="PartyUiLabels" > property="PartyUserNameMissing"/> > </add-error> > </if-compare> > > </simple-method> > </simple-methods> > > > this test is correct; > > test 2 inside call-map-processor: > ========================= > <?xml version="1.0" encoding="UTF-8" ?> > > <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> > <simple-method method-name="test2" short-description="test2" > login-required="false"> > > <!-- TEST 2 --> > <call-map-processor in-map-name="parameters" > out-map-name="personContext"> > <simple-map-processor name="newPerson"> > <process field="USER_FIRST_NAME"><copy > to-field="firstName"/> > <not-empty> > <fail-property resource="PartyUiLabels" > property="PartyFirstNameMissing"/> > </not-empty> > </process> > </simple-map-processor> > </call-map-processor> > > this test logged the error 'locate cannot be null' in ofbiz.log > > > thanks in advance > > Saad. > -- Thanks & Regards Shubham Dubey Jr. Software Developer HotWax Media Pvt. Ltd. http://www.hotwaxmedia.com/ |
In reply to this post by S.Hage
<call-map-processor in-map-name="parameters"
out-map-name="personContext"> <simple-map-processor name="newPerson"> <process field="USER_FIRST_NAME"><copy to-field="firstName"/> <not-empty> <fail-property resource="PartyUiLabels" property="PartyFirstNameMissing"/> </not-empty> </process> </simple-map-processor> </call-map-processor> <check-errors/> S.Hage wrote: > Hi all, > > I'm writing a couple of tests to create a simple service. The service is > called from java code. When I call 'fail-property ' inside a > 'call-map-processor ' I get 'Locate cannot be null' but if I use it inside > an 'if-compare' every thing is ok. I would like to notice that i'm using > the latest trunk. > > Any help is appreciated. > > Here's the methods code called by the service: > > test 1 (inside if-compare): > ==================== > <?xml version="1.0" encoding="UTF-8" ?> > > <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> > <simple-method method-name="test1" short-description="test1" > login-required="false"> > > <!-- TEST 1 --> > <set field="require_login" value="true"/> > <if-compare field="require_login" operator="equals" value="true"> > <add-error> > <fail-property resource="PartyUiLabels" > property="PartyUserNameMissing"/> > </add-error> > </if-compare> > > </simple-method> > </simple-methods> > > > this test is correct; > > test 2 inside call-map-processor: > ========================= > <?xml version="1.0" encoding="UTF-8" ?> > > <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> > <simple-method method-name="test2" short-description="test2" > login-required="false"> > > <!-- TEST 2 --> > <call-map-processor in-map-name="parameters" > out-map-name="personContext"> > <simple-map-processor name="newPerson"> > <process field="USER_FIRST_NAME"><copy > to-field="firstName"/> > <not-empty> > <fail-property resource="PartyUiLabels" > property="PartyFirstNameMissing"/> > </not-empty> > </process> > </simple-map-processor> > </call-map-processor> > > this test logged the error 'locate cannot be null' in ofbiz.log > > > thanks in advance > > Saad. > -- Thanks & Regards Shubham Dubey Jr. Software Developer HotWax Media Pvt. Ltd. http://www.hotwaxmedia.com/ |
HI Shubham,
Thanks for your response. The problem is when I use (fail-property resource="PartyUiLabels" property="PartyFirstNameMissing") ofbiz log this error message in ofbiz.log file (you see all java stack above): Error in simple-method operation [<call-simple-map-processor/>]: java.lang.IllegalArgumentException: locale cannot be null Exception: java.lang.IllegalArgumentException Message: locale cannot be null Even if in my java code I sent the locale object in the context like this: locale = UtilHttp.getLocale(request); Map context = FastMap.newInstance(); context.put("locale",locale); context.put("userLogin",userLogin); ... Map summaryResult = dispatcher.runSync("ccmsCreateGuarantor", context); And the PartyUiLabels is set in the commonScreen.xml like this: <property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/> I'm stuck here because I can't figure out why the java exception and why locale is null. I logged the value of locale just before 'call-map-processor' and the value is correct (fr_CA). Thanks Saad. |
Hi Saad,
Could you try changing the following line in CallSimpleMapProcessor.java (101-106): // run inlined map processor last so it can override the external map processor if (inlineMapProcessor != null) { inlineMapProcessor.exec(inMap, outMap, messages, (methodContext.getRequest() != null ? methodContext.getRequest().getLocale() : null), methodContext.getLoader()); } Change this: (methodContext.getRequest() != null ? methodContext.getRequest().getLocale() : null), to this: methodContext.getLocale(), and let me know if it helps any. Note you'll need to recompile first if that wasn't obvious. Thanks Scott HotWax Media http://www.hotwaxmedia.com On 29/04/2010, at 2:34 AM, S.Hage wrote: > > HI Shubham, > > Thanks for your response. > > The problem is when I use (fail-property resource="PartyUiLabels" > property="PartyFirstNameMissing") ofbiz log this error message in ofbiz.log > file (you see all java stack above): > > Error in simple-method operation [<call-simple-map-processor/>]: > java.lang.IllegalArgumentException: locale cannot be null > Exception: java.lang.IllegalArgumentException > Message: locale cannot be null > > Even if in my java code I sent the locale object in the context like this: > > locale = UtilHttp.getLocale(request); > Map context = FastMap.newInstance(); > context.put("locale",locale); > context.put("userLogin",userLogin); > ... > Map summaryResult = dispatcher.runSync("ccmsCreateGuarantor", > context); > > > And the PartyUiLabels is set in the commonScreen.xml like this: > <property-map resource="PartyUiLabels" map-name="uiLabelMap" > global="true"/> > > I'm stuck here because I can't figure out why the java exception and why > locale is null. I logged the value of locale just before > 'call-map-processor' and the value is correct (fr_CA). > > Thanks > > Saad. > -- > View this message in context: http://ofbiz.135035.n4.nabble.com/fail-property-inside-call-map-processor-problem-tp2067904p2069307.html > Sent from the OFBiz - User mailing list archive at Nabble.com. smime.p7s (3K) Download Attachment |
Hi Scott,
I changed the code like you suggested and YES this fix the problem. Thanks Saad. |
Thanks Saad, I'll take a look at the history and just check why it was the way it was before committing the fix. Are you using the trunk or 9.04?
Regards Scott HotWax Media http://www.hotwaxmedia.com On 1/05/2010, at 8:13 AM, S.Hage wrote: > > Hi Scott, > > I changed the code like you suggested and YES this fix the problem. > > > Thanks > > Saad. > -- > View this message in context: http://ofbiz.135035.n4.nabble.com/fail-property-inside-call-map-processor-problem-tp2067904p2077449.html > Sent from the OFBiz - User mailing list archive at Nabble.com. smime.p7s (3K) Download Attachment |
I'm using the trunk rev 937852.
Saad. |
Fixed in trunk r939966 and 10.04 r939967, thanks for the report.
Regards Scott HotWax Media http://www.hotwaxmedia.com On 1/05/2010, at 1:16 PM, S.Hage wrote: > > I'm using the trunk rev 937852. > > Saad. > -- > View this message in context: http://ofbiz.135035.n4.nabble.com/fail-property-inside-call-map-processor-problem-tp2067904p2077671.html > Sent from the OFBiz - User mailing list archive at Nabble.com. smime.p7s (3K) Download Attachment |
Free forum by Nabble | Edit this page |