org.jboss.ejb.plugins
Class EntityReentranceInterceptor

java.lang.Object
  extended byorg.jboss.ejb.plugins.AbstractInterceptor (src) 
      extended byorg.jboss.ejb.plugins.EntityReentranceInterceptor
All Implemented Interfaces:
AllowedOperationsFlags (src) , ContainerPlugin (src) , Interceptor (src) , Service (src)

public class EntityReentranceInterceptor
extends AbstractInterceptor (src)

The role of this interceptor is to check for reentrancy. Per the spec, throw an exception if instance is not marked as reentrant. We do not check to see if same Tx is accessing object at the same time as we assume that any transactional locks will handle this.

WARNING: critical code, get approval from senior developers before changing.


Field Summary
protected  boolean reentrant
           
 
Fields inherited from class org.jboss.ejb.plugins.AbstractInterceptor (src)
container, log, nextInterceptor
 
Fields inherited from interface org.jboss.ejb.AllowedOperationsFlags (src)
IN_AFTER_BEGIN, IN_AFTER_COMPLETION, IN_BEFORE_COMPLETION, IN_BUSINESS_METHOD, IN_EJB_ACTIVATE, IN_EJB_CREATE, IN_EJB_FIND, IN_EJB_HOME, IN_EJB_LOAD, IN_EJB_PASSIVATE, IN_EJB_POST_CREATE, IN_EJB_REMOVE, IN_EJB_STORE, IN_EJB_TIMEOUT, IN_INTERCEPTOR_METHOD, IN_SERVICE_ENDPOINT_METHOD, IN_SET_ENTITY_CONTEXT, IN_SET_MESSAGE_DRIVEN_CONTEXT, IN_SET_SESSION_CONTEXT, IN_UNSET_ENTITY_CONTEXT, NOT_ALLOWED
 
Constructor Summary
EntityReentranceInterceptor()
           
 
Method Summary
 java.lang.Object invoke(Invocation (src)  mi)
          ???
protected  boolean isReentrantMethod(Invocation (src)  mi)
           
protected  boolean isTxExpired(Transaction (src)  miTx)
           
 void setContainer(Container (src)  container)
          This callback is set by the container so that the plugin may access it
 
Methods inherited from class org.jboss.ejb.plugins.AbstractInterceptor (src)
create, destroy, getContainer, getNext, invokeHome, setNext, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

reentrant

protected boolean reentrant
Constructor Detail

EntityReentranceInterceptor

public EntityReentranceInterceptor()
Method Detail

setContainer

public void setContainer(Container (src)  container)
Description copied from interface: ContainerPlugin (src)
This callback is set by the container so that the plugin may access it

Specified by:
setContainer in interface ContainerPlugin (src)
Overrides:
setContainer in class AbstractInterceptor (src)

isTxExpired

protected boolean isTxExpired(Transaction (src)  miTx)
                       throws java.lang.Exception
Throws:
java.lang.Exception

invoke

public java.lang.Object invoke(Invocation (src)  mi)
                        throws java.lang.Exception
Description copied from interface: Interceptor (src)
???

Specified by:
invoke in interface Interceptor (src)
Overrides:
invoke in class AbstractInterceptor (src)
Throws:
java.lang.Exception

isReentrantMethod

protected boolean isReentrantMethod(Invocation (src)  mi)