You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2011/10/27 19:35:32 UTC
svn commit: r1189883 -
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/util/AbstractAttributeMap.java
Author: lu4242
Date: Thu Oct 27 17:35:32 2011
New Revision: 1189883
URL: http://svn.apache.org/viewvc?rev=1189883&view=rev
Log:
MYFACES-3377 unsynchronized lazy initialization could create concurrency errors
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/util/AbstractAttributeMap.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/util/AbstractAttributeMap.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/util/AbstractAttributeMap.java?rev=1189883&r1=1189882&r2=1189883&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/util/AbstractAttributeMap.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/util/AbstractAttributeMap.java Thu Oct 27 17:35:32 2011
@@ -37,9 +37,9 @@ import java.util.Set;
*/
public abstract class AbstractAttributeMap<V> extends AbstractMap<String, V>
{
- private Set<String> _keySet = new KeySet();
- private Collection<V> _values = new Values();
- private Set<Entry<String, V>> _entrySet = new EntrySet();
+ private Set<String> _keySet;
+ private Collection<V> _values;
+ private Set<Entry<String, V>> _entrySet;
@Override
public void clear()
@@ -85,7 +85,7 @@ public abstract class AbstractAttributeM
@Override
public Set<Entry<String, V>> entrySet()
{
- return _entrySet;
+ return (_entrySet != null) ? _entrySet : (_entrySet = new EntrySet());
}
@Override
@@ -103,7 +103,7 @@ public abstract class AbstractAttributeM
@Override
public Set<String> keySet()
{
- return _keySet;
+ return (_keySet != null) ? _keySet : (_keySet = new KeySet());
}
@Override
@@ -147,7 +147,7 @@ public abstract class AbstractAttributeM
@Override
public Collection<V> values()
{
- return _values;
+ return (_values != null) ? _values : (_values = new Values());
}
abstract protected V getAttribute(String key);