Hi!

checkstyle just found another kind of gems 


for example in AbstractAttributeMap.java


    private Collection<V> _values;

    @Override
    public Collection<V> values()
    {
        return (_values != null) ? _values : (_values = new Values());
    }

This code is not thread safe! 
_values is neither volatile nor is there any synchronized used on it!

What shall we do?
Either we declare _values volatile and use synchronized double lock idiom, or 
we just create the new Values() at class initialisation.

I don't know enough about the usage of this class to make any decission - who 
takes over?

LieGrue,
strub

Reply via email to