| @@ -89,34 +89,47 @@ public abstract class CommEngine extends HttpServlet | |||
| protected class DailyClock extends Thread | |||
| { | |||
| private static final String DAILY_CLOCK_THREAD_NAME = "DailyClock"; | |||
| private boolean threadShouldStop = false; | |||
| DailyClock() | |||
| { | |||
| setName(DAILY_CLOCK_THREAD_NAME); | |||
| } | |||
| public void run() | |||
| { | |||
| while (!threadShouldStop) | |||
| try | |||
| { | |||
| // Check for pause | |||
| for (Broadcast broadcast : broadcasts.values()) | |||
| { | |||
| broadcast.enforceOperationHours(); | |||
| } | |||
| // sleep till next wall clock minute | |||
| long currentTime = System.currentTimeMillis(); | |||
| long sleepTime = 60000 - currentTime % 60000; | |||
| if (sleepTime > 0) | |||
| while (!threadShouldStop) | |||
| { | |||
| try | |||
| // Check for pause | |||
| for (Broadcast broadcast : broadcasts.values()) | |||
| { | |||
| Thread.sleep(sleepTime); | |||
| } | |||
| catch (Exception e) | |||
| broadcast.enforceOperationHours(); | |||
| } | |||
| // sleep till next wall clock minute | |||
| long currentTime = System.currentTimeMillis(); | |||
| long sleepTime = 60000 - currentTime % 60000; | |||
| if (sleepTime > 0) | |||
| { | |||
| myLogger.error("DailyClock thread caught: " + e.getMessage(), e); | |||
| return; | |||
| try | |||
| { | |||
| Thread.sleep(sleepTime); | |||
| } | |||
| catch (Exception e) | |||
| { | |||
| myLogger.error("DailyClock thread caught: " + e.getMessage(), e); | |||
| return; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| catch (Throwable t) | |||
| { | |||
| myLogger.error(DAILY_CLOCK_THREAD_NAME + " thread caught: " + t.getMessage(), t); | |||
| } | |||
| } | |||
| public void terminate() | |||
| @@ -177,7 +190,7 @@ public abstract class CommEngine extends HttpServlet | |||
| // This change is backward compatible with placing the log4j.properties file in | |||
| // the class path. | |||
| String log4j_properties = confDirPath + "/log4j.properties"; | |||
| // Relocate file property offetting it by the runtimeDirPath | |||
| // Relocate file property offsetting it by the runtimeDirPath | |||
| try | |||
| { | |||
| Properties prop = new Properties(); | |||
| @@ -230,8 +243,6 @@ public abstract class CommEngine extends HttpServlet | |||
| return; | |||
| } | |||
| Thread dailyClock; | |||
| CommonLogger.startup.info(String.format("Dead broadcast viewing period: %d minutes", deadBroadcastViewingMinutes)); | |||
| CommonLogger.startup.info(String.format("service thread pool size: %d", getServiceThreadPoolSize())); | |||