Skip to content

Commit 5543206

Browse files
committed
fix Reset Users
im was a stale objects, so old emails from before reset were shown instead of new emails (cherry picked from commit 456884e)
1 parent 0861b1f commit 5543206

11 files changed

+16
-13
lines changed

src/main/java/uk/co/bigsoft/greenmail/http/commands/BaseHandler.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@ public abstract class BaseHandler implements Handler {
1010
protected GreenMail gm;
1111
protected Utils utils = new Utils();
1212
protected Dto dto = new Dto();
13-
protected ImapHostManager im = null;
1413

1514
public BaseHandler(GreenMail greenMail) {
1615
gm = greenMail;
17-
im = gm.getManagers().getUserManager().getImapHostManager();
16+
}
17+
18+
protected ImapHostManager getIm() {
19+
// can't be cached as member, or it would be a stale objekt after gm.reset() from ResetCommand
20+
return gm.getManagers().getUserManager().getImapHostManager();
1821
}
1922
}

src/main/java/uk/co/bigsoft/greenmail/http/commands/DeleteMailboxCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ public DeleteMailboxCommand(GreenMail greenMail) {
1414

1515
@Override
1616
public void handle(Context ctx) throws Exception {
17-
MailFolder mb = utils.getMailbox(ctx, im);
17+
MailFolder mb = utils.getMailbox(ctx, getIm());
1818
if (mb.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
1919
ctx.json("ERROR");
2020
return;
2121
}
2222
mb.deleteAllMessages();
23-
im.getStore().deleteMailbox(mb);
23+
getIm().getStore().deleteMailbox(mb);
2424
mb.expunge();
2525
ctx.json("OK");
2626
}

src/main/java/uk/co/bigsoft/greenmail/http/commands/DeleteMessageCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public DeleteMessageCommand(GreenMail greenMail) {
1616

1717
@Override
1818
public void handle(Context ctx) throws Exception {
19-
MailFolder mailbox = utils.getMailbox(ctx, im);
19+
MailFolder mailbox = utils.getMailbox(ctx, getIm());
2020
long uid = utils.getUid(ctx);
2121
StoredMessage sm = mailbox.getMessage(uid);
2222

src/main/java/uk/co/bigsoft/greenmail/http/commands/EmlExportCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public EmlExportCommand(GreenMail greenMail) {
1818

1919
@Override
2020
public void handle(Context ctx) throws Exception {
21-
MailFolder mailbox = utils.getMailbox(ctx, im);
21+
MailFolder mailbox = utils.getMailbox(ctx, getIm());
2222
long uid = utils.getUid(ctx);
2323
StoredMessage sm = mailbox.getMessage(uid);
2424
MimeMessage mime = sm.getMimeMessage();

src/main/java/uk/co/bigsoft/greenmail/http/commands/ImapAllMessagesCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public ImapAllMessagesCommand(GreenMail greenMail) {
2323

2424
@Override
2525
public void handle(Context ctx) throws Exception {
26-
List<MessageDto> all = getAllMessages(im.getStore());
26+
List<MessageDto> all = getAllMessages(getIm().getStore());
2727
ctx.json(all);
2828
}
2929

src/main/java/uk/co/bigsoft/greenmail/http/commands/ImapGetInBoxCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public ImapGetInBoxCommand(GreenMail greenMail) {
1515
@Override
1616
public void handle(Context ctx) throws Exception {
1717
GreenMailUser u = utils.getUser(ctx, gm.getManagers().getUserManager());
18-
MailFolder mf = im.getInbox(u);
18+
MailFolder mf = getIm().getInbox(u);
1919
ctx.json(dto.toMessages(mf, mf.getMessages()));
2020
}
2121

src/main/java/uk/co/bigsoft/greenmail/http/commands/ImapListMailBoxCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public ImapListMailBoxCommand(GreenMail greenMail) {
2020
@Override
2121
public void handle(Context ctx) throws Exception {
2222
GreenMailUser user = utils.getUser(ctx, gm.getManagers().getUserManager());
23-
Collection<MailFolder> mailboxes = im.listMailboxes(user, "*");
23+
Collection<MailFolder> mailboxes = getIm().listMailboxes(user, "*");
2424
ctx.json(dto.toMailFolder(mailboxes));
2525
}
2626

src/main/java/uk/co/bigsoft/greenmail/http/commands/ListDomainMessageCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public void handle(Context ctx) throws Exception {
2929
String domain = utils.getDomain(ctx);
3030
List<MessageDto> messages = new ArrayList<>();
3131

32-
for(MailFolder mailbox : im.getStore().listMailboxes("*")) {
32+
for(MailFolder mailbox : getIm().getStore().listMailboxes("*")) {
3333
ArrayList<StoredMessage> end;
3434
if ("from".equals(who)) {
3535
end = filterBySender(domain, mailbox.getMessages());

src/main/java/uk/co/bigsoft/greenmail/http/commands/ListUserMessageCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public void handle(Context ctx) throws Exception {
2929
String email = utils.getEmail(ctx);
3030
List<MessageDto> messages = new ArrayList<>();
3131

32-
for(MailFolder mailbox : im.getStore().listMailboxes("*")) {
32+
for(MailFolder mailbox : getIm().getStore().listMailboxes("*")) {
3333
ArrayList<StoredMessage> end;
3434
if ("from".equals(who)) {
3535
end = filterBySender(email, mailbox.getMessages());

src/main/java/uk/co/bigsoft/greenmail/http/commands/MailboxMessagesCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public MailboxMessagesCommand(GreenMail greenMail) {
1919

2020
@Override
2121
public void handle(Context ctx) throws Exception {
22-
MailFolder mailbox = utils.getMailbox(ctx, im);
22+
MailFolder mailbox = utils.getMailbox(ctx, getIm());
2323
Collection<StoredMessage> messages = mailbox.getMessages();
2424
ctx.json(dto.toMessages(mailbox, messages));
2525
}

0 commit comments

Comments
 (0)