Tarun Kumar created OFBIZ-5100:
----------------------------------

             Summary: Delegator name is expected to be always "default" which 
is not the right approac
                 Key: OFBIZ-5100
                 URL: https://issues.apache.org/jira/browse/OFBIZ-5100
             Project: OFBiz
          Issue Type: Bug
          Components: framework
    Affects Versions: Release 10.04
         Environment: All Environments
            Reporter: Tarun Kumar


h4. Problem

For the below delegator configuration with a delegator.find call to a view 
Entity Engine is throwing error due wrong code in EntityExpr class

{code:xml}
    <delegator name="newName" entity-model-reader="main" 
entity-group-reader="main">
        <group-map group-name="pegasus" datasource-name="pegasus"/>
        <group-map group-name="Bookstore" datasource-name="bookstore"/>
    </delegator>
{code:xml}

The code in EntityExpr.java

{code:java}

      if (delegator == null) {
            // this will be the common case for now as the delegator isn't 
available where we want to do this
            // we'll cheat a little here and assume the default delegator
            delegator = DelegatorFactory.getDelegator("default");
        }

{code}

assumes the delegator name is default, instead it should use the delegator name 
kept in xml configuration.


h4. How to reproduce?

1. Change the delegator name to something else from "default"
2. Keep a view in entitymodel.xml
{code:xml}
    <view-entity entity-name="simpleView"
                 package-name="org.ofbiz.entity.dummy"
                 title="Dummy">
    <member-entity entity-alias="cl" entity-name="c1"/>
    <member-entity entity-alias="ac" entity-name="a1"/>
    <alias-all entity-alias="ac" name="id" />
    <alias-all entity-alias="cl" name="id"/>
    <alias-all entity-alias="cl" name="firstName"/>
    <alias-all entity-alias="cl" name="sponsor"/>
    <alias-all entity-alias="ac" name="title"/>
    <view-link entity-alias="ac" rel-entity-alias="cl">
       <key-map field-name="id" rel-field-name="id"/>
    </view-link>
    <relation type="one" title="one" rel-entity-name="cl">
            <key-map field-name="id" />
    </relation>
    </view-entity>
{code}

3. Use this like below,

{code:java}
Delegator delegator = DelegatorFactory.getDelegator("newName");
List<EntityExpr> 
expr=UtilMisc.toList(EntityCondition.makeCondition("sponsor",EntityOperator.EQUALS,
 Long.valueOf("1")));
EntityListIterator listIterator=delegator.find("simpleView", 
EntityCondition.makeCondition(expr, EntityOperator.OR), null,fieldToSelct, 
UtilMisc.toList("id"), null);
{code}

It will throw GenericEntityException due to "default" is hard coded in 
EntityExpr.java

Please let me know if I can submit a patch for this to avoid hard coded 
delegator name.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to