public class org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter extends org.springframework.web.filter.OncePerRequestFilter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
super_class: org.springframework.web.filter.OncePerRequestFilter
{
public static final java.lang.String DEFAULT_ENTITY_MANAGER_FACTORY_BEAN_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "entityManagerFactory"
private java.lang.String entityManagerFactoryBeanName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.String persistenceUnitName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private volatile javax.persistence.EntityManagerFactory entityManagerFactory;
descriptor: Ljavax/persistence/EntityManagerFactory;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.web.filter.OncePerRequestFilter.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
public void setEntityManagerFactoryBeanName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.entityManagerFactoryBeanName:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
0 2 1 entityManagerFactoryBeanName Ljava/lang/String;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
entityManagerFactoryBeanName
protected java.lang.String getEntityManagerFactoryBeanName();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.entityManagerFactoryBeanName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setPersistenceUnitName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.persistenceUnitName:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
0 2 1 persistenceUnitName Ljava/lang/String;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
persistenceUnitName
protected java.lang.String getPersistenceUnitName();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.persistenceUnitName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
protected boolean shouldNotFilterAsyncDispatch();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
protected boolean shouldNotFilterErrorDispatch();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
protected void doFilterInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain);
descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.lookupEntityManagerFactory:(Ljavax/servlet/http/HttpServletRequest;)Ljavax/persistence/EntityManagerFactory;
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: aload 1
invokestatic org.springframework.web.context.request.async.WebAsyncUtils.getAsyncManager:(Ljavax/servlet/ServletRequest;)Lorg/springframework/web/context/request/async/WebAsyncManager;
astore 6
start local 6 3: aload 0
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.getAlreadyFilteredAttributeName:()Ljava/lang/String;
astore 7
start local 7 4: aload 4
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.hasResource:(Ljava/lang/Object;)Z
ifeq 7
5: iconst_1
istore 5
6: goto 21
7: StackMap locals: org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse javax.servlet.FilterChain javax.persistence.EntityManagerFactory int org.springframework.web.context.request.async.WebAsyncManager java.lang.String
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.isAsyncDispatch:(Ljavax/servlet/http/HttpServletRequest;)Z
ifeq 8
iconst_0
goto 9
StackMap locals:
StackMap stack:
8: iconst_1
StackMap locals:
StackMap stack: int
9: istore 8
start local 8 10: iload 8
ifne 11
aload 0
aload 6
aload 7
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.applyEntityManagerBindingInterceptor:(Lorg/springframework/web/context/request/async/WebAsyncManager;Ljava/lang/String;)Z
ifne 21
11: StackMap locals: int
StackMap stack:
aload 0
getfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.logger:Lorg/apache/commons/logging/Log;
ldc "Opening JPA EntityManager in OpenEntityManagerInViewFilter"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
12: aload 0
aload 4
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.createEntityManager:(Ljavax/persistence/EntityManagerFactory;)Ljavax/persistence/EntityManager;
astore 9
start local 9 13: new org.springframework.orm.jpa.EntityManagerHolder
dup
aload 9
invokespecial org.springframework.orm.jpa.EntityManagerHolder.<init>:(Ljavax/persistence/EntityManager;)V
astore 10
start local 10 14: aload 4
aload 10
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.bindResource:(Ljava/lang/Object;Ljava/lang/Object;)V
15: new org.springframework.orm.jpa.support.AsyncRequestInterceptor
dup
aload 4
aload 10
invokespecial org.springframework.orm.jpa.support.AsyncRequestInterceptor.<init>:(Ljavax/persistence/EntityManagerFactory;Lorg/springframework/orm/jpa/EntityManagerHolder;)V
astore 11
start local 11 16: aload 6
aload 7
aload 11
invokevirtual org.springframework.web.context.request.async.WebAsyncManager.registerCallableInterceptor:(Ljava/lang/Object;Lorg/springframework/web/context/request/async/CallableProcessingInterceptor;)V
17: aload 6
aload 7
aload 11
invokevirtual org.springframework.web.context.request.async.WebAsyncManager.registerDeferredResultInterceptor:(Ljava/lang/Object;Lorg/springframework/web/context/request/async/DeferredResultProcessingInterceptor;)V
end local 11 end local 10 end local 9 18: goto 21
19: StackMap locals:
StackMap stack: javax.persistence.PersistenceException
astore 9
start local 9 20: new org.springframework.dao.DataAccessResourceFailureException
dup
ldc "Could not create JPA EntityManager"
aload 9
invokespecial org.springframework.dao.DataAccessResourceFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 end local 8 21: StackMap locals:
StackMap stack:
aload 3
aload 1
aload 2
invokeinterface javax.servlet.FilterChain.doFilter:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
22: goto 31
23: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
24: iload 5
ifne 30
25: aload 4
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
26: checkcast org.springframework.orm.jpa.EntityManagerHolder
astore 9
start local 9 27: aload 0
aload 1
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.isAsyncStarted:(Ljavax/servlet/http/HttpServletRequest;)Z
ifne 30
28: aload 0
getfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.logger:Lorg/apache/commons/logging/Log;
ldc "Closing JPA EntityManager in OpenEntityManagerInViewFilter"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
29: aload 9
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
end local 9 30: StackMap locals: java.lang.Throwable
StackMap stack:
aload 8
athrow
31: StackMap locals:
StackMap stack:
iload 5
ifne 37
32: aload 4
invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource:(Ljava/lang/Object;)Ljava/lang/Object;
33: checkcast org.springframework.orm.jpa.EntityManagerHolder
astore 9
start local 9 34: aload 0
aload 1
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.isAsyncStarted:(Ljavax/servlet/http/HttpServletRequest;)Z
ifne 37
35: aload 0
getfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.logger:Lorg/apache/commons/logging/Log;
ldc "Closing JPA EntityManager in OpenEntityManagerInViewFilter"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
36: aload 9
invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
end local 9 37: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
0 38 1 request Ljavax/servlet/http/HttpServletRequest;
0 38 2 response Ljavax/servlet/http/HttpServletResponse;
0 38 3 filterChain Ljavax/servlet/FilterChain;
1 38 4 emf Ljavax/persistence/EntityManagerFactory;
2 38 5 participate Z
3 38 6 asyncManager Lorg/springframework/web/context/request/async/WebAsyncManager;
4 38 7 key Ljava/lang/String;
10 21 8 isFirstRequest Z
13 18 9 em Ljavax/persistence/EntityManager;
14 18 10 emHolder Lorg/springframework/orm/jpa/EntityManagerHolder;
16 18 11 interceptor Lorg/springframework/orm/jpa/support/AsyncRequestInterceptor;
20 21 9 ex Ljavax/persistence/PersistenceException;
27 30 9 emHolder Lorg/springframework/orm/jpa/EntityManagerHolder;
34 37 9 emHolder Lorg/springframework/orm/jpa/EntityManagerHolder;
Exception table:
from to target type
12 18 19 Class javax.persistence.PersistenceException
21 23 23 any
Exceptions:
throws javax.servlet.ServletException, java.io.IOException
MethodParameters:
Name Flags
request
response
filterChain
protected javax.persistence.EntityManagerFactory lookupEntityManagerFactory(javax.servlet.http.HttpServletRequest);
descriptor: (Ljavax/servlet/http/HttpServletRequest;)Ljavax/persistence/EntityManagerFactory;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
astore 2
start local 2 1: aload 2
ifnonnull 4
2: aload 0
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.lookupEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
astore 2
3: aload 0
aload 2
putfield org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
4: StackMap locals: javax.persistence.EntityManagerFactory
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
0 5 1 request Ljavax/servlet/http/HttpServletRequest;
1 5 2 emf Ljavax/persistence/EntityManagerFactory;
MethodParameters:
Name Flags
request
protected javax.persistence.EntityManagerFactory lookupEntityManagerFactory();
descriptor: ()Ljavax/persistence/EntityManagerFactory;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.getServletContext:()Ljavax/servlet/ServletContext;
invokestatic org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext:(Ljavax/servlet/ServletContext;)Lorg/springframework/web/context/WebApplicationContext;
astore 1
start local 1 1: aload 0
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.getEntityManagerFactoryBeanName:()Ljava/lang/String;
astore 2
start local 2 2: aload 0
invokevirtual org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.getPersistenceUnitName:()Ljava/lang/String;
astore 3
start local 3 3: aload 2
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifeq 5
4: aload 1
aload 2
ldc Ljavax/persistence/EntityManagerFactory;
invokeinterface org.springframework.web.context.WebApplicationContext.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
checkcast javax.persistence.EntityManagerFactory
areturn
5: StackMap locals: org.springframework.web.context.WebApplicationContext java.lang.String java.lang.String
StackMap stack:
aload 3
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifne 7
aload 1
ldc "entityManagerFactory"
invokeinterface org.springframework.web.context.WebApplicationContext.containsBean:(Ljava/lang/String;)Z
ifeq 7
6: aload 1
ldc "entityManagerFactory"
ldc Ljavax/persistence/EntityManagerFactory;
invokeinterface org.springframework.web.context.WebApplicationContext.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
checkcast javax.persistence.EntityManagerFactory
areturn
7: StackMap locals:
StackMap stack:
aload 1
aload 3
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.findEntityManagerFactory:(Lorg/springframework/beans/factory/ListableBeanFactory;Ljava/lang/String;)Ljavax/persistence/EntityManagerFactory;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
1 8 1 wac Lorg/springframework/web/context/WebApplicationContext;
2 8 2 emfBeanName Ljava/lang/String;
3 8 3 puName Ljava/lang/String;
protected javax.persistence.EntityManager createEntityManager(javax.persistence.EntityManagerFactory);
descriptor: (Ljavax/persistence/EntityManagerFactory;)Ljavax/persistence/EntityManager;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface javax.persistence.EntityManagerFactory.createEntityManager:()Ljavax/persistence/EntityManager;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
0 1 1 emf Ljavax/persistence/EntityManagerFactory;
MethodParameters:
Name Flags
emf
private boolean applyEntityManagerBindingInterceptor(org.springframework.web.context.request.async.WebAsyncManager, java.lang.String);
descriptor: (Lorg/springframework/web/context/request/async/WebAsyncManager;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual org.springframework.web.context.request.async.WebAsyncManager.getCallableInterceptor:(Ljava/lang/Object;)Lorg/springframework/web/context/request/async/CallableProcessingInterceptor;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: org.springframework.web.context.request.async.CallableProcessingInterceptor
StackMap stack:
aload 3
checkcast org.springframework.orm.jpa.support.AsyncRequestInterceptor
invokevirtual org.springframework.orm.jpa.support.AsyncRequestInterceptor.bindEntityManager:()V
4: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/orm/jpa/support/OpenEntityManagerInViewFilter;
0 5 1 asyncManager Lorg/springframework/web/context/request/async/WebAsyncManager;
0 5 2 key Ljava/lang/String;
1 5 3 cpi Lorg/springframework/web/context/request/async/CallableProcessingInterceptor;
MethodParameters:
Name Flags
asyncManager
key
}
SourceFile: "OpenEntityManagerInViewFilter.java"