[
https://issues.apache.org/jira/browse/OFBIZ-13168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17897700#comment-17897700
]
ASF subversion and git services commented on OFBIZ-13168:
---------------------------------------------------------
Commit 50feff86755799f993eabc185b922610903073f6 in ofbiz-framework's branch
refs/heads/release24.09 from Jacques Le Roux
[ https://gitbox.apache.org/repos/asf?p=ofbiz-framework.git;h=50feff8675 ]
Fixed: Support non-breaking spaces in numeric strings (OFBIZ-13168)
In forms, numeric fields are represented by an input with type "text", which
allows user to enter/paste all characters, including non-breaking spaces
('\u00A0', '\u202F', '\u2007'), like "29 000" (the space is \u202F).
More specifically, a user can copy/paste a string from an external tool which
uses non-breaking spaces as a thousands separator, and expect that a visually
correct string will be correctly interpreted by OFBiz.
OFBiz uses java.text.NumberFormat::parse method, which does not support
non-breaking spaces : characters after this kind of spaces are simply ignored,
and "29 000" becomes "29".
Using [^\\p{IsAlnum}\\p{IsPunct}] regexp this replaces all chars that can be
a problem for NumberFormat class.
Conflicts handled by hand in
ObjectType.java
ObjectTypeTests.java
> String to numeric conversion does not support non-breaking spaces
> -----------------------------------------------------------------
>
> Key: OFBIZ-13168
> URL: https://issues.apache.org/jira/browse/OFBIZ-13168
> Project: OFBiz
> Issue Type: Bug
> Components: ALL COMPONENTS
> Affects Versions: 18.12.16, Upcoming Branch
> Reporter: Florian Motteau
> Assignee: Jacques Le Roux
> Priority: Minor
> Fix For: Upcoming Branch
>
> Attachments: 845.patch, Image 025.png, Image 026.png, Image 029.png,
> Image 030.png, Peek 05-11-2024 10-59.mp4, Peek 12-11-2024 12-16.mp4,
> image-2024-11-05-11-01-13-030.png, image-2024-11-12-09-55-16-578.png
>
>
> When submitting a form with numeric values, OFBiz uses a text input (`<input
> type="text"/>`), so all characters (entered by hand or pasted) are allowed in
> the input.
> On form's submission, for numeric fields, the string is parsed using
> `java.text.NumberFormat` class (parse method), using a number instance
> formatter.
> This formatter does not supports non-breaking spaces ('\u00A0', '\u202F',
> '\u2007'), and characters after a non-breaking space are ignored :
> !image-2024-11-05-11-01-13-030.png|width=337,height=153!
> This can lead to a situation where a visually correct form stores wrong
> values :
> [^Peek 05-11-2024 10-59.mp4]
> One of our client reported this situation while pasting values from external
> tools. Some values where truncated, because the external tool used
> non-breaking spaces when displaying values.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)