- try
- {
- updateJobProgress(msjob);
- } catch (Exception e)
- {
- Cache.log
- .warn("Exception when retrieving remaining Job progress data for job "
- + msjob.getJobId() + " on server " + WsUrl);
- e.printStackTrace();
- }
+ boolean jpchanged=false,jpex=false;
+ do {
+ try
+ {
+ jpchanged = updateJobProgress(msjob);
+ jpex=false;
+ } catch (Exception e)
+ {
+
+ Cache.log
+ .warn("Exception when retrieving remaining Job progress data for job "
+ + msjob.getJobId() + " on server " + WsUrl);
+ e.printStackTrace();
+ if (jpex) {
+ // give up polling after two consecutive exceptions
+ jpchanged=false;
+ } else {
+ jpchanged=true;
+ }
+ // set flag remember that we've had an exception.
+ jpex=true;
+ }
+ if (jpchanged)
+ {
+ try
+ {
+ Thread.sleep(jpex ? 400 : 200); // wait a bit longer if we experienced an exception.
+ } catch (Exception ex)
+ {
+ }
+ ;
+ }
+ } while (jpchanged);
+