package railo.cli;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class Closer extends Thread {
private String name;
private Registry reg;
private long idleTime;
private CLIInvokerImpl invoker;
public Closer(Registry reg, CLIInvokerImpl invoker, String name, long idleTime) {
this.reg=reg;
this.name=name;
this.idleTime=idleTime;
this.invoker=invoker;
}
public void run() {
// idle
do{
sleepEL(idleTime);
}
while(invoker.lastAccess()+idleTime>System.currentTimeMillis());
try {
reg.unbind(name);
UnicastRemoteObject.unexportObject(invoker,true);
} catch (Throwable t) {
t.printStackTrace();
}
}
private void sleepEL(long millis) {
try {
sleep(millis);
} catch (Throwable t) {t.printStackTrace();}
}
}