public void merge ( ) { Thread currentThread = Thread . currentThread ( ) ; if ( ! stats . get ( currentThread ) . equals ( this ) || currentThread instanceof WindupChildThread ) { throw new IllegalArgumentException ( "Trying to merge executionstatistics from a " + "different thread that is not registered as main thread of application run" ) ; } for ( Thread thread : stats . keySet ( ) ) { if ( thread instanceof WindupChildThread && ( ( WindupChildThread ) thread ) . getParentThread ( ) . equals ( currentThread ) ) { merge ( stats . get ( thread ) ) ; } } }
Merge this ExecutionStatistics with all the statistics created within the child threads . All the child threads had to be created using Windup - specific ThreadFactory in order to contain a reference to the parent thread .