| 115 | | protected void handleBeginIdle() { |
| | 116 | protected void handleBeginIdle() throws IOException, MailException { |
| | 117 | if(incomingClient.hasIdle()) { |
| | 118 | incomingClient.idleModeBegin(); |
| | 119 | boolean endIdle = false; |
| | 120 | while(!endIdle) { |
| | 121 | sleepConnectionThread(500); |
| | 122 | if(incomingClient.idleModePoll()) { |
| | 123 | addRequest( |
| | 124 | IncomingMailConnectionHandler.REQUEST_FOLDER_MESSAGES_RECENT, |
| | 125 | new Object[] { incomingClient.getActiveFolder() }); |
| | 126 | endIdle = true; |
| | 127 | } |
| | 128 | else if(getShutdownInProgress()) { |
| | 129 | endIdle = true; |
| | 130 | } |
| | 131 | else |
| | 132 | { |
| | 133 | Queue requestQueue = getRequestQueue(); |
| | 134 | synchronized(requestQueue) { |
| | 135 | if(requestQueue.element() != null) { |
| | 136 | endIdle = true; |
| | 137 | } |
| | 138 | } |
| | 139 | } |
| | 140 | } |
| | 141 | incomingClient.idleModeEnd(); |
| | 142 | } |