]> git.argeo.org Git - gpl/argeo-slc.git/blob - ext/javax.mail.mbox/src/com/sun/mail/remote/RemoteInbox.java
Make logging synchronous during native image build
[gpl/argeo-slc.git] / ext / javax.mail.mbox / src / com / sun / mail / remote / RemoteInbox.java
1 /*
2 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
3 *
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v. 2.0, which is available at
6 * http://www.eclipse.org/legal/epl-2.0.
7 *
8 * This Source Code may also be made available under the following Secondary
9 * Licenses when the conditions for such availability set forth in the
10 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11 * version 2 with the GNU Classpath Exception, which is available at
12 * https://www.gnu.org/software/classpath/license.html.
13 *
14 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15 */
16
17 package com.sun.mail.remote;
18
19 import javax.mail.*;
20 import com.sun.mail.mbox.*;
21
22 /**
23 * A remote Inbox folder. The data is actually managed by our subclass
24 * (<code>MboxFolder</code>). We fetch data from the remote Inbox and
25 * add it to the local Inbox.
26 *
27 * @author Bill Shannon
28 */
29
30 public class RemoteInbox extends MboxFolder {
31
32 private RemoteStore mstore;
33
34 protected RemoteInbox(RemoteStore store, String name) {
35 super(store, name);
36 this.mstore = store;
37 }
38
39 /**
40 * Poll the remote store for any new messages.
41 */
42 public synchronized boolean hasNewMessages() {
43 try {
44 mstore.updateInbox();
45 } catch (MessagingException ex) {
46 // ignore it
47 }
48 return super.hasNewMessages();
49 }
50
51 /**
52 * Open the folder in the specified mode.
53 * Poll the remote store for any new messages first.
54 */
55 public synchronized void open(int mode) throws MessagingException {
56 mstore.updateInbox();
57 super.open(mode);
58 }
59
60 /**
61 * Return the number of messages in this folder.
62 * Poll the remote store for any new messages first.
63 */
64 public synchronized int getMessageCount() throws MessagingException {
65 mstore.updateInbox();
66 return super.getMessageCount();
67 }
68 }