Hi,
org.zkoss.zul.AbstractTreeModel implements java.io.Serializable
it also has
private transient List _listeners = new LinkedList();
The problem is that transient fields don't get restored after serialization. This results in NullPointerException when the serialized class is restored and
public void addTreeDataListener(TreeDataListener l){
_listeners.add(l);
}
or
public void removeTreeDataListener(TreeDataListener l){
_listeners.remove(l);
}
is called. Because _listeners = null .
I would propose to see at least
public void addTreeDataListener(TreeDataListener l){
if(_listeners != null)
_listeners.add(l);
}
or better
public void addTreeDataListener(TreeDataListener l){
if(_listeners == null)
_listeners = new LinkedList();
_listeners.add(l);
}
or anything you like better.
thx a lot for your great work!
cheers
Logged In: YES
user_id=91099
Originator: NO
Fixed since 12/7
--
Thanks for your suggestion. However, it is better to keep up with AbstractListModel: serialize listeners if they are serializable. In other words, it is the job of the developer who implements the listener.