/** * The timeout thread. If it wakes from the sleep, future input is stopped and the request is * timed out. */ public final void run() { try { if (Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, message.name + "client timer started, " + timeToWait + " milliseconds"); } sleep(timeToWait); message.acceptReplies = false; if (Debug.LDAP_DEBUG) { Debug.trace(Debug.messages, message.name + "client timed out"); } // Note: Abandon clears the bind semaphore after failed bind. message.abandon( null, new InterThreadException( "Client request timed out", null, LDAPException.LDAP_TIMEOUT, null, message)); } catch (InterruptedException ie) { if (Debug.LDAP_DEBUG) { Debug.trace(Debug.messages, message.name + "timer stopped"); } // the timer was stopped, do nothing } return; }
/* package */ final synchronized Message findMessageById(int msgId) throws NoSuchFieldException { Message msg = null; for (int i = 0; i < elementCount; i++) { if ((msg = (Message) elementData[i]) == null) { throw new NoSuchFieldException(); } if (msg.getMessageID() == msgId) { return msg; } } throw new NoSuchFieldException(); }