OFBiz
  1. OFBiz
  2. OFBIZ-4843

ignore-if-empty in entity-options throw NPE when env-name is in fact empty

    Details

      Description

      When specifying the ignore-if-empty attribute inside an entity-constraint in an entity-options a NPE will be thrown whenever the env-name of this entity-constraint is empty.

      Could not commit transaction: org.ofbiz.entity.transaction.GenericTransactionException: Roll back error, could not commit transaction, was rolled back instead because of: Error rendering screen component://gestionlegal/widget/CommonScreens.xml#GlobalDecorator: java.lang.NullPointerExceptionjava.lang.NullPointerException (null)
      Exception: org.ofbiz.entity.transaction.GenericTransactionException
      Message: Roll back error, could not commit transaction, was rolled back instead because of: Error rendering screen component://gestionlegal/widget/CommonScreens.xml#GlobalDecorator: java.lang.NullPointerExceptionjava.lang.NullPointerException (null)
      ---- cause ---------------------------------------------------------------------
      Exception: java.lang.NullPointerException
      Message: null
      ---- stack trace ---------------------------------------------------------------
      java.lang.NullPointerException
      org.ofbiz.entity.condition.EntityJoinOperator.validateSql(EntityJoinOperator.java:178)
      org.ofbiz.entity.condition.EntityConditionListBase.checkCondition(EntityConditionListBase.java:105)
      org.ofbiz.entity.GenericDelegator.find(GenericDelegator.java:1733)
      org.ofbiz.entity.GenericDelegator.findList(GenericDelegator.java:1775)
      org.ofbiz.widget.form.ModelFormField$EntityOptions.addOptionValues(ModelFormField.java:1599)
      org.ofbiz.widget.form.ModelFormField$FieldInfoWithOptions.getAllOptionValues(ModelFormField.java:1398)
      org.ofbiz.widget.form.MacroFormRenderer.renderDropDownField(MacroFormRenderer.java:744)
      org.ofbiz.widget.form.ModelFormField$DropDownField.renderFieldString(ModelFormField.java:3091)
      org.ofbiz.widget.form.ModelFormField.renderFieldString(ModelFormField.java:523)
      org.ofbiz.widget.form.ModelForm.renderSingleFormString(ModelForm.java:1081)
      org.ofbiz.widget.form.ModelForm.renderFormString(ModelForm.java:852)
      org.ofbiz.widget.screen.ModelScreenWidget$Form.renderWidgetString(ModelScreenWidget.java:753)
      org.ofbiz.widget.screen.MacroScreenRenderer.renderScreenletSubWidget(MacroScreenRenderer.java:661)
      org.ofbiz.widget.screen.ModelScreenWidget$Screenlet.renderWidgetString(ModelScreenWidget.java:373)

        Activity

        Hide
        Daniel Riquelme added a comment -

        Patch

        Show
        Daniel Riquelme added a comment - Patch
        Hide
        Daniel Riquelme added a comment -

        The error occurs because a null condition is created for the entity-constraint.
        When validateSql get called in

        org.ofbiz.entity.condition.EntityJoinOperator.validateSql(EntityJoinOperator.java:178)

        there is no null checking so when

        condition.checkCondition(modelEntity);

        gets called an NPE is thrown.

        The patch modifies the code in

        framework/widget/src/org/ofbiz/widget/form/ModelFormField.java

        to avoid the inclusion of a null condition to the entity-options.

        Show
        Daniel Riquelme added a comment - The error occurs because a null condition is created for the entity-constraint. When validateSql get called in org.ofbiz.entity.condition.EntityJoinOperator.validateSql(EntityJoinOperator.java:178) there is no null checking so when condition.checkCondition(modelEntity); gets called an NPE is thrown. The patch modifies the code in framework/widget/src/org/ofbiz/widget/form/ModelFormField.java to avoid the inclusion of a null condition to the entity-options.
        Hide
        Jacques Le Roux added a comment -

        Thanks Daniel,

        Your patch is in
        trunk r1340826
        R12.04 r1340827
        R11.04 r1340829
        R10.04 r1340830

        Show
        Jacques Le Roux added a comment - Thanks Daniel, Your patch is in trunk r1340826 R12.04 r1340827 R11.04 r1340829 R10.04 r1340830

          People

          • Assignee:
            Jacques Le Roux
            Reporter:
            Daniel Riquelme
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 1m
              1m
              Remaining:
              Remaining Estimate - 1m
              1m
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development