parent
7d0f48289b
commit
6f0a76a65f
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -16,7 +16,6 @@
|
|||
|
||||
package org.springframework.orm.jpa.support;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
|
@ -25,9 +24,6 @@ import javax.persistence.EntityManagerFactory;
|
|||
import javax.servlet.AsyncEvent;
|
||||
import javax.servlet.AsyncListener;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
@ -77,7 +73,7 @@ public class OpenEntityManagerInViewTests {
|
|||
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
public void setUp() {
|
||||
factory = mock(EntityManagerFactory.class);
|
||||
manager = mock(EntityManager.class);
|
||||
|
||||
|
@ -90,7 +86,7 @@ public class OpenEntityManagerInViewTests {
|
|||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDown() throws Exception {
|
||||
public void tearDown() {
|
||||
assertThat(TransactionSynchronizationManager.getResourceMap().isEmpty()).isTrue();
|
||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
||||
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
||||
|
@ -98,7 +94,7 @@ public class OpenEntityManagerInViewTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testOpenEntityManagerInViewInterceptor() throws Exception {
|
||||
public void testOpenEntityManagerInViewInterceptor() {
|
||||
OpenEntityManagerInViewInterceptor interceptor = new OpenEntityManagerInViewInterceptor();
|
||||
interceptor.setEntityManagerFactory(this.factory);
|
||||
|
||||
|
@ -150,12 +146,7 @@ public class OpenEntityManagerInViewTests {
|
|||
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(this.webRequest);
|
||||
asyncManager.setTaskExecutor(new SyncTaskExecutor());
|
||||
asyncManager.setAsyncWebRequest(asyncWebRequest);
|
||||
asyncManager.startCallableProcessing(new Callable<String>() {
|
||||
@Override
|
||||
public String call() throws Exception {
|
||||
return "anything";
|
||||
}
|
||||
});
|
||||
asyncManager.startCallableProcessing((Callable<String>) () -> "anything");
|
||||
|
||||
interceptor.afterConcurrentHandlingStarted(this.webRequest);
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
||||
|
@ -209,12 +200,7 @@ public class OpenEntityManagerInViewTests {
|
|||
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(this.request);
|
||||
asyncManager.setTaskExecutor(new SyncTaskExecutor());
|
||||
asyncManager.setAsyncWebRequest(asyncWebRequest);
|
||||
asyncManager.startCallableProcessing(new Callable<String>() {
|
||||
@Override
|
||||
public String call() throws Exception {
|
||||
return "anything";
|
||||
}
|
||||
});
|
||||
asyncManager.startCallableProcessing((Callable<String>) () -> "anything");
|
||||
|
||||
interceptor.afterConcurrentHandlingStarted(this.webRequest);
|
||||
assertThat(TransactionSynchronizationManager.hasResource(this.factory)).isFalse();
|
||||
|
@ -251,17 +237,12 @@ public class OpenEntityManagerInViewTests {
|
|||
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(this.request);
|
||||
asyncManager.setTaskExecutor(new SyncTaskExecutor());
|
||||
asyncManager.setAsyncWebRequest(asyncWebRequest);
|
||||
asyncManager.startCallableProcessing(new Callable<String>() {
|
||||
@Override
|
||||
public String call() throws Exception {
|
||||
return "anything";
|
||||
}
|
||||
});
|
||||
asyncManager.startCallableProcessing((Callable<String>) () -> "anything");
|
||||
|
||||
interceptor.afterConcurrentHandlingStarted(this.webRequest);
|
||||
assertThat(TransactionSynchronizationManager.hasResource(this.factory)).isFalse();
|
||||
|
||||
// Async request timeout
|
||||
// Async request error
|
||||
|
||||
given(this.manager.isOpen()).willReturn(true);
|
||||
|
||||
|
@ -305,21 +286,14 @@ public class OpenEntityManagerInViewTests {
|
|||
final OpenEntityManagerInViewFilter filter2 = new OpenEntityManagerInViewFilter();
|
||||
filter2.init(filterConfig2);
|
||||
|
||||
final FilterChain filterChain = new FilterChain() {
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
||||
servletRequest.setAttribute("invoked", Boolean.TRUE);
|
||||
}
|
||||
final FilterChain filterChain = (servletRequest, servletResponse) -> {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
||||
servletRequest.setAttribute("invoked", Boolean.TRUE);
|
||||
};
|
||||
|
||||
final FilterChain filterChain2 = new FilterChain() {
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
|
||||
throws IOException, ServletException {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory2)).isTrue();
|
||||
filter.doFilter(servletRequest, servletResponse, filterChain);
|
||||
}
|
||||
final FilterChain filterChain2 = (servletRequest, servletResponse) -> {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory2)).isTrue();
|
||||
filter.doFilter(servletRequest, servletResponse, filterChain);
|
||||
};
|
||||
|
||||
FilterChain filterChain3 = new PassThroughFilterChain(filter2, filterChain2);
|
||||
|
@ -366,25 +340,18 @@ public class OpenEntityManagerInViewTests {
|
|||
|
||||
final AtomicInteger count = new AtomicInteger(0);
|
||||
|
||||
final FilterChain filterChain = new FilterChain() {
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
||||
servletRequest.setAttribute("invoked", Boolean.TRUE);
|
||||
count.incrementAndGet();
|
||||
}
|
||||
final FilterChain filterChain = (servletRequest, servletResponse) -> {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
||||
servletRequest.setAttribute("invoked", Boolean.TRUE);
|
||||
count.incrementAndGet();
|
||||
};
|
||||
|
||||
final AtomicInteger count2 = new AtomicInteger(0);
|
||||
|
||||
final FilterChain filterChain2 = new FilterChain() {
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
|
||||
throws IOException, ServletException {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory2)).isTrue();
|
||||
filter.doFilter(servletRequest, servletResponse, filterChain);
|
||||
count2.incrementAndGet();
|
||||
}
|
||||
final FilterChain filterChain2 = (servletRequest, servletResponse) -> {
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory2)).isTrue();
|
||||
filter.doFilter(servletRequest, servletResponse, filterChain);
|
||||
count2.incrementAndGet();
|
||||
};
|
||||
|
||||
FilterChain filterChain3 = new PassThroughFilterChain(filter2, filterChain2);
|
||||
|
@ -395,12 +362,7 @@ public class OpenEntityManagerInViewTests {
|
|||
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(this.request);
|
||||
asyncManager.setTaskExecutor(new SyncTaskExecutor());
|
||||
asyncManager.setAsyncWebRequest(asyncWebRequest);
|
||||
asyncManager.startCallableProcessing(new Callable<String>() {
|
||||
@Override
|
||||
public String call() throws Exception {
|
||||
return "anything";
|
||||
}
|
||||
});
|
||||
asyncManager.startCallableProcessing((Callable<String>) () -> "anything");
|
||||
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
||||
assertThat(TransactionSynchronizationManager.hasResource(factory2)).isFalse();
|
||||
|
@ -434,6 +396,7 @@ public class OpenEntityManagerInViewTests {
|
|||
wac.close();
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
private static class SyncTaskExecutor extends SimpleAsyncTaskExecutor {
|
||||
|
||||
|
|
Loading…
Reference in New Issue