public final class org.glassfish.ejb.mdb.MessageBeanContainer extends com.sun.ejb.containers.BaseContainer implements org.glassfish.ejb.api.MessageBeanProtocolManager
{
private static final java.util.logging.Logger _logger;
private final java.lang.String appEJBName_;
private static com.sun.enterprise.util.LocalStringManagerImpl localStrings;
private org.glassfish.ejb.spi.MessageBeanClient messageBeanClient;
private com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool;
private com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor;
private int maxMessageBeanListeners_;
private int numMessageBeanListeners_;
private java.lang.Class messageBeanInterface;
private java.lang.Class messageBeanSubClass;
private static final java.lang.String MESSAGE_BEAN_CLIENT_FACTORY_PROP;
private static final java.lang.String DEFAULT_MESSAGE_BEAN_CLIENT_FACTORY;
private static final int DEFAULT_RESIZE_QUANTITY;
private static final int DEFAULT_STEADY_SIZE;
private static final int DEFAULT_MAX_POOL_SIZE;
private static final int DEFAULT_IDLE_TIMEOUT;
private static final int MIN_IDLE_TIMEOUT;
private com.sun.appserv.connectors.internal.api.TransactedPoolManager transactedPoolManager;
private final java.lang.Class messageListenerType_;
void <init>(org.glassfish.ejb.deployment.descriptor.EjbDescriptor, java.lang.ClassLoader, com.sun.enterprise.security.SecurityManager) throws java.lang.Exception
{
org.glassfish.ejb.mdb.MessageBeanInterfaceGenerator v;
com.sun.enterprise.deployment.runtime.BeanPoolDescriptor v;
java.lang.reflect.Method[] v;
org.glassfish.api.invocation.ComponentInvocation v;
java.lang.reflect.Method v;
boolean v;
com.sun.enterprise.admin.monitor.callflow.ComponentType v;
java.util.logging.Logger v;
java.lang.Exception v;
org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor v;
com.sun.enterprise.deployment.Application v;
java.lang.ClassLoader v;
org.glassfish.ejb.deployment.descriptor.EjbDescriptor v;
org.glassfish.hk.api.ServiceLocator v, v;
java.lang.Throwable v;
org.glassfish.api.invocation.InvocationManager v, v, v;
java.lang.Object[] v;
com.sun.enterprise.security.SecurityManager v;
java.lang.'annotation'.Annotation[] v, v;
java.lang.reflect.Constructor v;
java.util.logging.Level v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
int v, v, v;
com.sun.ejb.containers.BaseContainer$ContainerType v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.glassfish.ejb.spi.MessageBeanClient v, v, v, v;
java.lang.Class[] v;
java.lang.Class v, v, v, v, v, v, v, v;
java.lang.Object v, v;
com.sun.ejb.containers.EjbContainerUtil v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: org.glassfish.ejb.deployment.descriptor.EjbDescriptor;
v := @parameter: java.lang.ClassLoader;
v := @parameter: com.sun.enterprise.security.SecurityManager;
v = <com.sun.ejb.containers.BaseContainer$ContainerType: com.sun.ejb.containers.BaseContainer$ContainerType MESSAGE_DRIVEN>;
specialinvoke v.<com.sun.ejb.containers.BaseContainer: void <init>(com.sun.ejb.containers.BaseContainer$ContainerType,org.glassfish.ejb.deployment.descriptor.EjbDescriptor,java.lang.ClassLoader,com.sun.enterprise.security.SecurityManager)>(v, v, v, v);
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void initializeProtocolManager()>();
v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isMessageDriven> = 1;
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbDescriptor: com.sun.enterprise.deployment.Application getApplication()>();
v = virtualinvoke v.<com.sun.enterprise.deployment.Application: java.lang.String getRegistrationName()>();
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbDescriptor: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_> = v;
v = null;
label:
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbDescriptor: java.lang.String getEjbClassName()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor: java.lang.String getMessageListenerType()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageListenerType_> = v;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageListenerType_>;
v = staticinvoke <org.glassfish.ejb.mdb.MessageBeanContainer: boolean isModernMessageListener(java.lang.Class)>(v);
if v == 0 goto label;
v = new org.glassfish.ejb.mdb.MessageBeanInterfaceGenerator;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanInterfaceGenerator: void <init>(java.lang.ClassLoader)>(v);
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanInterfaceGenerator: java.lang.Class generateMessageBeanInterface(java.lang.Class)>(v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageBeanInterface> = v;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageBeanInterface>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanInterfaceGenerator: java.lang.Class generateMessageBeanSubClass(java.lang.Class,java.lang.Class)>(v, v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageBeanSubClass> = v;
label:
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor: java.lang.reflect.Method[] getMessageListenerInterfaceMethods(java.lang.ClassLoader)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.InvocationInfo addInvocationInfo(java.lang.reflect.Method,java.lang.String,java.lang.Class)>(v, "Bean", null);
v = v + 1;
goto label;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.EjbContainerUtil ejbContainerUtilImpl>;
v = interfaceinvoke v.<com.sun.ejb.containers.EjbContainerUtil: org.glassfish.hk.api.ServiceLocator getServices()>();
v = newarray (java.lang.'annotation'.Annotation)[0];
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.lang.Object getService(java.lang.Class,java.lang.'annotation'.Annotation[])>(class "Lcom/sun/appserv/connectors/internal/api/TransactedPoolManager;", v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.appserv.connectors.internal.api.TransactedPoolManager transactedPoolManager> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("com.sun.enterprise.MessageBeanClientFactory");
if v == null goto label;
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
goto label;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.EjbContainerUtil ejbContainerUtilImpl>;
v = interfaceinvoke v.<com.sun.ejb.containers.EjbContainerUtil: org.glassfish.hk.api.ServiceLocator getServices()>();
v = newarray (java.lang.'annotation'.Annotation)[0];
interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.lang.Object getService(java.lang.Class,java.lang.String,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/ejb/spi/MessageBeanClientFactory;", "ConnectorMessageBeanClientFactory", v);
label:
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Using \u for message bean client factory in \u0001");
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void createMessageBeanPool(org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getMaxPoolSize()>();
v.<org.glassfish.ejb.mdb.MessageBeanContainer: int maxMessageBeanListeners_> = v;
v.<org.glassfish.ejb.mdb.MessageBeanContainer: int numMessageBeanListeners_> = 0;
v = interfaceinvoke v.<org.glassfish.ejb.spi.MessageBeanClientFactory: org.glassfish.ejb.spi.MessageBeanClient createMessageBeanClient(com.sun.enterprise.deployment.EjbMessageBeanDescriptor)>(v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.ejb.spi.MessageBeanClient messageBeanClient> = v;
v = specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.ComponentInvocation createComponentInvocation()>();
v.<org.glassfish.api.invocation.ComponentInvocation: java.lang.Object container> = v;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: void preInvoke(org.glassfish.api.invocation.ComponentInvocation)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.ejb.spi.MessageBeanClient messageBeanClient>;
interfaceinvoke v.<org.glassfish.ejb.spi.MessageBeanClient: void setup(org.glassfish.ejb.api.MessageBeanProtocolManager)>(v);
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void registerMonitorableComponents(java.lang.reflect.Method[])>(v);
v = <com.sun.enterprise.admin.monitor.callflow.ComponentType: com.sun.enterprise.admin.monitor.callflow.ComponentType MDB>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void createCallFlowAgent(com.sun.enterprise.admin.monitor.callflow.ComponentType)>(v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: void postInvoke(org.glassfish.api.invocation.ComponentInvocation)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.ejb.spi.MessageBeanClient messageBeanClient>;
if v == null goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.ejb.spi.MessageBeanClient messageBeanClient>;
interfaceinvoke v.<org.glassfish.ejb.spi.MessageBeanClient: void close()>();
label:
throw v;
label:
v := @caughtexception;
if v == null goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: void postInvoke(org.glassfish.api.invocation.ComponentInvocation)>(v);
label:
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void startApplication(boolean)
{
com.sun.enterprise.deployment.runtime.BeanPoolDescriptor v;
java.util.logging.Level v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
int v;
java.lang.String v, v, v;
boolean v, v;
org.glassfish.ejb.spi.MessageBeanClient v;
java.lang.RuntimeException v;
java.util.logging.Logger v;
java.lang.Exception v;
com.sun.ejb.containers.util.pool.AbstractPool v, v;
java.lang.Class v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: boolean;
specialinvoke v.<com.sun.ejb.containers.BaseContainer: void startApplication(boolean)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
v = v instanceof com.sun.ejb.containers.util.pool.NonBlockingPool;
if v == 0 goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getSteadyPoolSize()>();
virtualinvoke v.<com.sun.ejb.containers.util.pool.NonBlockingPool: void prepopulate(int)>(v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.ejb.spi.MessageBeanClient messageBeanClient>;
interfaceinvoke v.<org.glassfish.ejb.spi.MessageBeanClient: void start()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
v = new java.lang.RuntimeException;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("MessageBeanContainer.start failure for app \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
}
protected void registerMonitorableComponents(java.lang.reflect.Method[])
{
long v;
java.util.logging.Logger v;
java.lang.reflect.Method[] v;
java.util.logging.Level v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.ejb.containers.BaseContainer$ContainerInfo v, v, v;
com.sun.ejb.containers.util.pool.AbstractPool v;
java.lang.String v, v, v;
com.sun.ejb.monitoring.stats.EjbPoolStatsProvider v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.reflect.Method[];
specialinvoke v.<com.sun.ejb.containers.BaseContainer: void registerMonitorableComponents()>();
v = new com.sun.ejb.monitoring.stats.EjbPoolStatsProvider;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: long getContainerId()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String appName>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String modName>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String ejbName>;
specialinvoke v.<com.sun.ejb.monitoring.stats.EjbPoolStatsProvider: void <init>(com.sun.ejb.containers.util.pool.AbstractPool,long,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v, v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.monitoring.stats.EjbPoolStatsProvider poolProbeListener> = v;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.monitoring.stats.EjbPoolStatsProvider poolProbeListener>;
virtualinvoke v.<com.sun.ejb.monitoring.stats.EjbPoolStatsProvider: void register()>();
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "[MessageBeanContainer] registered monitorable");
return;
}
protected com.sun.ejb.monitoring.stats.EjbMonitoringStatsProvider getMonitoringStatsProvider(java.lang.String, java.lang.String, java.lang.String)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
org.glassfish.ejb.mdb.monitoring.stats.MessageDrivenBeanStatsProvider v;
long v;
java.lang.String v, v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = new org.glassfish.ejb.mdb.monitoring.stats.MessageDrivenBeanStatsProvider;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: long getContainerId()>();
specialinvoke v.<org.glassfish.ejb.mdb.monitoring.stats.MessageDrivenBeanStatsProvider: void <init>(long,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
return v;
}
public boolean scanForEjbCreateMethod()
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
return 1;
}
protected void initializeHome() throws java.lang.Exception
{
java.lang.UnsupportedOperationException v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("MessageDrivenBean needn\'t initialize home");
throw v;
}
protected void addLocalRemoteInvocationInfo() throws java.lang.Exception
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
return;
}
protected boolean isCreateHomeFinder(java.lang.reflect.Method)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.reflect.Method v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.reflect.Method;
return 0;
}
private void createMessageBeanPool(org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor)
{
com.sun.enterprise.deployment.runtime.BeanPoolDescriptor v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor v;
java.lang.ClassLoader v;
org.glassfish.hk.api.ServiceLocator v;
long v;
java.util.function.Supplier v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl v;
org.glassfish.api.admin.config.ConfigExtension v;
com.sun.ejb.containers.EjbContainerUtil v;
org.glassfish.ejb.mdb.MessageBeanContainer$MessageBeanContextFactory v;
org.glassfish.ejb.deployment.descriptor.runtime.IASEjbExtraDescriptors v;
boolean v;
java.util.logging.Logger v, v, v, v, v, v, v, v, v;
com.sun.ejb.containers.util.pool.NonBlockingPool v;
java.lang.'annotation'.Annotation[] v;
java.util.logging.Level v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor;
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor: org.glassfish.ejb.deployment.descriptor.runtime.IASEjbExtraDescriptors getIASEjbExtraDescriptors()>();
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.runtime.IASEjbExtraDescriptors: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor getBeanPool()>();
v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor> = v;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
if v != null goto label;
v = new com.sun.enterprise.deployment.runtime.BeanPoolDescriptor;
specialinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: void <init>()>();
v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor> = v;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.EjbContainerUtil ejbContainerUtilImpl>;
v = interfaceinvoke v.<com.sun.ejb.containers.EjbContainerUtil: org.glassfish.hk.api.ServiceLocator getServices()>();
v = newarray (java.lang.'annotation'.Annotation)[0];
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.lang.Object getService(java.lang.Class,java.lang.String,java.lang.'annotation'.Annotation[])>(class "Lcom/sun/enterprise/config/serverbeans/Config;", "default-instance-name", v);
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Config: org.glassfish.api.admin.config.ConfigExtension getExtensionByType(java.lang.Class)>(class "Lorg/glassfish/ejb/config/MdbContainer;");
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getMaxPoolSize()>();
if v >= 0 goto label;
v = interfaceinvoke v.<org.glassfish.ejb.config.MdbContainer: java.lang.String getMaxPoolSize()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = staticinvoke <org.glassfish.ejb.mdb.MessageBeanContainer: int stringToInt(java.lang.String,java.lang.String,java.util.logging.Logger)>(v, v, v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = (int) -1;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: int validateValue(int,int,int,int,java.lang.String,java.lang.String,java.util.logging.Logger)>(v, 1, v, 32, "max-pool-size", v, v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: void setMaxPoolSize(int)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getSteadyPoolSize()>();
if v >= 0 goto label;
v = interfaceinvoke v.<org.glassfish.ejb.config.MdbContainer: java.lang.String getSteadyPoolSize()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = staticinvoke <org.glassfish.ejb.mdb.MessageBeanContainer: int stringToInt(java.lang.String,java.lang.String,java.util.logging.Logger)>(v, v, v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: int validateValue(int,int,int,int,java.lang.String,java.lang.String,java.util.logging.Logger)>(v, 0, v, 1, "steady-pool-size", v, v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: void setSteadyPoolSize(int)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getPoolResizeQuantity()>();
if v >= 0 goto label;
v = interfaceinvoke v.<org.glassfish.ejb.config.MdbContainer: java.lang.String getPoolResizeQuantity()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = staticinvoke <org.glassfish.ejb.mdb.MessageBeanContainer: int stringToInt(java.lang.String,java.lang.String,java.util.logging.Logger)>(v, v, v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: int validateValue(int,int,int,int,java.lang.String,java.lang.String,java.util.logging.Logger)>(v, 1, v, 8, "pool-resize-quantity", v, v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: void setPoolResizeQuantity(int)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getPoolIdleTimeoutInSeconds()>();
if v >= 0 goto label;
v = interfaceinvoke v.<org.glassfish.ejb.config.MdbContainer: java.lang.String getIdleTimeoutInSeconds()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = staticinvoke <org.glassfish.ejb.mdb.MessageBeanContainer: int stringToInt(java.lang.String,java.lang.String,java.util.logging.Logger)>(v, v, v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = (int) -1;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: int validateValue(int,int,int,int,java.lang.String,java.lang.String,java.util.logging.Logger)>(v, 0, v, 600, "idle-timeout-in-seconds", v, v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: void setPoolIdleTimeoutInSeconds(int)>(v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = staticinvoke <org.glassfish.ejb.mdb.MessageBeanContainer$lambda_createMessageBeanPool_0__1: java.util.function.Supplier bootstrap$(org.glassfish.ejb.mdb.MessageBeanContainer)>(v);
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.util.function.Supplier)>(v, v);
v = new com.sun.ejb.containers.util.pool.NonBlockingPool;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: long getContainerId()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = new org.glassfish.ejb.mdb.MessageBeanContainer$MessageBeanContextFactory;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer$MessageBeanContextFactory: void <init>(org.glassfish.ejb.mdb.MessageBeanContainer)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getSteadyPoolSize()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getPoolResizeQuantity()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getMaxPoolSize()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
v = virtualinvoke v.<com.sun.enterprise.deployment.runtime.BeanPoolDescriptor: int getPoolIdleTimeoutInSeconds()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.ClassLoader loader>;
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbMessageBeanDescriptor: org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl getEjbBundleDescriptor()>();
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl: java.lang.String getEnterpriseBeansProperty(java.lang.String)>("singleton-bean-pool");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
specialinvoke v.<com.sun.ejb.containers.util.pool.NonBlockingPool: void <init>(long,java.lang.String,com.sun.ejb.containers.util.pool.ObjectFactory,int,int,int,int,java.lang.ClassLoader,boolean)>(v, v, v, v, v, v, v, v, v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool> = v;
return;
}
protected static int stringToInt(java.lang.String, java.lang.String, java.util.logging.Logger)
{
java.lang.Object[] v;
java.util.logging.Logger v, v, v;
java.lang.Exception v;
java.util.logging.Level v, v;
int v, v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.logging.Logger;
v = (int) -1;
v = v;
label:
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v[1] = v;
v = virtualinvoke v.<java.lang.Exception: java.lang.String toString()>();
v[2] = v;
v[3] = "0";
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.invalid_value", v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "", v);
label:
return v;
catch java.lang.Exception from label to label with label;
}
protected int validateValue(int, int, int, int, java.lang.String, java.lang.String, java.util.logging.Logger)
{
java.lang.Object[] v, v;
java.lang.Integer v, v, v, v;
java.util.logging.Level v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
int v, v, v, v;
java.lang.String v, v;
java.util.logging.Logger v, v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.logging.Logger;
if v >= v goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v[2] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.invalid_value", v);
v = v;
label:
if v < 0 goto label;
if v <= v goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v[2] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.invalid_value", v);
v = v;
label:
return v;
}
private boolean containerStartsTx(java.lang.reflect.Method)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
int v;
java.lang.reflect.Method v;
boolean v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.reflect.Method;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: int getTxAttr(java.lang.reflect.Method,java.lang.String)>(v, "Bean");
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isEjbTimeoutMethod(java.lang.reflect.Method)>(v);
if v == 0 goto label;
if v == 5 goto label;
if v != 3 goto label;
label:
v = 1;
goto label;
label:
v = 0;
goto label;
label:
if v != 3 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.String getMonitorAttributeValues()
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.StringBuffer v;
com.sun.ejb.containers.util.pool.AbstractPool v;
java.lang.String v, v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>()>();
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("MESSAGEDRIVEN ");
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
v = virtualinvoke v.<com.sun.ejb.containers.util.pool.AbstractPool: java.lang.String getAllAttrValues()>();
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("]");
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
return v;
}
public boolean userTransactionMethodsAllowed(org.glassfish.api.invocation.ComponentInvocation)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.ejb.ComponentContext v;
boolean v, v, v;
org.glassfish.api.invocation.ComponentInvocation v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: org.glassfish.api.invocation.ComponentInvocation;
v = 0;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isBeanManagedTran>;
if v == 0 goto label;
v = v instanceof com.sun.ejb.EjbInvocation;
if v == 0 goto label;
v = v.<com.sun.ejb.EjbInvocation: com.sun.ejb.ComponentContext context>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: boolean operationsAllowed()>();
label:
return v;
}
public void setEJBHome(jakarta.ejb.EJBHome) throws java.lang.Exception
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
jakarta.ejb.EJBHome v;
java.lang.Exception v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: jakarta.ejb.EJBHome;
v = new java.lang.Exception;
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>("Can\'t set EJB Home on Message-driven bean");
throw v;
}
public com.sun.ejb.containers.EJBObjectImpl getEJBObjectImpl(byte[])
{
byte[] v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
jakarta.ejb.EJBException v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: byte[];
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>("No EJBObject for message-driven beans");
throw v;
}
public com.sun.ejb.containers.EJBObjectImpl createEJBObjectImpl() throws jakarta.ejb.CreateException
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
jakarta.ejb.EJBException v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>("No EJBObject for message-driven beans");
throw v;
}
protected void removeBean(com.sun.ejb.containers.EJBLocalRemoteObject, java.lang.reflect.Method, boolean) throws jakarta.ejb.RemoveException, jakarta.ejb.EJBException
{
com.sun.ejb.containers.EJBLocalRemoteObject v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
jakarta.ejb.EJBException v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.containers.EJBLocalRemoteObject;
v := @parameter: java.lang.reflect.Method;
v := @parameter: boolean;
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>("not used in message-driven beans");
throw v;
}
protected boolean callEJBTimeout(com.sun.ejb.containers.RuntimeTimerState, com.sun.ejb.containers.EJBTimerService) throws java.lang.Exception
{
org.glassfish.api.invocation.ComponentInvocation v;
java.lang.reflect.Method v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
java.util.logging.Logger v, v, v, v;
org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType v;
java.lang.Throwable v, v;
org.glassfish.api.invocation.InvocationManager v;
java.util.logging.Level v, v, v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
int v, v, v;
com.sun.ejb.containers.RuntimeTimerState v;
com.sun.ejb.containers.EJBTimerService v;
com.sun.enterprise.transaction.api.JavaEETransactionManager v, v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.containers.RuntimeTimerState;
v := @parameter: com.sun.ejb.containers.EJBTimerService;
v = 0;
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.reflect.Method getTimeoutMethod(com.sun.ejb.containers.RuntimeTimerState)>(v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType: org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType Timer>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void beforeMessageDelivery(java.lang.reflect.Method,org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType,boolean,com.sun.appserv.connectors.internal.api.ResourceHandle)>(v, v, 0, null);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
v = interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: org.glassfish.api.invocation.ComponentInvocation getCurrentInvocation()>();
v = v instanceof com.sun.ejb.EjbInvocation;
if v == 0 goto label;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void prepareEjbTimeoutParams(com.sun.ejb.EjbInvocation,com.sun.ejb.containers.RuntimeTimerState,com.sun.ejb.containers.EJBTimerService)>(v, v, v);
label:
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Object deliverMessage(java.lang.Object[])>(null);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isBeanManagedTran>;
if v != 0 goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.transaction.api.JavaEETransactionManager transactionManager>;
v = interfaceinvoke v.<com.sun.enterprise.transaction.api.JavaEETransactionManager: int getStatus()>();
if v != 1 goto label;
v = 1;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "ejbTimeout called setRollbackOnly");
label:
if v != 0 goto label;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean postEjbTimeout(com.sun.ejb.containers.RuntimeTimerState,com.sun.ejb.containers.EJBTimerService)>(v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
v = specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean afterMessageDeliveryInternal(com.sun.appserv.connectors.internal.api.ResourceHandle)>(null);
if v != 0 goto label;
if v != 0 goto label;
v = 1;
goto label;
label:
v := @caughtexception;
v = 1;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "ejbTimeout threw Runtime exception", v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isBeanManagedTran>;
if v != 0 goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.transaction.api.JavaEETransactionManager transactionManager>;
v = interfaceinvoke v.<com.sun.enterprise.transaction.api.JavaEETransactionManager: int getStatus()>();
if v != 1 goto label;
v = 1;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "ejbTimeout called setRollbackOnly");
label:
v = specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean afterMessageDeliveryInternal(com.sun.appserv.connectors.internal.api.ResourceHandle)>(null);
if v != 0 goto label;
if v != 0 goto label;
v = 1;
goto label;
label:
v := @caughtexception;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isBeanManagedTran>;
if v != 0 goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.transaction.api.JavaEETransactionManager transactionManager>;
v = interfaceinvoke v.<com.sun.enterprise.transaction.api.JavaEETransactionManager: int getStatus()>();
if v != 1 goto label;
v = 1;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "ejbTimeout called setRollbackOnly");
label:
if v != 0 goto label;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean postEjbTimeout(com.sun.ejb.containers.RuntimeTimerState,com.sun.ejb.containers.EJBTimerService)>(v, v);
if v != 0 goto label;
goto label;
label:
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean afterMessageDeliveryInternal(com.sun.appserv.connectors.internal.api.ResourceHandle)>(null);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void forceDestroyBean(com.sun.ejb.containers.EJBContextImpl)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.ejb.containers.EJBContextImpl v;
com.sun.ejb.containers.util.pool.AbstractPool v;
boolean v;
com.sun.ejb.containers.EJBContextImpl$BeanState v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.containers.EJBContextImpl;
v = <com.sun.ejb.containers.EJBContextImpl$BeanState: com.sun.ejb.containers.EJBContextImpl$BeanState DESTROYED>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: boolean isInState(com.sun.ejb.containers.EJBContextImpl$BeanState)>(v);
if v == 0 goto label;
return;
label:
v = <com.sun.ejb.containers.EJBContextImpl$BeanState: com.sun.ejb.containers.EJBContextImpl$BeanState DESTROYED>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void setState(com.sun.ejb.containers.EJBContextImpl$BeanState)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
virtualinvoke v.<com.sun.ejb.containers.util.pool.AbstractPool: void destroyObject(java.lang.Object)>(v);
return;
}
public void preInvoke(com.sun.ejb.EjbInvocation)
{
com.sun.ejb.EjbInvocation v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
jakarta.ejb.EJBException v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.EjbInvocation;
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>("preInvoke(Invocation) not supported");
throw v;
}
protected com.sun.ejb.ComponentContext _getContext(com.sun.ejb.EjbInvocation)
{
java.lang.Exception v;
com.sun.ejb.containers.EJBContextImpl$BeanState v;
com.sun.ejb.EjbInvocation v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.ejb.containers.util.pool.AbstractPool v;
org.glassfish.ejb.mdb.MessageBeanContextImpl v;
java.lang.Object v;
jakarta.ejb.EJBException v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.EjbInvocation;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
v = virtualinvoke v.<com.sun.ejb.containers.util.pool.AbstractPool: java.lang.Object getObject(java.lang.Object)>(null);
v = <com.sun.ejb.containers.EJBContextImpl$BeanState: com.sun.ejb.containers.EJBContextImpl$BeanState INVOKING>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void setState(com.sun.ejb.containers.EJBContextImpl$BeanState)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.Exception)>(v);
throw v;
label:
return v;
catch java.lang.Exception from label to label with label;
}
public void releaseContext(com.sun.ejb.EjbInvocation)
{
com.sun.ejb.EjbInvocation v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.ejb.containers.util.pool.AbstractPool v;
com.sun.ejb.ComponentContext v;
boolean v;
com.sun.ejb.containers.EJBContextImpl$BeanState v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.EjbInvocation;
v = v.<com.sun.ejb.EjbInvocation: com.sun.ejb.ComponentContext context>;
v = <com.sun.ejb.containers.EJBContextImpl$BeanState: com.sun.ejb.containers.EJBContextImpl$BeanState DESTROYED>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: boolean isInState(com.sun.ejb.containers.EJBContextImpl$BeanState)>(v);
if v == 0 goto label;
return;
label:
v = <com.sun.ejb.containers.EJBContextImpl$BeanState: com.sun.ejb.containers.EJBContextImpl$BeanState POOLED>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void setState(com.sun.ejb.containers.EJBContextImpl$BeanState)>(v);
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void setTransaction(jakarta.transaction.Transaction)>(null);
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void touch()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
virtualinvoke v.<com.sun.ejb.containers.util.pool.AbstractPool: void returnObject(java.lang.Object)>(v);
return;
}
public void postInvoke(com.sun.ejb.EjbInvocation)
{
com.sun.ejb.EjbInvocation v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
jakarta.ejb.EJBException v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.EjbInvocation;
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>("postInvoke(Invocation) not supported in message-driven bean container");
throw v;
}
public org.glassfish.ejb.api.MessageBeanListener createMessageBeanListener(com.sun.appserv.connectors.internal.api.ResourceHandle) throws org.glassfish.ejb.api.ResourcesExceededException
{
java.lang.Throwable v;
java.util.logging.Level v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
int v, v, v, v, v;
java.lang.String v, v, v;
boolean v;
com.sun.appserv.connectors.internal.api.ResourceHandle v;
org.glassfish.ejb.mdb.MessageBeanListenerImpl v;
java.util.logging.Logger v;
org.glassfish.ejb.api.ResourcesExceededException v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.appserv.connectors.internal.api.ResourceHandle;
v = 0;
entermonitor v;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int numMessageBeanListeners_>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int maxMessageBeanListeners_>;
if v >= v goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int numMessageBeanListeners_>;
v = v + 1;
v.<org.glassfish.ejb.mdb.MessageBeanContainer: int numMessageBeanListeners_> = v;
goto label;
label:
v = 1;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
v = new org.glassfish.ejb.api.ResourcesExceededException;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Message Bean Resources exceeded for message bean \u0001");
specialinvoke v.<org.glassfish.ejb.api.ResourcesExceededException: void <init>(java.lang.String)>(v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int maxMessageBeanListeners_>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("exceeded max of \u0001");
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
throw v;
label:
v = new org.glassfish.ejb.mdb.MessageBeanListenerImpl;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanListenerImpl: void <init>(org.glassfish.ejb.mdb.MessageBeanContainer,com.sun.appserv.connectors.internal.api.ResourceHandle)>(v, v);
return v;
catch java.lang.Throwable from label to label with label;
}
public void destroyMessageBeanListener(org.glassfish.ejb.api.MessageBeanListener)
{
java.lang.Throwable v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
org.glassfish.ejb.api.MessageBeanListener v;
int v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: org.glassfish.ejb.api.MessageBeanListener;
entermonitor v;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int numMessageBeanListeners_>;
v = v - 1;
v.<org.glassfish.ejb.mdb.MessageBeanContainer: int numMessageBeanListeners_> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public boolean isDeliveryTransacted(java.lang.reflect.Method)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.reflect.Method;
v = specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean containerStartsTx(java.lang.reflect.Method)>(v);
return v;
}
public com.sun.enterprise.deployment.runtime.BeanPoolDescriptor getPoolDescriptor()
{
com.sun.enterprise.deployment.runtime.BeanPoolDescriptor v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.deployment.runtime.BeanPoolDescriptor beanPoolDescriptor>;
return v;
}
public java.lang.Object createMessageBeanProxy(java.lang.reflect.InvocationHandler) throws java.lang.Exception
{
java.lang.Object[] v;
java.lang.reflect.Constructor v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
boolean v;
java.lang.Class[] v, v, v;
java.lang.Class v, v, v, v;
java.lang.Object v, v, v;
java.lang.ClassLoader v, v;
java.lang.reflect.InvocationHandler v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.reflect.InvocationHandler;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageListenerType_>;
v = staticinvoke <org.glassfish.ejb.mdb.MessageBeanContainer: boolean isModernMessageListener(java.lang.Class)>(v);
if v == 0 goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.ClassLoader loader>;
v = newarray (java.lang.Class)[1];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageBeanInterface>;
v[0] = v;
v = staticinvoke <java.lang.reflect.Proxy: java.lang.Object newProxyInstance(java.lang.ClassLoader,java.lang.Class[],java.lang.reflect.InvocationHandler)>(v, v, v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageBeanSubClass>;
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
interfaceinvoke v.<com.sun.ejb.spi.container.OptionalLocalInterfaceProvider: void setOptionalLocalIntfProxy(java.lang.reflect.Proxy)>(v);
return v;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.ClassLoader loader>;
v = newarray (java.lang.Class)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Class messageListenerType_>;
v[0] = v;
v[1] = class "Ljakarta/resource/spi/endpoint/MessageEndpoint;";
v = staticinvoke <java.lang.reflect.Proxy: java.lang.Object newProxyInstance(java.lang.ClassLoader,java.lang.Class[],java.lang.reflect.InvocationHandler)>(v, v, v);
return v;
}
private static boolean isModernMessageListener(java.lang.Class)
{
int v;
java.lang.Class v;
java.lang.reflect.Method[] v;
boolean v;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
v = lengthof v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected com.sun.ejb.containers.EJBContextImpl _constructEJBContextImpl(java.lang.Object)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
org.glassfish.ejb.mdb.MessageBeanContextImpl v;
java.lang.Object v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.Object;
v = new org.glassfish.ejb.mdb.MessageBeanContextImpl;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void <init>(java.lang.Object,com.sun.ejb.containers.BaseContainer)>(v, v);
return v;
}
private org.glassfish.ejb.mdb.MessageBeanContextImpl createMessageDrivenEJB() throws jakarta.ejb.CreateException
{
com.sun.ejb.containers.EJBContextImpl v;
boolean v, v;
java.util.logging.Logger v, v, v;
com.sun.ejb.EjbInvocation v;
java.lang.ClassLoader v, v;
java.lang.Throwable v, v;
org.glassfish.api.invocation.InvocationManager v, v;
java.lang.Object[] v;
com.sun.enterprise.deployment.LifecycleCallbackDescriptor$CallbackType v;
long v;
java.util.logging.Level v, v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
jakarta.ejb.CreateException v;
org.glassfish.ejb.mdb.MessageBeanContextImpl v;
java.lang.String v, v, v, v, v, v, v;
com.sun.ejb.monitoring.probes.EjbMonitoringProbeProvider v;
com.sun.ejb.containers.EJBContextImpl$BeanState v;
com.sun.ejb.containers.BaseContainer$ContainerInfo v, v, v;
java.lang.Class v, v;
java.lang.Object v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <com.sun.enterprise.util.Utility: java.lang.ClassLoader setContextClassLoader(java.lang.ClassLoader)>(v);
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.EJBContextImpl createEjbInstanceAndContext()>();
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: java.lang.Object getEJB()>();
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.EjbInvocation createEjbInvocation(java.lang.Object,com.sun.ejb.ComponentContext)>(v, v);
v.<com.sun.ejb.EjbInvocation: boolean isMessageDriven> = 1;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: void preInvoke(org.glassfish.api.invocation.ComponentInvocation)>(v);
v = v instanceof jakarta.ejb.MessageDrivenBean;
if v == 0 goto label;
interfaceinvoke v.<jakarta.ejb.MessageDrivenBean: void setMessageDrivenContext(jakarta.ejb.MessageDrivenContext)>(v);
label:
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void injectEjbInstance(com.sun.ejb.containers.EJBContextImpl)>(v);
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void setContextCalled()>();
v = <com.sun.enterprise.deployment.LifecycleCallbackDescriptor$CallbackType: com.sun.enterprise.deployment.LifecycleCallbackDescriptor$CallbackType POST_CONSTRUCT>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean intercept(com.sun.enterprise.deployment.LifecycleCallbackDescriptor$CallbackType,com.sun.ejb.containers.EJBContextImpl)>(v, v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.monitoring.probes.EjbMonitoringProbeProvider ejbProbeNotifier>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: long getContainerId()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String appName>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String modName>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String ejbName>;
virtualinvoke v.<com.sun.ejb.monitoring.probes.EjbMonitoringProbeProvider: void ejbBeanCreatedEvent(long,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
v = <com.sun.ejb.containers.EJBContextImpl$BeanState: com.sun.ejb.containers.EJBContextImpl$BeanState POOLED>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void setState(com.sun.ejb.containers.EJBContextImpl$BeanState)>(v);
label:
if v == null goto label;
staticinvoke <com.sun.enterprise.util.Utility: java.lang.ClassLoader setContextClassLoader(java.lang.ClassLoader)>(v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: void postInvoke(org.glassfish.api.invocation.ComponentInvocation)>(v);
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.ejb_creation_exception", v);
v = v instanceof java.lang.reflect.InvocationTargetException;
if v == 0 goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.Throwable: java.lang.Throwable getCause()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
v = new jakarta.ejb.CreateException;
specialinvoke v.<jakarta.ejb.CreateException: void <init>(java.lang.String)>("Could not create Message-Driven EJB");
virtualinvoke v.<jakarta.ejb.CreateException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private void registerMessageBeanResource(com.sun.appserv.connectors.internal.api.ResourceHandle) throws java.lang.Exception
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.appserv.connectors.internal.api.TransactedPoolManager v;
com.sun.appserv.connectors.internal.api.ResourceHandle v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.appserv.connectors.internal.api.ResourceHandle;
if v == null goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.appserv.connectors.internal.api.TransactedPoolManager transactedPoolManager>;
interfaceinvoke v.<com.sun.appserv.connectors.internal.api.TransactedPoolManager: void registerResource(com.sun.appserv.connectors.internal.api.ResourceHandle)>(v);
label:
return;
}
private void unregisterMessageBeanResource(com.sun.appserv.connectors.internal.api.ResourceHandle)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.appserv.connectors.internal.api.TransactedPoolManager v;
com.sun.appserv.connectors.internal.api.ResourceHandle v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.appserv.connectors.internal.api.ResourceHandle;
if v == null goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.appserv.connectors.internal.api.TransactedPoolManager transactedPoolManager>;
interfaceinvoke v.<com.sun.appserv.connectors.internal.api.TransactedPoolManager: void unregisterResource(com.sun.appserv.connectors.internal.api.ResourceHandle,int)>(v, 67108864);
label:
return;
}
protected void afterBegin(com.sun.ejb.containers.EJBContextImpl)
{
com.sun.ejb.containers.EJBContextImpl v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.containers.EJBContextImpl;
return;
}
protected void beforeCompletion(com.sun.ejb.containers.EJBContextImpl)
{
com.sun.ejb.containers.EJBContextImpl v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.containers.EJBContextImpl;
return;
}
protected void afterCompletion(com.sun.ejb.containers.EJBContextImpl, int)
{
int v;
com.sun.ejb.containers.EJBContextImpl v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.containers.EJBContextImpl;
v := @parameter: int;
return;
}
public boolean passivateEJB(com.sun.ejb.ComponentContext)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.ejb.ComponentContext v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.ejb.ComponentContext;
return 0;
}
public void activateEJB(java.lang.Object, java.lang.Object)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.Object v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
return;
}
private org.glassfish.api.invocation.ComponentInvocation createComponentInvocation()
{
org.glassfish.api.invocation.ComponentInvocation v;
org.glassfish.api.invocation.ComponentInvocation$ComponentInvocationType v;
org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.enterprise.deployment.Application v;
java.lang.String v, v, v;
org.glassfish.ejb.deployment.descriptor.EjbDescriptor v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.ejb.deployment.descriptor.EjbDescriptor getEjbDescriptor()>();
v = virtualinvoke v.<org.glassfish.ejb.deployment.descriptor.EjbDescriptor: org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl getEjbBundleDescriptor()>();
v = new org.glassfish.api.invocation.ComponentInvocation;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String getComponentId()>();
v = <org.glassfish.api.invocation.ComponentInvocation$ComponentInvocationType: org.glassfish.api.invocation.ComponentInvocation$ComponentInvocationType SERVLET_INVOCATION>;
v = virtualinvoke v.<com.sun.enterprise.deployment.EjbBundleDescriptor: com.sun.enterprise.deployment.Application getApplication()>();
v = virtualinvoke v.<com.sun.enterprise.deployment.Application: java.lang.String getAppName()>();
v = virtualinvoke v.<com.sun.enterprise.deployment.EjbBundleDescriptor: java.lang.String getModuleName()>();
specialinvoke v.<org.glassfish.api.invocation.ComponentInvocation: void <init>(java.lang.String,org.glassfish.api.invocation.ComponentInvocation$ComponentInvocationType,java.lang.Object,java.lang.String,java.lang.String)>(v, v, v, v, v);
return v;
}
private void cleanupResources()
{
org.glassfish.api.invocation.ComponentInvocation v;
byte v, v;
java.lang.Long v, v;
boolean v, v, v, v;
java.util.logging.Logger v, v, v, v, v, v, v, v, v;
java.lang.Exception v;
com.sun.ejb.containers.util.pool.AbstractPool v;
java.lang.ClassLoader v;
org.glassfish.hk.api.ServiceLocator v;
java.lang.Throwable v, v, v;
java.lang.Object[] v, v;
long v, v, v, v, v;
java.lang.'annotation'.Annotation[] v;
java.util.logging.Level v, v, v, v, v, v, v, v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.String v, v, v, v, v;
org.glassfish.ejb.spi.MessageBeanClient v;
java.lang.InterruptedException v;
java.lang.Object v;
org.glassfish.ejb.mdb.MessageBeanContainer$ASyncClientShutdownTask v;
com.sun.ejb.containers.EjbContainerUtil v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v = specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.ComponentInvocation createComponentInvocation()>();
v = new org.glassfish.ejb.mdb.MessageBeanContainer$ASyncClientShutdownTask;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.ejb.spi.MessageBeanClient messageBeanClient>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.ClassLoader loader>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.util.pool.AbstractPool messageBeanPool>;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer$ASyncClientShutdownTask: void <init>(java.lang.String,org.glassfish.ejb.spi.MessageBeanClient,java.lang.ClassLoader,com.sun.ejb.containers.util.pool.AbstractPool,org.glassfish.api.invocation.ComponentInvocation)>(v, v, v, v, v);
v = 0L;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.EjbContainerUtil ejbContainerUtilImpl>;
v = interfaceinvoke v.<com.sun.ejb.containers.EjbContainerUtil: org.glassfish.hk.api.ServiceLocator getServices()>();
v = newarray (java.lang.'annotation'.Annotation)[0];
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.lang.Object getService(java.lang.Class,java.lang.'annotation'.Annotation[])>(class "Lcom/sun/appserv/connectors/internal/api/ConnectorRuntime;", v);
v = interfaceinvoke v.<com.sun.appserv.connectors.internal.api.ConnectorRuntime: long getShutdownTimeout()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "[MDBContainer] Got exception while trying to get shutdown timeout", v);
label:
v = 0;
v = v cmp 0L;
if v <= 0 goto label;
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.EjbContainerUtil ejbContainerUtilImpl>;
interfaceinvoke v.<com.sun.ejb.containers.EjbContainerUtil: void addWork(java.lang.Runnable)>(v);
v = 1;
label:
goto label;
label:
v := @caughtexception;
v = 0;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "[MDBContainer] Got exception while trying to add task to ContainerWorkPool. Will execute cleanupResources on current thread", v);
label:
if v == 0 goto label;
entermonitor v;
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer$ASyncClientShutdownTask: boolean isDone()>();
if v != 0 goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "[MDBContainer] Going to wait for a maximum of {0} milliseconds.", v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v + v;
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = v cmp 0L;
if v <= 0 goto label;
virtualinvoke v.<java.lang.Object: void wait(long)>(v);
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer$ASyncClientShutdownTask: boolean isDone()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer$ASyncClientShutdownTask: boolean isDone()>();
if v != 0 goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "[MDBContainer] ASync task has not finished. Giving up after {0} milliseconds.", v);
goto label;
label:
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "[MDBContainer] ASync task has completed");
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "[MDBContainer] Attempting to do cleanup()in current thread...");
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer$ASyncClientShutdownTask: void run()>();
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "[MDBContainer] Current thread done cleanup()... ");
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = virtualinvoke v.<java.lang.InterruptedException: java.lang.String toString()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.cleanup_exception", v);
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = virtualinvoke v.<java.lang.Exception: java.lang.String toString()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.cleanup_exception", v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Exception from label to label with label;
}
protected void doConcreteContainerShutdown(boolean)
{
java.util.logging.Logger v, v;
java.util.logging.Level v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.String v, v;
boolean v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: boolean;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "containers.mdb.shutdown_cleanup_start", v);
v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean monitorOn> = 0;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void cleanupResources()>();
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "containers.mdb.shutdown_cleanup_end", v);
return;
}
public void beforeMessageDelivery(java.lang.reflect.Method, org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType, boolean, com.sun.appserv.connectors.internal.api.ResourceHandle)
{
jakarta.ejb.EJBException v;
java.lang.reflect.Method v;
boolean v, v;
java.util.logging.Logger v, v;
org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType v, v;
com.sun.ejb.EjbInvocation v;
java.lang.ClassLoader v, v;
java.lang.Throwable v;
org.glassfish.api.invocation.InvocationManager v;
java.lang.Object[] v, v;
com.sun.ejb.ComponentContext v;
java.util.logging.Level v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.enterprise.util.LocalStringManagerImpl v;
int v, v;
org.glassfish.ejb.mdb.MessageBeanContextImpl v;
java.lang.String v, v, v, v, v, v, v;
com.sun.appserv.connectors.internal.api.ResourceHandle v;
com.sun.ejb.containers.EJBContextImpl$BeanState v;
java.lang.Class v;
java.lang.Object v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.reflect.Method;
v := @parameter: org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType;
v := @parameter: boolean;
v := @parameter: com.sun.appserv.connectors.internal.api.ResourceHandle;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int containerState>;
if v == 0 goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.util.LocalStringManagerImpl localStrings>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001: Message-driven bean invocation closed by container");
v = newarray (java.lang.Object)[1];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = virtualinvoke v.<com.sun.enterprise.util.LocalStringManagerImpl: java.lang.String getLocalString(java.lang.String,java.lang.String,java.lang.Object[])>("containers.mdb.invocation_closed", v, v);
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.EjbInvocation createEjbInvocation()>();
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.ComponentContext getContext(com.sun.ejb.EjbInvocation)>(v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType: org.glassfish.ejb.mdb.MessageBeanContainer$MessageDeliveryType Timer>;
if v != v goto label;
v.<com.sun.ejb.EjbInvocation: boolean isTimerCallback> = 1;
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <com.sun.enterprise.util.Utility: java.lang.ClassLoader setContextClassLoader(java.lang.ClassLoader)>(v);
virtualinvoke v.<com.sun.ejb.EjbInvocation: void setOriginalContextClassLoader(java.lang.ClassLoader)>(v);
v.<com.sun.ejb.EjbInvocation: boolean isMessageDriven> = 1;
v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method method> = v;
v = <com.sun.ejb.containers.EJBContextImpl$BeanState: com.sun.ejb.containers.EJBContextImpl$BeanState INVOKING>;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: void setState(com.sun.ejb.containers.EJBContextImpl$BeanState)>(v);
v.<com.sun.ejb.EjbInvocation: com.sun.ejb.ComponentContext context> = v;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: java.lang.Object getEJB()>();
v.<com.sun.ejb.EjbInvocation: java.lang.Object instance> = v;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContextImpl: java.lang.Object getEJB()>();
v.<com.sun.ejb.EjbInvocation: java.lang.Object ejb> = v;
v.<com.sun.ejb.EjbInvocation: java.lang.Object container> = v;
v = 0;
if v != 0 goto label;
v = specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean containerStartsTx(java.lang.reflect.Method)>(v);
label:
virtualinvoke v.<com.sun.ejb.EjbInvocation: void setContainerStartsTx(boolean)>(v);
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: void preInvoke(org.glassfish.api.invocation.ComponentInvocation)>(v);
if v == 0 goto label;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void registerMessageBeanResource(com.sun.appserv.connectors.internal.api.ResourceHandle)>(v);
label:
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void preInvokeTx(com.sun.ejb.EjbInvocation)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int containerState>;
if v == 0 goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.preinvoke_exception", v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception> = v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Object deliverMessage(java.lang.Object[]) throws java.lang.Throwable
{
org.glassfish.api.invocation.ComponentInvocation v;
jakarta.ejb.EJBException v, v, v, v;
java.lang.reflect.Method v, v, v, v, v, v;
boolean v, v, v, v;
java.util.logging.Logger v, v, v, v, v;
java.lang.reflect.InvocationTargetException v;
java.lang.Throwable v, v, v, v, v, v;
org.glassfish.api.invocation.InvocationManager v;
java.lang.Object[] v, v, v;
java.util.logging.Level v, v, v, v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.enterprise.util.LocalStringManagerImpl v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.lang.Class[] v;
java.lang.Class v, v;
java.lang.Object v, v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: java.lang.Object[];
v = null;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
v = interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: org.glassfish.api.invocation.ComponentInvocation getCurrentInvocation()>();
if v != null goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: int containerState>;
if v == 0 goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "No invocation in onMessage (container closing)");
goto label;
label:
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "No invocation in onMessage : ");
label:
if v == null goto label;
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
if v != null goto label;
label:
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isTimedObject()>();
if v == 0 goto label;
v = v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method method>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isEjbTimeoutMethod(java.lang.reflect.Method)>(v);
if v == 0 goto label;
v = v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method method>;
v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method beanMethod> = v;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.Object intercept(com.sun.ejb.EjbInvocation)>(v);
goto label;
label:
v.<com.sun.ejb.EjbInvocation: java.lang.Object[] methodParams> = v;
v = v.<com.sun.ejb.EjbInvocation: java.lang.Object ejb>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method method>;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method method>;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method beanMethod> = v;
v = specialinvoke v.<com.sun.ejb.containers.BaseContainer: java.lang.Object intercept(com.sun.ejb.EjbInvocation)>(v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.reflect.InvocationTargetException: java.lang.Throwable getCause()>();
v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception> = v;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isSystemUncheckedException(java.lang.Throwable)>(v);
if v == 0 goto label;
v = new jakarta.ejb.EJBException;
v = v.<com.sun.ejb.EjbInvocation: java.lang.reflect.Method method>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.reflect.Method)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("message-driven bean method \u system exception");
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>(v);
virtualinvoke v.<jakarta.ejb.EJBException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
v = v;
label:
throw v;
label:
v := @caughtexception;
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>("message-bean container dispatch error");
virtualinvoke v.<jakarta.ejb.EJBException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception> = v;
throw v;
label:
if v != null goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.util.LocalStringManagerImpl localStrings>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001: Message-driven bean invocation closed by container");
v = newarray (java.lang.Object)[1];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = virtualinvoke v.<com.sun.enterprise.util.LocalStringManagerImpl: java.lang.String getLocalString(java.lang.String,java.lang.String,java.lang.Object[])>("containers.mdb.invocation_closed", v, v);
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.invocation_exception", v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>()>();
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
virtualinvoke v.<jakarta.ejb.EJBException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
throw v;
label:
return v;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void afterMessageDelivery(com.sun.appserv.connectors.internal.api.ResourceHandle)
{
org.glassfish.ejb.mdb.MessageBeanContainer v;
com.sun.appserv.connectors.internal.api.ResourceHandle v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.appserv.connectors.internal.api.ResourceHandle;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean afterMessageDeliveryInternal(com.sun.appserv.connectors.internal.api.ResourceHandle)>(v);
return;
}
private boolean afterMessageDeliveryInternal(com.sun.appserv.connectors.internal.api.ResourceHandle)
{
org.glassfish.api.invocation.ComponentInvocation v;
boolean v, v, v, v;
java.util.logging.Logger v, v, v, v, v;
com.sun.ejb.EjbInvocation v;
java.lang.ClassLoader v;
java.lang.Throwable v, v, v, v, v, v, v, v;
org.glassfish.api.invocation.InvocationManager v, v;
java.lang.Object[] v, v, v;
long v;
java.util.logging.Level v, v, v, v;
org.glassfish.ejb.mdb.MessageBeanContainer v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
com.sun.appserv.connectors.internal.api.ResourceHandle v;
com.sun.ejb.monitoring.probes.EjbMonitoringProbeProvider v;
com.sun.ejb.containers.BaseContainer$ContainerInfo v, v, v;
java.lang.Class v, v;
v := @this: org.glassfish.ejb.mdb.MessageBeanContainer;
v := @parameter: com.sun.appserv.connectors.internal.api.ResourceHandle;
v = 0;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
v = interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: org.glassfish.api.invocation.ComponentInvocation getCurrentInvocation()>();
if v != null goto label;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v[1] = "";
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.no_invocation", v);
goto label;
label:
v = virtualinvoke v.<com.sun.ejb.EjbInvocation: boolean isContainerStartsTx()>();
if v == 0 goto label;
specialinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void unregisterMessageBeanResource(com.sun.appserv.connectors.internal.api.ResourceHandle)>(v);
label:
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: org.glassfish.api.invocation.InvocationManager invocationManager>;
interfaceinvoke v.<org.glassfish.api.invocation.InvocationManager: void postInvoke(org.glassfish.api.invocation.ComponentInvocation)>(v);
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void postInvokeTx(com.sun.ejb.EjbInvocation)>(v);
v = 1;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.monitoring.probes.EjbMonitoringProbeProvider ejbProbeNotifier>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: long getContainerId()>();
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String appName>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String modName>;
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.ejb.containers.BaseContainer$ContainerInfo containerInfo>;
v = v.<com.sun.ejb.containers.BaseContainer$ContainerInfo: java.lang.String ejbName>;
virtualinvoke v.<com.sun.ejb.monitoring.probes.EjbMonitoringProbeProvider: void messageDeliveredEvent(long,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
label:
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void releaseContext(com.sun.ejb.EjbInvocation)>(v);
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.postinvoke_exception", v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void releaseContext(com.sun.ejb.EjbInvocation)>(v);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: void releaseContext(com.sun.ejb.EjbInvocation)>(v);
throw v;
label:
v = virtualinvoke v.<com.sun.ejb.EjbInvocation: java.lang.ClassLoader getOriginalContextClassLoader()>();
staticinvoke <com.sun.enterprise.util.Utility: java.lang.ClassLoader setContextClassLoader(java.lang.ClassLoader)>(v);
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
if v == null goto label;
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isSystemUncheckedException(java.lang.Throwable)>(v);
if v == 0 goto label;
v = 0;
label:
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
v = virtualinvoke v.<org.glassfish.ejb.mdb.MessageBeanContainer: boolean isSystemUncheckedException(java.lang.Throwable)>(v);
if v == 0 goto label;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
goto label;
label:
v = <java.util.logging.Level: java.util.logging.Level FINE>;
label:
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.ejb.mdb.MessageBeanContainer: java.lang.String appEJBName_>;
v[0] = v;
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "containers.mdb.invocation_exception", v);
v = <org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger>;
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = v.<com.sun.ejb.EjbInvocation: java.lang.Throwable exception>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
java.util.logging.Logger v;
com.sun.enterprise.util.LocalStringManagerImpl v;
v = staticinvoke <com.sun.logging.LogDomains: java.util.logging.Logger getLogger(java.lang.Class,java.lang.String)>(class "Lorg/glassfish/ejb/mdb/MessageBeanContainer;", "jakarta.enterprise.system.container.ejb.mdb");
<org.glassfish.ejb.mdb.MessageBeanContainer: java.util.logging.Logger _logger> = v;
v = new com.sun.enterprise.util.LocalStringManagerImpl;
specialinvoke v.<com.sun.enterprise.util.LocalStringManagerImpl: void <init>(java.lang.Class)>(class "Lorg/glassfish/ejb/mdb/MessageBeanContainer;");
<org.glassfish.ejb.mdb.MessageBeanContainer: com.sun.enterprise.util.LocalStringManagerImpl localStrings> = v;
return;
}
}