/**
	 * @see org.xmpp.component.Component#processPacket(org.xmpp.packet.Packet)
	 */
		public sealed void processPacket(Packet packet)
		{
			Packet copy = packet.createCopy();

			if (executor == null) {

			}
			try
			{
				executor.execute(new PacketProcessor(copy));
			}
			catch (RejectedExecutionException ex)
			{
				log.error("(serving component '" + getName()
				      + "') Unable to process packet! "
				      + "Is the thread pool queue exhausted? "
				      + "Packet dropped in component '" + getName()
				      + "'. Packet that's dropped: " + packet.toXML(), ex);
				// If the original packet was an IQ request, we should return an
				// error.
				if (packet is IQ && ((IQ) packet).isRequest()) {
					IQ response = IQ.createResultIQ((IQ) packet);
					response.setError(Condition.internal_server_error);
					send(response);
				}
			}
		}