public synchronized float get ( ) { Progress node = this ; while ( node . parent != null ) { // find the root node = parent ; } return node . getInternal ( ) ; }
and the node s parent never changes . Still it doesn t hurt .