Hello,
I assign it to don't forgot it, I'll try to look on it but I don't know
when.
If you or someone else want to lead it feel-free :)
Nicolas
Le 04/07/2026 à 08:17, Arun Patidar a écrit :
Hi Tomek,
I found that you already created a Jira for this:
https://issues.apache.org/jira/browse/OFBIZ-13448
Also, Aditi suggested the same fixes on the ticket.
On Sat, Jul 4, 2026 at 11:42 AM Arun Patidar<[email protected]> wrote:
Hi Tomek,
Thank you for reporting this. I can confirm this is indeed a bug.
The availableToPromiseTotal field is defined as a fixed-point type in the
entity model, which translates to a BigDecimal at runtime. Comparing it
against the String "0" can lead to database parsing errors and type
mismatch exceptions.
Your proposed fix is correct, with a couple of minor adjustments for Java
syntax and imports:
- Use the capitalized constant BigDecimal.ZERO (instead of
BigDecimal.Zero).
- Add the import import java.math.BigDecimal; to the top of
FixedAssetMaintServices.java
Please create a ticket on Jira and attach the patch with your fix.
Regards,
Arun Patidar
On Fri, Jun 26, 2026 at 4:29 PM Tomek<[email protected]> wrote:
I have found a bug in the assetmaint plugin, specifically in the
following file:
assetmaint/src/main/java/org/apache/ofbiz/assetmaint/FixedAssetMaintServices.java
Problematic code fragment:
EntityConditionList<EntityExpr> ecl =
EntityCondition.makeCondition(UtilMisc.toList(
EntityCondition.makeCondition("productId",
EntityOperator.EQUALS, productId),
EntityCondition.makeCondition("facilityId",
EntityOperator.EQUALS, facilityId),
EntityCondition.makeCondition("availableToPromiseTotal",
EntityOperator.GREATER_THAN, "0")), // Here is the bug
EntityOperator.AND);
Proposed fix:
EntityConditionList<EntityExpr> ecl =
EntityCondition.makeCondition(UtilMisc.toList(
EntityCondition.makeCondition("productId",
EntityOperator.EQUALS, productId),
EntityCondition.makeCondition("facilityId",
EntityOperator.EQUALS, facilityId),
EntityCondition.makeCondition("availableToPromiseTotal",
EntityOperator.GREATER_THAN, BigDecimal.Zero)),
EntityOperator.AND);
Rationale:
The availableToPromiseTotal field represents a numerical value (defined
as a fixed-point number in the entity model), not a String. Passing the
string "0" causes a type mismatch exception or a database parsing
failure at runtime. Replacing it with BigDecimal.ZERO resolves the issue.
Best regards,
Tomek