public void acquireLog() {
        synchronized (fLogLengthTable) {
            String  ip          = null;
            String  logKey      = null;
            int     logLength   = 0;
            Integer lengthValue = null;
            
            fLogAcquired = false;
            MeetingProtocol.getInstance().logLengthRequest(fInternalRoomName);
            try {
                fLogLengthTable.wait(4 * 1000);   // 4 seconds
          	} catch (InterruptedException e) {}
            
            while (fLogLengthTable.size() > 0 && !fLogAcquired) {
                //
                // Find the longest log.
                //
                Enumeration<String> keys = fLogLengthTable.keys();
                ip 			= null;
                logKey 		= null;
                logLength 	= 0;
                
                while (keys.hasMoreElements()) {
                    logKey = keys.nextElement();
                    lengthValue = fLogLengthTable.get(logKey);
                    if (ip == null) {
                        ip = logKey;
                        logLength = lengthValue.intValue();
                    } else if (logLength < lengthValue.intValue()) {
                        ip = logKey;
                        logLength = lengthValue.intValue();
                    }
                } 
                //
                // Ask the log only if the logLength is greater than the length of
                // my log. In the near future, acquireLog() could be called anytime. [V1.75]
                //
                if (logLength > fLogText.length()) {
                    MiscProtocol.getInstance().logRequest(fInternalRoomName, ip);
                    try {
                        fLogLengthTable.wait(3 * 1000); // wait 3 seconds
                    } catch (InterruptedException e) {}

					if (fLogAcquired) {
						fLogArea.clear();
						fLogArea.appendText(fLogText.toString());
					}
                }
                
                fLogLengthTable.remove(ip);
            }
            fLogAcquired = true;
        }
    }