You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "Daniel Riquelme (JIRA)" <ji...@apache.org> on 2012/04/25 23:38:16 UTC

[jira] [Commented] (OFBIZ-4843) ignore-if-empty in entity-options throw NPE when env-name is in fact empty

    [ https://issues.apache.org/jira/browse/OFBIZ-4843?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262142#comment-13262142 ] 

Daniel Riquelme commented on OFBIZ-4843:
----------------------------------------

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.
                
> ignore-if-empty in entity-options throw NPE when env-name is in fact empty
> --------------------------------------------------------------------------
>
>                 Key: OFBIZ-4843
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-4843
>             Project: OFBiz
>          Issue Type: Bug
>          Components: framework
>    Affects Versions: SVN trunk
>         Environment: Mac OSX Lion, Postgres
>            Reporter: Daniel Riquelme
>             Fix For: SVN trunk
>
>         Attachments: OFBIZ-4843-IgnoreIfEmptyNPE.patch
>
>   Original Estimate: 1m
>  Remaining Estimate: 1m
>
> 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)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira