Hi Adrian,
I looked into it and found that if I am using "==" instead of
".equals" it works fine for bsh also , I am not sure its because of
Script changes or not.
But if I am using ".equals" than I am getting the below error on
console and its saying that error in running bsh script.
2012-05-05 16:27:05,217 (http-bio-0.0.0.0-8443-exec-16) [
ScriptUtil.java:282:WARN ]
---- exception report ----------------------------------------------------------
Error running bsh script [String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(prev!=null&&prev.equals(inventoryItemId)));]:
javax.script.ScriptException: Sourced file: inline evaluation of:
``String prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' : Attempt to resolve method: equals() on
undefined variable or class name: prev : at Line: 1 : in file: inline
evaluation of: ``String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' : prev .equals ( inventoryItemId )
in inline evaluation of: ``String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' at line number 1
Exception: javax.script.ScriptException
Message: Sourced file: inline evaluation of: ``String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' : Attempt to resolve method: equals() on
undefined variable or class name: prev : at Line: 1 : in file: inline
evaluation of: ``String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' : prev .equals ( inventoryItemId )
in inline evaluation of: ``String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' at line number 1
---- stack trace ---------------------------------------------------------------
javax.script.ScriptException: Sourced file: inline evaluation of:
``String prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' : Attempt to resolve method: equals() on
undefined variable or class name: prev : at Line: 1 : in file: inline
evaluation of: ``String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' : prev .equals ( inventoryItemId )
in inline evaluation of: ``String
prev=(String)previousItem.get("inventoryItemId");return new
Boolean(!(pre . . . '' at line number 1
bsh.engine.BshScriptEngine.evalSource(BshScriptEngine.java:92)
bsh.engine.BshScriptEngine.eval(BshScriptEngine.java:46)
org.ofbiz.base.util.ScriptUtil.evaluate(ScriptUtil.java:279)
Regards,
Ankit Jain
On Sat, May 5, 2012 at 2:32 PM, Adrian Crum
<[email protected]> wrote:
> This commit does not fix the problem, it only hides the problem. The correct
> fix is to get the bsh: evaluation to return the correct result.
>
> -Adrian
>
>
> On 5/4/2012 10:46 PM, [email protected] wrote:
>>
>> Author: jleroux
>> Date: Fri May 4 21:46:25 2012
>> New Revision: 1334201
>>
>> URL: http://svn.apache.org/viewvc?rev=1334201&view=rev
>> Log:
>> A slightly modified patch from Ankit Jain "Error on View Facility
>> Inventory Items Details Page"
>> https://issues.apache.org/jira/browse/OFBIZ-4851
>>
>> Error on
>> https://demo-trunk.ofbiz.apache.org:8443/facility/control/ViewFacilityInventoryItemsDetails
>> Page, when you select Report Type - "By Inventory Item" or "By Product" its
>> throwing error.
>>
>> org.ofbiz.widget.screen.ScreenRenderException: Error rendering screen
>> component://common/widget/CommonScreens.xml#GlobalDecorator:
>> java.lang.IllegalArgumentException: Return value from use-when condition
>> eval was not a Boolean: null [null] on the field inventoryItemId of form
>> ListFacilityInventoryItemsDetailsByItem (Return value from use-when
>> condition eval was not a Boolean: null [null] on the field inventoryItemId
>> of form ListFacilityInventoryItemsDetailsByItem)
>>
>> jleroux: I supposed it was related to recent changes on scripts language,
>> but was not sure. So I searched for ${bsh:* type="Boolean"/> and found some
>> others of the same kind: in UpdateProductFacilityLocations, FindProject,
>> sprintBacklogListItems forms and more in scrumForms.xml. I tried with
>> UpdateProductFacilityLocations& FindProject but surprisingly did not
>> reproduce the problem. At this stage I gave up...
>>
>> Sligth changes from Ankit's patch: I simply used real ' instead of"
>> and reformatted to make things more legible
>>
>>
>> Modified:
>> ofbiz/trunk/applications/product/widget/facility/FacilityForms.xml
>>
>> Modified:
>> ofbiz/trunk/applications/product/widget/facility/FacilityForms.xml
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/widget/facility/FacilityForms.xml?rev=1334201&r1=1334200&r2=1334201&view=diff
>>
>> ==============================================================================
>> --- ofbiz/trunk/applications/product/widget/facility/FacilityForms.xml
>> (original)
>> +++ ofbiz/trunk/applications/product/widget/facility/FacilityForms.xml Fri
>> May 4 21:46:25 2012
>> @@ -229,7 +229,7 @@ under the License.
>> </service>
>> </actions>
>> <row-actions>
>> -<set field="showPosition1" value="${bsh:String
>> prev=(String)previousItem.get("inventoryItemId");return new
>> Boolean(!(prev!=null&&prev.equals(inventoryItemId)));}"
>> type="Boolean"/>
>> +<set field="showPosition1" value="${groovy: String prev = (String)
>> previousItem.get('inventoryItemId');return new
>> Boolean(!(prev!=null&& prev.equals(inventoryItemId)));}"
>> type="Boolean"/>
>>
>> </row-actions>
>>
>> <field name="inventoryItemId" widget-style="buttontext"
>> position="1" use-when="showPosition1">
>> @@ -293,7 +293,7 @@ under the License.
>> </service>
>> </actions>
>> <row-actions>
>> -<set field="showPosition1" value="${bsh:String
>> prev=(String)previousItem.get("productId");return new
>> Boolean(!(prev!=null&&prev.equals(productId)));}" type="Boolean"/>
>> +<set field="showPosition1" value="${groovy:String prev = (String)
>> previousItem.get('productId'); return new Boolean(!(prev!=null&&
>> prev.equals(productId)));}" type="Boolean"/>
>>
>> </row-actions>
>>
>> <field name="productId" position="1" use-when="showPosition1"
>> widget-style="buttontext">
>>
>>
>