public class org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler extends java.lang.Object implements com.sun.enterprise.transaction.spi.RecoveryResourceHandler
{
org.glassfish.hk.api.ServiceLocator habitat;
private com.sun.enterprise.transaction.config.TransactionService txService;
private com.sun.enterprise.config.serverbeans.Domain domain;
private com.sun.enterprise.config.serverbeans.Applications applications;
private jakarta.inject.Provider connectorRuntimeProvider;
private com.sun.enterprise.connectors.util.ResourcesUtil resourcesUtil;
private static java.util.logging.Logger _logger;
public void <init>()
{
org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler v;
v := @this: org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.connectors.util.ResourcesUtil resourcesUtil> = null;
return;
}
private void loadAllJdbcResources()
{
com.sun.enterprise.connectors.util.ResourcesUtil v;
org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler v;
javax.naming.NamingException v;
boolean v, v, v, v, v, v;
com.sun.enterprise.config.serverbeans.Resource v;
javax.naming.InitialContext v;
java.util.Collection v;
java.util.logging.Logger v, v, v, v, v, v, v, v, v, v;
java.lang.Exception v;
java.util.logging.Level v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v;
java.util.Iterator v;
org.glassfish.jdbc.config.JdbcResource v;
v := @this: org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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, "loadAllJdbcResources start");
label:
v = specialinvoke v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.Collection getAllJdbcResources()>();
v = new javax.naming.InitialContext;
specialinvoke v.<javax.naming.InitialContext: void <init>()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = specialinvoke v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.connectors.util.ResourcesUtil getResourcesUtil()>();
v = virtualinvoke v.<com.sun.enterprise.connectors.util.ResourcesUtil: boolean isEnabled(com.sun.enterprise.config.serverbeans.BindableResource)>(v);
if v == 0 goto label;
label:
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcResource: java.lang.String getJndiName()>();
virtualinvoke v.<javax.naming.InitialContext: java.lang.Object lookup(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcResource: java.lang.String getJndiName()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "error.loading.jdbc.resources.during.recovery", v);
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String toString()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
goto label;
label:
v := @caughtexception;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = virtualinvoke v.<javax.naming.NamingException: java.lang.String getMessage()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "error.loading.jdbc.resources.during.recovery", v);
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<javax.naming.NamingException: java.lang.String toString()>();
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.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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, "loadAllJdbcResources end");
label:
return;
catch java.lang.Exception from label to label with label;
catch javax.naming.NamingException from label to label with label;
}
private java.util.Collection getAllJdbcResources()
{
com.sun.enterprise.connectors.util.ResourcesUtil v;
org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler v;
java.util.ArrayList v;
boolean v, v, v;
java.util.Iterator v, v;
java.util.Collection v, v, v;
com.sun.enterprise.config.serverbeans.Applications v;
java.util.List v, v, v, v;
com.sun.enterprise.config.serverbeans.Domain v;
java.lang.Object v, v;
com.sun.enterprise.config.serverbeans.Resources v, v, v;
v := @this: org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.config.serverbeans.Domain domain>;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Domain: com.sun.enterprise.config.serverbeans.Resources getResources()>();
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Resources: java.util.Collection getResources(java.lang.Class)>(class "Lorg/glassfish/jdbc/config/JdbcResource;");
interfaceinvoke v.<java.util.Collection: boolean addAll(java.util.Collection)>(v);
v = v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.config.serverbeans.Applications applications>;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Applications: java.util.List getApplications()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <com.sun.enterprise.connectors.util.ResourcesUtil: com.sun.enterprise.connectors.util.ResourcesUtil createInstance()>();
v = virtualinvoke v.<com.sun.enterprise.connectors.util.ResourcesUtil: boolean isEnabled(com.sun.enterprise.config.serverbeans.Application)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Application: com.sun.enterprise.config.serverbeans.Resources getResources()>();
if v == null goto label;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Resources: java.util.List getResources()>();
if v == null goto label;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Resources: java.util.Collection getResources(java.lang.Class)>(class "Lorg/glassfish/jdbc/config/JdbcResource;");
interfaceinvoke v.<java.util.Collection: boolean addAll(java.util.Collection)>(v);
label:
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Application: java.util.List getModule()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Module: com.sun.enterprise.config.serverbeans.Resources getResources()>();
if v == null goto label;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Resources: java.util.List getResources()>();
if v == null goto label;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Resources: java.util.Collection getResources(java.lang.Class)>(class "Lorg/glassfish/jdbc/config/JdbcResource;");
interfaceinvoke v.<java.util.Collection: boolean addAll(java.util.Collection)>(v);
goto label;
label:
return v;
}
private com.sun.enterprise.connectors.util.ResourcesUtil getResourcesUtil()
{
com.sun.enterprise.connectors.util.ResourcesUtil v, v, v;
org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler v;
v := @this: org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler;
v = v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.connectors.util.ResourcesUtil resourcesUtil>;
if v != null goto label;
v = staticinvoke <com.sun.enterprise.connectors.util.ResourcesUtil: com.sun.enterprise.connectors.util.ResourcesUtil createInstance()>();
v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.connectors.util.ResourcesUtil resourcesUtil> = v;
label:
v = v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.connectors.util.ResourcesUtil resourcesUtil>;
return v;
}
public void loadXAResourcesAndItsConnections(java.util.List, java.util.List)
{
com.sun.enterprise.connectors.util.ResourcesUtil v;
javax.transaction.xa.XAResource v;
org.glassfish.jdbc.config.JdbcConnectionPool v, v;
java.util.Set v, v;
java.lang.Exception v;
java.lang.ClassLoader v;
org.glassfish.hk.api.ServiceLocator v;
org.glassfish.jdbc.util.JdbcResourcesUtil v;
java.lang.Throwable v;
java.util.ArrayList v;
org.glassfish.security.common.UserNameAndPassword v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Properties v;
org.glassfish.api.admin.config.ConfigExtension v;
jakarta.resource.spi.ManagedConnectionFactory v;
char[] v;
org.glassfish.jdbc.config.JdbcResource v;
org.glassfish.resourcebase.resources.api.PoolInfo v;
org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler v;
com.sun.enterprise.transaction.config.TransactionService v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.sun.enterprise.config.serverbeans.Resource v;
java.util.Collection v;
java.util.logging.Logger v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v, v, v;
jakarta.resource.spi.security.PasswordCredential v;
jakarta.resource.spi.ManagedConnection v;
java.lang.String[] v;
java.lang.'annotation'.Annotation[] v;
java.util.logging.Level v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v;
org.glassfish.resourcebase.resources.api.ResourceInfo v;
java.util.Iterator v, v, v;
javax.security.auth.Subject v;
jakarta.inject.Provider v;
java.lang.Class v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: jakarta.inject.Provider connectorRuntimeProvider>;
v = interfaceinvoke v.<jakarta.inject.Provider: java.lang.Object get()>();
v = specialinvoke v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.Collection getAllJdbcResources()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Collection: int size()>();
if v != 0 goto label;
label:
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
virtualinvoke v.<java.util.logging.Logger: void finest(java.lang.String)>("loadXAResourcesAndItsConnections : no resources");
label:
return;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = specialinvoke v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.connectors.util.ResourcesUtil getResourcesUtil()>();
v = virtualinvoke v.<com.sun.enterprise.connectors.util.ResourcesUtil: boolean isEnabled(com.sun.enterprise.config.serverbeans.BindableResource)>(v);
if v == 0 goto label;
v = staticinvoke <com.sun.appserv.connectors.internal.api.ConnectorsUtil: org.glassfish.resourcebase.resources.api.ResourceInfo getResourceInfo(com.sun.enterprise.config.serverbeans.BindableResource)>(v);
v = staticinvoke <org.glassfish.jdbc.util.JdbcResourcesUtil: org.glassfish.jdbc.util.JdbcResourcesUtil createInstance()>();
v = virtualinvoke v.<org.glassfish.jdbc.util.JdbcResourcesUtil: org.glassfish.jdbc.config.JdbcConnectionPool getJdbcConnectionPoolOfResource(org.glassfish.resourcebase.resources.api.ResourceInfo)>(v);
if v == null goto label;
v = "javax.sql.XADataSource";
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.lang.String getResType()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcResource: java.lang.String getPoolName()>();
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[])>("JdbcRecoveryResourceHandler:: loadXAResourcesAndItsConnections :: adding : \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
goto label;
label:
specialinvoke v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: void loadAllJdbcResources()>();
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
virtualinvoke v.<java.util.Properties: java.lang.Object put(java.lang.Object,java.lang.Object)>("oracle.jdbc.xa.client.OracleXADataSource", "com.sun.enterprise.transaction.jts.recovery.OracleXAResource");
v = v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: org.glassfish.hk.api.ServiceLocator habitat>;
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 "Lcom/sun/enterprise/transaction/config/TransactionService;");
v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.transaction.config.TransactionService txService> = v;
v = v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: com.sun.enterprise.transaction.config.TransactionService txService>;
v = interfaceinvoke v.<com.sun.enterprise.transaction.config.TransactionService: java.util.List getProperty()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.jvnet.hk.config.types.Property: java.lang.String getName()>();
v = interfaceinvoke v.<org.jvnet.hk.config.types.Property: java.lang.String getValue()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("oracle-xa-recovery-workaround");
if v == 0 goto label;
v = "false";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<java.util.Properties: java.lang.Object remove(java.lang.Object)>("oracle.jdbc.xa.client.OracleXADataSource");
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("sybase-xa-recovery-workaround");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("true");
if v == 0 goto label;
virtualinvoke v.<java.util.Properties: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sybase.jdbc.jdbc.SybXADataSource", "com.sun.enterprise.transaction.jts.recovery.SybaseXAResource");
goto label;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.lang.String getResType()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.lang.String getName()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.lang.String getResType()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("javax.sql.XADataSource");
if v != 0 goto label;
label:
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.lang.String getName()>();
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[])>("skipping pool : \u0001");
virtualinvoke v.<java.util.logging.Logger: void finest(java.lang.String)>(v);
goto label;
label:
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.lang.String getName()>();
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[])>(" using pool : \u0001");
virtualinvoke v.<java.util.logging.Logger: void finest(java.lang.String)>(v);
label:
v = staticinvoke <org.glassfish.resourcebase.resources.util.ResourceUtil: org.glassfish.resourcebase.resources.api.PoolInfo getPoolInfo(com.sun.enterprise.config.serverbeans.ResourcePool)>(v);
label:
v = virtualinvoke v.<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.lang.String[] getdbUserPasswordOfJdbcConnectionPool(org.glassfish.jdbc.config.JdbcConnectionPool)>(v);
v = v[0];
v = v[1];
if v != null goto label;
v = "";
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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,java.lang.Object)>(v, "datasource.xadatasource_nullpassword_error", v);
label:
if v != null goto label;
v = "";
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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,java.lang.Object)>(v, "datasource.xadatasource_nulluser_error", v);
label:
v = interfaceinvoke v.<com.sun.appserv.connectors.internal.api.ConnectorRuntime: jakarta.resource.spi.ManagedConnectionFactory obtainManagedConnectionFactory(org.glassfish.resourcebase.resources.api.PoolInfo)>(v);
v = new javax.security.auth.Subject;
specialinvoke v.<javax.security.auth.Subject: void <init>()>();
v = new jakarta.resource.spi.security.PasswordCredential;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
specialinvoke v.<jakarta.resource.spi.security.PasswordCredential: void <init>(java.lang.String,char[])>(v, v);
virtualinvoke v.<jakarta.resource.spi.security.PasswordCredential: void setManagedConnectionFactory(jakarta.resource.spi.ManagedConnectionFactory)>(v);
v = new org.glassfish.security.common.UserNameAndPassword;
specialinvoke v.<org.glassfish.security.common.UserNameAndPassword: void <init>(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrivateCredentials()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<jakarta.resource.spi.ManagedConnectionFactory: jakarta.resource.spi.ManagedConnection createManagedConnection(javax.security.auth.Subject,jakarta.resource.spi.ConnectionRequestInfo)>(v, null);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<jakarta.resource.spi.ManagedConnection: javax.transaction.xa.XAResource getXAResource()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.lang.String getDatasourceClassname()>();
v = virtualinvoke v.<java.util.Properties: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<com.sun.appserv.connectors.internal.api.ConnectorRuntime: java.lang.ClassLoader getConnectorClassLoader()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
virtualinvoke v.<com.sun.enterprise.transaction.api.XAResourceWrapper: void init(jakarta.resource.spi.ManagedConnection,javax.security.auth.Subject)>(v, v);
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.resourcebase.resources.api.PoolInfo,com.sun.enterprise.transaction.api.XAResourceWrapper)>(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[])>("adding resource \u -- \u0001");
virtualinvoke v.<java.util.logging.Logger: void finest(java.lang.String)>(v);
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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 = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.resourcebase.resources.api.PoolInfo,javax.transaction.xa.XAResource)>(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[])>("adding resource \u -- \u0001");
virtualinvoke v.<java.util.logging.Logger: void finest(java.lang.String)>(v);
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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.Object)>(v, "datasource.xadatasource_error", v);
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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, "datasource.xadatasource_error_excp", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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.Object)>(v, "datasource.xadatasource_error", v);
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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, "datasource.xadatasource_error_excp", v);
goto label;
label:
return;
catch jakarta.resource.ResourceException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public void closeConnections(java.util.List)
{
java.util.Iterator v;
org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler v;
java.util.logging.Logger v;
java.lang.Exception v;
java.util.logging.Level v;
java.util.List v;
java.lang.Object v;
boolean v;
v := @this: org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
interfaceinvoke v.<jakarta.resource.spi.ManagedConnection: void destroy()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: 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, "recovery.jdbc-resource.destroy-error", v);
goto label;
label:
return;
catch java.lang.Exception from label to label with label;
}
public java.lang.String[] getdbUserPasswordOfJdbcConnectionPool(org.glassfish.jdbc.config.JdbcConnectionPool)
{
org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler v;
java.lang.String[] v;
java.util.Locale v;
int v;
org.glassfish.jdbc.config.JdbcConnectionPool v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v;
java.util.Iterator v;
java.util.List v;
java.lang.Object v;
v := @this: org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler;
v := @parameter: org.glassfish.jdbc.config.JdbcConnectionPool;
v = newarray (java.lang.String)[2];
v[0] = null;
v[1] = null;
v = interfaceinvoke v.<org.glassfish.jdbc.config.JdbcConnectionPool: java.util.List getProperty()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.jvnet.hk.config.types.Property: java.lang.String getName()>();
v = staticinvoke <java.util.Locale: java.util.Locale getDefault()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase(java.util.Locale)>(v);
v = "USERNAME";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "USER";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = interfaceinvoke v.<org.jvnet.hk.config.types.Property: java.lang.String getValue()>();
v[0] = v;
goto label;
label:
v = "PASSWORD";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.jvnet.hk.config.types.Property: java.lang.String getValue()>();
v[1] = v;
goto label;
label:
return v;
label:
return v;
}
static void <clinit>()
{
java.util.logging.Logger v;
v = staticinvoke <com.sun.logging.LogDomains: java.util.logging.Logger getLogger(java.lang.Class,java.lang.String)>(class "Lorg/glassfish/jdbc/recovery/JdbcRecoveryResourceHandler;", "jakarta.enterprise.resource.resourceadapter");
<org.glassfish.jdbc.recovery.JdbcRecoveryResourceHandler: java.util.logging.Logger _logger> = v;
return;
}
}