@@ -140,16 +140,22 @@ public void testDoNotPurgeRPCTask() throws Exception {
140140
141141 @ Test
142142 public void testWarnStuckTasks () throws Exception {
143- final int INTERVAL = 1000 ;
143+ final int RPC_WARN_TIME = 1500 ;
144+ final int MONITOR_INTERVAL = 500 ;
144145 Configuration conf = new Configuration ();
145- conf .setLong (TaskMonitor .RPC_WARN_TIME_KEY , INTERVAL );
146- conf .setLong (TaskMonitor .MONITOR_INTERVAL_KEY , INTERVAL );
146+ conf .setLong (TaskMonitor .RPC_WARN_TIME_KEY , RPC_WARN_TIME );
147+ conf .setLong (TaskMonitor .MONITOR_INTERVAL_KEY , MONITOR_INTERVAL );
147148 final TaskMonitor tm = new TaskMonitor (conf );
148149 MonitoredRPCHandler t = tm .createRPCStatus ("test task" );
149- long then = EnvironmentEdgeManager .currentTime ();
150- t .setRPC ("testMethod" , new Object [0 ], then );
151- Thread .sleep (INTERVAL * 2 );
152- assertTrue ("We did not warn" , t .getWarnTime () > then );
150+ long beforeSetRPC = EnvironmentEdgeManager .currentTime ();
151+ assertTrue ("Validating initialization assumption" , t .getWarnTime () <= beforeSetRPC );
152+ Thread .sleep (MONITOR_INTERVAL * 2 );
153+ t .setRPC ("testMethod" , new Object [0 ], beforeSetRPC );
154+ long afterSetRPC = EnvironmentEdgeManager .currentTime ();
155+ Thread .sleep (MONITOR_INTERVAL * 2 );
156+ assertTrue ("Validating no warn after starting RPC" , t .getWarnTime () <= afterSetRPC );
157+ Thread .sleep (MONITOR_INTERVAL * 2 );
158+ assertTrue ("Validating warn after RPC_WARN_TIME" , t .getWarnTime () > afterSetRPC );
153159 tm .shutdown ();
154160 }
155161
0 commit comments