[
https://issues.apache.org/struts/browse/STR-3192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46899#action_46899
]
Juan Carlos Blanco Martinez commented on STR-3192:
--------------------------------------------------
Sorry, I think you misunderstood me. I didn't mean to change the structure just
the sort of instantiation of the MessageResourcesFactory from lazy to eager, so
no need for the method getMessageResources to be declared as synchronized. This
method is called many times so the performance could be slightly improved.
> Why lazy instantiation of the MessageResourcesFactory in Struts 1.2.7?
> ----------------------------------------------------------------------
>
> Key: STR-3192
> URL: https://issues.apache.org/struts/browse/STR-3192
> Project: Struts 1
> Issue Type: Improvement
> Affects Versions: 1.2.7
> Reporter: Juan Carlos Blanco Martinez
> Priority: Critical
> Fix For: Pending Review
>
>
> Double-checked locking issue exists and one of the options to solve this is
> to use synchronization. In the class org.apache.struts.util.MessageResources,
> we use LAZY INSTANTIATION to instantiate MessageResourcesFactory:
> public synchronized static MessageResources getMessageResources(String
> config) {
> if (defaultFactory == null) {
> defaultFactory = MessageResourcesFactory.createFactory();
> }
> return defaultFactory.createResources(config);
> }
> Why not to use:
> EAGER INSTANTIATION
> private static MessageResourcesFactory defaultFactory =
> MessageResourcesFactory.createFactory();
> And then:
> public static MessageResources getMessageResources(String config) {
> return defaultFactory.createResources(config);
> }
> It would allow concurrent access to the method getMessageResources which at
> least in my case it may be called quite a few times.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.