private final void timeOutStrayHandlers()
	{
		List<HTTPIOHandler> handlersToShutDown = null;
		synchronized(handlers)
		{
			// remove any stray handlers from time to time
			if(handlers.size() == 0)
				return;
			final Iterator<HTTPIOHandler> i;
			try
			{
				i=handlers.iterator();
			}
			catch(java.lang.IndexOutOfBoundsException x)
			{
				handlers.clear();
				throw x;
			}
			for(; i.hasNext(); )
			{
				try
				{
					final HTTPIOHandler handler=i.next();
					if(handler.isCloseable())
					{
						if(handlersToShutDown == null)
						{
							handlersToShutDown = new LinkedList<HTTPIOHandler>();
						}
						handlersToShutDown.add(handler);
						i.remove();
					}
				}
				catch(NullPointerException e)
				{
					try
					{
						i.remove();
					}
					catch(Exception xe){ }
				}
			}
		}
		if(handlersToShutDown != null)
		{
			for(final HTTPIOHandler handler : handlersToShutDown)
			{
				handler.closeAndWait();
			}
		}
	}