'fail-property' inside 'call-map-processor' problem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

'fail-property' inside 'call-map-processor' problem

S.Hage
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.
Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

Shubham Dubey
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/ 

Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

Shubham Dubey
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/ 

Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

S.Hage
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.
Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

Scott Gray-2
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
Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

S.Hage
Hi Scott,

   I changed the code like you suggested and YES this fix the problem.


Thanks

Saad.
Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

Scott Gray-2
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
Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

S.Hage
I'm using the trunk rev 937852.

Saad.
Reply | Threaded
Open this post in threaded view
|

Re: 'fail-property' inside 'call-map-processor' problem

Scott Gray-2
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