You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Oscar Doral (Jira)" <de...@velocity.apache.org> on 2022/11/08 19:39:00 UTC

[jira] [Commented] (VELTOOLS-198) org.apache.velocity.tools.ConversionUtils#getNumberFormat(java.lang.String, java.util.Locale) is not thread safe for custom formats

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

Oscar Doral commented on VELTOOLS-198:
--------------------------------------

I've created a pull request with a solution to move from ConcurrentMap to ThreadLocal [https://github.com/apache/velocity-tools/pull/12]

This way, formatters won't be shared between different threads.

> org.apache.velocity.tools.ConversionUtils#getNumberFormat(java.lang.String, java.util.Locale) is not thread safe for custom formats
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: VELTOOLS-198
>                 URL: https://issues.apache.org/jira/browse/VELTOOLS-198
>             Project: Velocity Tools
>          Issue Type: Bug
>          Components: GenericTools
>    Affects Versions: 3.1
>            Reporter: Oscar Doral
>            Priority: Major
>              Labels: pull-request-available
>
> org.apache.velocity.tools.ConversionUtils holds a cache for custom formats so it can reuse formatters across different requests:
> {code:java}
> private static ConcurrentMap<String,NumberFormat> customFormatsCache = new ConcurrentHashMap<String,NumberFormat>(); {code}
> Problem is formatters don't use to be thread safe so if same formatter is used at the same time by two different threads we can get errors depending on race conditions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org