today i run in following problem with the AbstractValueModel:
this code will throw a NullPointerException because the method set(Object o) calls fireValueChanged() and the used listeners List is not instanciated. The List member is only instanciated if a ValueListener is registered.
ValueHolder valueHolder = new ValueHolder(new Object());
valueHolder.set( new Object());
For the listeners i would sugest an eager instanciation, but I checked the CVS History and it was eager until the check in on 18.08.04!
[ERROR] ApplicationAdvisor - null <java.lang.NullPointerException>java.lang.NullPointerException
Now, why it was changes to "lazy"? And what is the best solution to this problem?
- Back to eager instanciation?
- Check if not null on fireValueChanged?