[
https://issues.apache.org/jira/browse/WINK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12733988#action_12733988
]
Michael Elman commented on WINK-114:
------------------------------------
Hi Bryant,
synchronizing WeakHashMapis easy, you just need to wrap it with
Collections.synchronizedMap():
Map map = Collections.synchronizedMap(new WeakHashMap());
Regarding https://issues.apache.org/jira/browse/BEANUTILS-318 - I don't see how
can infinite loop occur in WINK-114-generic.patch implementation. Especially
unless we don't override equals of header classes. (If we do override equals,
it must not make any cache calls within the method, but actually this is not a
synchronization issue)
The cache of course can be synchronized, but synchronizing it, meaning slowing
it down.
Not synchronizing cache may result some header be created several times, but it
won't effect correctness of the code, since the headers returned by the header
delegates must be equivalent (not necessary equal, if equals() is not
overridden).
> Cache parsed Accept header content where possible
> -------------------------------------------------
>
> Key: WINK-114
> URL: https://issues.apache.org/jira/browse/WINK-114
> Project: Wink
> Issue Type: Improvement
> Components: Common
> Affects Versions: 0.1
> Reporter: Nick Gallardo
> Fix For: 0.2
>
> Attachments: WINK-114-generic.patch, WINK-114-ThreadLocal.patch,
> WINK-114-use-pattern.patch, WINK-114.patch
>
>
> AcceptHeaderDelete.fromString() is called for every invocation. This drives
> calls to string splits and some regex tools that start to show up in profiles
> as taking up a notable amount of time. Since the content for the Accept
> headers will remain within a fairly bounded set, we can cache the parsed
> content and improve performance.
> Here's a patch with a simple solution. Really I think there's a better way
> to do this. Presumably, there are other headers where the same thing
> applies. We can handle those on an individual basis or we can come up with
> something more generic that can be used by all HeaderDelegates.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.