removes a previously added listener . this method is safe for use by multiple concurrent threads . concode_field_sep boolean myDequeEmpty concode_elem_sep TreeModelListener[] EMPTY_ARRAY concode_elem_sep ArrayDeque<TreeModelListener> myDeque concode_field_sep void add concode_elem_sep void treeNodesRemoved concode_elem_sep void treeStructureChanged concode_elem_sep void treeNodesChanged concode_elem_sep TreeModelListener[] get concode_elem_sep boolean isEmpty concode_elem_sep void treeNodesInserted
void function ( TreeModelListener arg0 ) { if ( arg0 != null ) { synchronized ( myDeque ) { myDeque . remove ( arg0 ) ; myDequeEmpty = myDeque . isEmpty ( ) ; } } }