diff src/goodjava/webserver/handlers/DomainHandler.java @ 1850:64b7076c635c

better link_to_domain
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 22 Feb 2025 20:26:31 -0700
parents 9d9683e76496
children
line wrap: on
line diff
--- a/src/goodjava/webserver/handlers/DomainHandler.java	Fri Feb 21 12:23:56 2025 -0700
+++ b/src/goodjava/webserver/handlers/DomainHandler.java	Sat Feb 22 20:26:31 2025 -0700
@@ -24,6 +24,10 @@
 		public Handler newHandler(String domain);
 	}
 
+	public interface HandlerCloseable extends Closeable {
+		public boolean isClosed();
+	}
+
 	private static class MyTask extends TimerTask {
 		private final Set<Handler> dontGc;
 
@@ -70,6 +74,10 @@
 		domain = domain.toLowerCase().intern();
 		synchronized(domain) {
 			Handler handler = map.get(domain);
+			if( handler instanceof HandlerCloseable && ((HandlerCloseable)handler).isClosed() ) {
+				removeHandler(domain);
+				handler = null;
+			}
 			if( handler == null ) {
 				//if(ref!=null) logger.info("gc "+domain);
 				handler = factory.newHandler(domain);