Skip to content

Commit b216b82

Browse files
committed
#198: Mark failed Transport objects as faulty
1 parent d5e93fd commit b216b82

File tree

2 files changed

+5
-10
lines changed

2 files changed

+5
-10
lines changed

modules/batch-module/src/main/java/org/simplejavamail/internal/batchsupport/BatchSupport.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public ExecutorService createDefaultExecutorService(final int threadPoolSize, fi
7373
public LifecycleDelegatingTransport acquireTransport(@Nonnull final Session session) {
7474
try {
7575
SimpleDelegatingPoolable<Transport> poolableTransport = smtpConnectionPool.claimResourceFromPool(new ResourcePoolKey<>(session));
76-
return new LifecycleDelegatingTransportImpl(smtpConnectionPool, poolableTransport);
76+
return new LifecycleDelegatingTransportImpl(poolableTransport);
7777
} catch (InterruptedException e) {
7878
throw new BatchException(format(ERROR_ACQUIRING_KEYED_POOLABLE, session), e);
7979
}

modules/batch-module/src/main/java/org/simplejavamail/internal/batchsupport/LifecycleDelegatingTransportImpl.java

+4-9
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,25 @@
22

33
import org.bbottema.clusterstormpot.util.SimpleDelegatingPoolable;
44
import org.simplejavamail.api.internal.batchsupport.LifecycleDelegatingTransport;
5-
import org.simplejavamail.smtpconnectionpool.SmtpConnectionPool;
65

76
import javax.annotation.Nonnull;
87
import javax.mail.Transport;
98

109
/**
1110
* Wraps {@link SimpleDelegatingPoolable} to implement {@link LifecycleDelegatingTransport}, so transport resources
12-
* can be used outside the batchmodule and released to be reused.
11+
* can be used outside the batchmodule and released to be reused in connection pool.
1312
*/
1413
class LifecycleDelegatingTransportImpl implements LifecycleDelegatingTransport {
1514
private final SimpleDelegatingPoolable<Transport> pooledTransport;
16-
private final SmtpConnectionPool smtpConnectionPool;
1715

18-
LifecycleDelegatingTransportImpl(final SmtpConnectionPool smtpConnectionPool, final SimpleDelegatingPoolable<Transport> pooledTransport) {
19-
this.smtpConnectionPool = smtpConnectionPool;
16+
LifecycleDelegatingTransportImpl(final SimpleDelegatingPoolable<Transport> pooledTransport) {
2017
this.pooledTransport = pooledTransport;
2118
}
2219

2320
@Nonnull
2421
@Override
2522
public Transport getTransport() {
26-
return pooledTransport.getDelegate();
23+
return pooledTransport.getAllocatedDelegate();
2724
}
2825

2926
@Override
@@ -33,8 +30,6 @@ public void signalTransportUsed() {
3330

3431
@Override
3532
public void signalTransportFailed() {
36-
// FIXME handle failed Transport intance
37-
//smtpConnectionPool.
38-
//pooledTransport.
33+
pooledTransport.releaseFaulty();
3934
}
4035
}

0 commit comments

Comments
 (0)