Skip to content

Commit 4811719

Browse files
authored
Merge pull request #84 from networknt/issue83
fixes #83 move the middleware skipping logic to MiddlewareRunnable
2 parents 0ef5dbc + 381b74c commit 4811719

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

src/main/java/com/networknt/aws/lambda/handler/chain/PooledChainLinkExecutor.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,6 @@ private ArrayList<ChainLinkWorker> createChainListWorkers(final ArrayList<Lambda
119119
LOG.debug("Creating thread for link '{}[{}]'.", chainLink.getClass().getName(), linkNumber++);
120120

121121
if (chainLink.isEnabled()) {
122-
// skip the request chain if the request is completed for all middleware that is not isResponseMiddleware().
123-
if (exchange.isRequestComplete() && !chainLink.isResponseMiddleware()) {
124-
LOG.debug("Request is already completed, skipping middleware '{}'", chainLink.getClass().getName());
125-
continue;
126-
}
127122
final var loggingContext = new ChainLinkWorker.AuditThreadContext(MDC.getCopyOfContextMap());
128123
final var runnable = new MiddlewareRunnable(chainLink, exchange, this.chainLinkCallback);
129124
final var worker = new ChainLinkWorker(runnable, loggingContext);

src/main/java/com/networknt/aws/lambda/handler/middleware/MiddlewareRunnable.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
import com.networknt.aws.lambda.LightLambdaExchange;
44
import com.networknt.aws.lambda.handler.LambdaHandler;
55
import com.networknt.aws.lambda.handler.chain.ChainLinkCallback;
6+
import com.networknt.aws.lambda.handler.middleware.router.LambdaRouterMiddleware;
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
69

710
public class MiddlewareRunnable implements Runnable {
11+
private static final Logger LOG = LoggerFactory.getLogger(MiddlewareRunnable.class);
812

913
private final LambdaHandler middlewareHandler;
1014
private final LightLambdaExchange exchange;
@@ -19,7 +23,18 @@ public MiddlewareRunnable(LambdaHandler middlewareHandler, LightLambdaExchange e
1923

2024
@Override
2125
public void run() {
26+
if(LOG.isTraceEnabled()) LOG.trace("Executing middleware {} isResponseMiddleware {} isRequestComplete {}", this.middlewareHandler.getClass().getSimpleName(), this.middlewareHandler.isResponseMiddleware(), this.exchange.isRequestComplete());
2227
try {
28+
if(!this.middlewareHandler.isResponseMiddleware() && this.exchange.isRequestComplete()) {
29+
// skip the request chain if the request is completed for all request middleware.
30+
if(LOG.isTraceEnabled()) LOG.trace("Skipping request middleware {} as request is already complete", this.middlewareHandler.getClass().getSimpleName());
31+
return;
32+
}
33+
if(this.middlewareHandler.isResponseMiddleware() && this.exchange.isResponseComplete()) {
34+
// skip the response chain if the response is completed for all response middleware.
35+
if(LOG.isTraceEnabled()) LOG.trace("Skipping response middleware {} as response is already complete", this.middlewareHandler.getClass().getSimpleName());
36+
return;
37+
}
2338
var status = this.middlewareHandler.execute(this.exchange);
2439
this.callback.callback(this.exchange, status);
2540

0 commit comments

Comments
 (0)