public class com.novell.ldapchai.provider.JNDIProviderImpl extends com.novell.ldapchai.provider.AbstractProvider implements com.novell.ldapchai.provider.ChaiProviderImplementor
{
private static final int DEFAULT_INITIAL_POOL_SIZE;
private static final int DEFAULT_PREFERRED_POOL_SIZE;
private static final int DEFAULT_MAXIMUM_POOL_SIZE;
private static final com.novell.ldapchai.util.internal.ChaiLogger LOGGER;
private java.lang.Boolean cachedPagingEnableSupport;
private javax.naming.ldap.LdapContext jndiConnection;
private javax.net.SocketFactory socketFactory;
private static javax.naming.ldap.LdapContext generateNewJndiContext(java.util.Hashtable) throws com.novell.ldapchai.exception.ChaiOperationException, com.novell.ldapchai.exception.ChaiUnavailableException
{
java.lang.Throwable v;
javax.naming.ldap.InitialLdapContext v;
javax.naming.NamingException v;
java.util.function.Supplier v;
java.time.Duration v;
java.lang.String v, v, v, v, v, v, v;
java.util.Hashtable v;
boolean v;
java.time.Instant v, v;
com.novell.ldapchai.exception.ChaiError v;
com.novell.ldapchai.exception.ChaiUnavailableException v, v;
java.lang.Object v, v;
java.lang.StringBuilder v, v, v;
com.novell.ldapchai.util.internal.ChaiLogger v;
v := @parameter: java.util.Hashtable;
v = virtualinvoke v.<java.util.Hashtable: java.lang.Object get(java.lang.Object)>("java.naming.provider.url");
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.Hashtable: java.lang.Object get(java.lang.Object)>("java.naming.security.principal");
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
label:
v = staticinvoke <java.time.Instant: java.time.Instant now()>();
v = new javax.naming.ldap.InitialLdapContext;
specialinvoke v.<javax.naming.ldap.InitialLdapContext: void <init>(java.util.Hashtable,javax.naming.ldap.Control[])>(v, null);
v = staticinvoke <java.time.Instant: java.time.Instant now()>();
v = staticinvoke <java.time.Duration: java.time.Duration between(java.time.temporal.Temporal,java.time.temporal.Temporal)>(v, v);
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_generateNewJndiContext_0__146: java.util.function.Supplier bootstrap$(java.lang.String)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier,java.time.Duration)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("unable to bind to ");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" as ");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" reason: ");
v = v instanceof javax.naming.CommunicationException;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("CommunicationException (");
v = virtualinvoke v.<javax.naming.NamingException: java.lang.String getMessage()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<javax.naming.NamingException: java.lang.Throwable getRootCause()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("; ");
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(")");
v = new com.novell.ldapchai.exception.ChaiUnavailableException;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = <com.novell.ldapchai.exception.ChaiError: com.novell.ldapchai.exception.ChaiError COMMUNICATION>;
specialinvoke v.<com.novell.ldapchai.exception.ChaiUnavailableException: void <init>(java.lang.String,com.novell.ldapchai.exception.ChaiError,boolean,boolean,java.lang.Throwable)>(v, v, 0, 1, v);
throw v;
label:
v = virtualinvoke v.<javax.naming.NamingException: java.lang.String getMessage()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = staticinvoke <com.novell.ldapchai.exception.ChaiUnavailableException: com.novell.ldapchai.exception.ChaiUnavailableException forErrorMessage(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch javax.naming.NamingException from label to label with label;
}
private static java.lang.Byte[] toObject(byte[])
{
byte[] v;
java.lang.Byte[] v, v;
byte v;
int v, v, v, v;
java.lang.Byte v;
v := @parameter: byte[];
if v != null goto label;
return null;
label:
v = lengthof v;
if v != 0 goto label;
v = newarray (java.lang.Byte)[0];
return v;
label:
v = lengthof v;
v = newarray (java.lang.Byte)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(byte)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
private static byte[] toPrimitive(java.lang.Byte[])
{
byte[] v, v;
java.lang.Byte[] v;
byte v;
int v, v, v, v;
java.lang.Byte v;
v := @parameter: java.lang.Byte[];
if v != null goto label;
return null;
label:
v = lengthof v;
if v != 0 goto label;
v = newarray (byte)[0];
return v;
label:
v = lengthof v;
v = newarray (byte)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.Byte: byte byteValue()>();
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
void <init>()
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
specialinvoke v.<com.novell.ldapchai.provider.AbstractProvider: void <init>()>();
v.<com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.Boolean cachedPagingEnableSupport> = null;
return;
}
public void close()
{
java.lang.Throwable v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.ldap.LdapContext v, v;
java.util.function.Supplier v;
java.lang.Exception v;
com.novell.ldapchai.util.internal.ChaiLogger v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
specialinvoke v.<com.novell.ldapchai.provider.AbstractProvider: void close()>();
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection>;
if v == null goto label;
label:
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection>;
interfaceinvoke v.<javax.naming.ldap.LdapContext: void close()>();
label:
v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection> = null;
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_close_1__147: java.util.function.Supplier bootstrap$(java.lang.Exception)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void warn(java.util.function.Supplier,java.lang.Exception)>(v, v);
label:
v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection> = null;
goto label;
label:
v := @caughtexception;
v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection> = null;
throw v;
label:
return;
catch java.lang.Exception 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;
}
public final boolean compareStringAttribute(java.lang.String, java.lang.String, java.lang.String) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.Throwable v;
byte[] v;
java.lang.Object[] v;
java.lang.String[] v;
javax.naming.NamingException v;
javax.naming.directory.SearchControls v;
java.lang.String v, v, v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v;
java.lang.UnsupportedOperationException v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.NamingEnumeration v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
java.io.UnsupportedEncodingException v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: boolean compareStringAttribute(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
label:
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.lang.String)>("UTF-8");
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = new javax.naming.directory.SearchControls;
specialinvoke v.<javax.naming.directory.SearchControls: void <init>()>();
v = newarray (java.lang.String)[0];
virtualinvoke v.<javax.naming.directory.SearchControls: void setReturningAttributes(java.lang.String[])>(v);
virtualinvoke v.<javax.naming.directory.SearchControls: void setSearchScope(int)>(0);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
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={0})");
v = newarray (java.lang.Object)[1];
v[0] = v;
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: javax.naming.NamingEnumeration search(java.lang.String,java.lang.String,java.lang.Object[],javax.naming.directory.SearchControls)>(v, v, v, v);
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMore()>();
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
v := @caughtexception;
throw v;
label:
return v;
catch java.io.UnsupportedEncodingException from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public final void createEntry(java.lang.String, java.lang.String, java.util.Map) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.util.Map v;
java.util.Set v;
java.lang.String v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void createEntry(java.lang.String,java.lang.String,java.util.Map)>(v, v, v);
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void createEntry(java.lang.String,java.util.Set,java.util.Map)>(v, v, v);
return;
}
public final void createEntry(java.lang.String, java.util.Set, java.util.Map) throws com.novell.ldapchai.exception.ChaiOperationException, com.novell.ldapchai.exception.ChaiUnavailableException
{
javax.naming.NamingException v;
javax.naming.directory.BasicAttribute v;
java.util.Map v;
java.lang.String v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v, v;
java.util.Iterator v, v;
java.util.Set v, v;
javax.naming.directory.BasicAttributes v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.Object v, v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.util.Set;
v := @parameter: java.util.Map;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void createEntry(java.lang.String,java.util.Set,java.util.Map)>(v, v, v);
v = new javax.naming.directory.BasicAttributes;
specialinvoke v.<javax.naming.directory.BasicAttributes: void <init>()>();
v = new javax.naming.directory.BasicAttribute;
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String)>("objectClass");
v = interfaceinvoke v.<java.util.Set: 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()>();
virtualinvoke v.<javax.naming.directory.BasicAttribute: boolean add(java.lang.Object)>(v);
goto label;
label:
interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute put(javax.naming.directory.Attribute)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute put(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.directory.DirContext: javax.naming.directory.DirContext createSubcontext(java.lang.String,javax.naming.directory.Attributes)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
return;
catch javax.naming.NamingException from label to label with label;
}
public void renameEntry(java.lang.String, java.lang.String, java.lang.String) throws com.novell.ldapchai.exception.ChaiOperationException, com.novell.ldapchai.exception.ChaiUnavailableException, java.lang.IllegalStateException
{
javax.naming.NamingException v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.String v, v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.exception.ChaiOperationException v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void renameEntry(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
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[])>("\u,\u0001");
interfaceinvoke v.<javax.naming.ldap.LdapContext: void rename(java.lang.String,java.lang.String)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
return;
catch javax.naming.NamingException from label to label with label;
}
public final void deleteEntry(java.lang.String) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.String v, v;
javax.naming.NamingException v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.exception.ChaiOperationException v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void deleteEntry(java.lang.String)>(v);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void destroySubcontext(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
return;
catch javax.naming.NamingException from label to label with label;
}
public final void deleteStringAttributeValue(java.lang.String, java.lang.String, java.lang.String) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
javax.naming.directory.ModificationItem v;
javax.naming.NamingException v;
javax.naming.directory.BasicAttribute v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.directory.ModificationItem[] v;
java.lang.String v, v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.exception.ChaiOperationException v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void deleteStringAttributeValue(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = new javax.naming.directory.BasicAttribute;
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
v = newarray (javax.naming.directory.ModificationItem)[1];
v = new javax.naming.directory.ModificationItem;
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(3, v);
v[0] = v;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void modifyAttributes(java.lang.String,javax.naming.directory.ModificationItem[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
return;
catch javax.naming.NamingException from label to label with label;
}
public final javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
javax.naming.ldap.ExtendedRequest v;
javax.naming.NamingException v;
javax.naming.ldap.ExtendedResponse v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.String v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.exception.ChaiOperationException v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: javax.naming.ldap.ExtendedRequest;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest)>(v);
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void preCheckExtendedOperation(javax.naming.ldap.ExtendedRequest)>(v);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest)>(v);
label:
return v;
label:
v := @caughtexception;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void cacheExtendedOperationException(javax.naming.ldap.ExtendedRequest,java.lang.Exception)>(v, v);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
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[])>("unexpected chai api error: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch javax.naming.NamingException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public com.novell.ldapchai.provider.ChaiConfiguration getChaiConfiguration()
{
com.novell.ldapchai.provider.ChaiConfiguration v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
return v;
}
public com.novell.ldapchai.provider.ProviderStatistics getProviderStatistics()
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
return null;
}
public final byte[][] readMultiByteAttribute(java.lang.String, java.lang.String) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
byte[] v;
javax.naming.NamingException v, v, v, v;
java.lang.NullPointerException v;
javax.naming.directory.Attribute v;
boolean v, v;
byte[][] v, v;
javax.naming.directory.Attributes v;
javax.naming.NamingEnumeration v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.util.internal.ChaiLogger v, v, v;
java.lang.Throwable v;
java.lang.String[] v;
java.util.function.Supplier v, v, v;
java.util.ArrayList v;
int v, v, v;
java.lang.String v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.Byte[] v;
java.lang.Object v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: byte[][] readMultiByteAttribute(java.lang.String,java.lang.String)>(v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = null;
v = newarray (java.lang.String)[1];
v[0] = v;
label:
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object lookup(java.lang.String)>("");
interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object addToEnvironment(java.lang.String,java.lang.Object)>("java.naming.ldap.attributes.binary", v);
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: javax.naming.directory.Attributes getAttributes(java.lang.String,java.lang.String[])>(v, v);
v = interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute get(java.lang.String)>(v);
v = interfaceinvoke v.<javax.naming.directory.Attribute: javax.naming.NamingEnumeration getAll()>();
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMore()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object next()>();
v = v instanceof byte[];
if v == 0 goto label;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.Byte[] toObject(byte[])>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (byte[])[v];
v = 0;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: byte[] toPrimitive(java.lang.Byte[])>(v);
v[v] = v;
v = v + 1;
goto label;
label:
interfaceinvoke v.<javax.naming.NamingEnumeration: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_readMultiByteAttribute_2__150: java.util.function.Supplier bootstrap$(javax.naming.NamingException)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
label:
return v;
label:
v := @caughtexception;
v = newmultiarray (byte)[0][0];
label:
if v == null goto label;
interfaceinvoke v.<javax.naming.NamingEnumeration: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_readMultiByteAttribute_2__149: java.util.function.Supplier bootstrap$(javax.naming.NamingException)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
label:
return v;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
v := @caughtexception;
label:
if v == null goto label;
interfaceinvoke v.<javax.naming.NamingEnumeration: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_readMultiByteAttribute_2__148: java.util.function.Supplier bootstrap$(javax.naming.NamingException)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
label:
throw v;
catch javax.naming.NamingException from label to label with label;
catch java.lang.NullPointerException from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch javax.naming.NamingException 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 javax.naming.NamingException from label to label with label;
}
public final java.util.Set readMultiStringAttribute(java.lang.String, java.lang.String) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.Throwable v;
java.lang.String[] v;
javax.naming.NamingException v, v, v, v;
java.util.function.Supplier v, v, v;
java.lang.NullPointerException v;
java.util.HashSet v;
javax.naming.directory.Attribute v;
java.lang.String v, v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v;
java.util.Set v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.directory.Attributes v;
javax.naming.NamingEnumeration v;
java.lang.Object v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.util.internal.ChaiLogger v, v, v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: java.util.Set readMultiStringAttribute(java.lang.String,java.lang.String)>(v, v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = null;
label:
v = newarray (java.lang.String)[1];
v[0] = v;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: javax.naming.directory.Attributes getAttributes(java.lang.String,java.lang.String[])>(v, v);
v = interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute get(java.lang.String)>(v);
v = interfaceinvoke v.<javax.naming.directory.Attribute: javax.naming.NamingEnumeration getAll()>();
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMore()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
interfaceinvoke v.<javax.naming.NamingEnumeration: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_readMultiStringAttribute_3__153: java.util.function.Supplier bootstrap$(javax.naming.NamingException)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
label:
return v;
label:
v := @caughtexception;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
label:
if v == null goto label;
interfaceinvoke v.<javax.naming.NamingEnumeration: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_readMultiStringAttribute_3__152: java.util.function.Supplier bootstrap$(javax.naming.NamingException)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
label:
return v;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
v := @caughtexception;
label:
if v == null goto label;
interfaceinvoke v.<javax.naming.NamingEnumeration: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_readMultiStringAttribute_3__151: java.util.function.Supplier bootstrap$(javax.naming.NamingException)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
label:
throw v;
catch javax.naming.NamingException from label to label with label;
catch java.lang.NullPointerException from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch javax.naming.NamingException 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 javax.naming.NamingException from label to label with label;
}
public final java.lang.String readStringAttribute(java.lang.String, java.lang.String) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.util.Map v;
java.util.Set v;
java.lang.Object v;
java.lang.String v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: java.lang.String readStringAttribute(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: java.util.Map readStringAttributes(java.lang.String,java.util.Set)>(v, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public final java.util.Map readStringAttributes(java.lang.String, java.util.Set) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.Throwable v;
java.lang.Object[] v;
java.lang.String[] v;
javax.naming.NamingException v;
java.util.LinkedHashMap v;
javax.naming.directory.Attribute v;
java.lang.String v, v, v, v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v, v, v;
java.util.Iterator v;
java.util.Set v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.directory.Attributes v, v;
javax.naming.NamingEnumeration v;
java.lang.Object v, v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.util.Set;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: java.util.Map readStringAttributes(java.lang.String,java.util.Set)>(v, v);
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: javax.naming.directory.Attributes getAttributes(java.lang.String,java.lang.String[])>(v, null);
v = interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.NamingEnumeration getAll()>();
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object nextElement()>();
if v == null goto label;
v = interfaceinvoke v.<javax.naming.directory.Attribute: java.lang.String getID()>();
v = interfaceinvoke v.<javax.naming.directory.Attribute: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: javax.naming.directory.Attributes getAttributes(java.lang.String,java.lang.String[])>(v, v);
v = interfaceinvoke v.<java.util.Set: 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.<javax.naming.directory.Attributes: javax.naming.directory.Attribute get(java.lang.String)>(v);
if v == null goto label;
v = interfaceinvoke v.<javax.naming.directory.Attribute: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
v := @caughtexception;
throw v;
label:
return v;
catch javax.naming.NamingException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public final void replaceStringAttribute(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
javax.naming.directory.ModificationItem v, v;
javax.naming.NamingException v;
javax.naming.directory.BasicAttribute v, v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.directory.ModificationItem[] v;
java.lang.String v, v, v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.exception.ChaiOperationException v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void replaceStringAttribute(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
v = newarray (javax.naming.directory.ModificationItem)[2];
v = new javax.naming.directory.ModificationItem;
v = new javax.naming.directory.BasicAttribute;
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(3, v);
v[0] = v;
v = new javax.naming.directory.ModificationItem;
v = new javax.naming.directory.BasicAttribute;
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(1, v);
v[1] = v;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void modifyAttributes(java.lang.String,javax.naming.directory.ModificationItem[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
return;
catch javax.naming.NamingException from label to label with label;
}
public final java.util.Map search(java.lang.String, com.novell.ldapchai.util.SearchHelper) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.util.SearchHelper v;
java.util.HashMap v;
java.util.LinkedHashMap v;
java.util.Map v, v, v, v;
int v;
java.lang.String v;
boolean v, v;
java.util.Iterator v, v;
com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine v;
com.novell.ldapchai.provider.ChaiConfiguration v;
java.util.Set v, v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.Object v, v, v, v, v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: com.novell.ldapchai.util.SearchHelper;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: java.util.Map search(java.lang.String,com.novell.ldapchai.util.SearchHelper)>(v, v);
v = new com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine: void <init>(com.novell.ldapchai.provider.JNDIProviderImpl,com.novell.ldapchai.provider.ChaiConfiguration,java.lang.String,com.novell.ldapchai.util.SearchHelper,boolean)>(v, v, v, v, 0);
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine: java.util.Map getResults()>();
if v == null goto label;
v = new java.util.HashMap;
v = interfaceinvoke v.<java.util.Map: int size()>();
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
return v;
label:
v = staticinvoke <java.util.Collections: java.util.Map emptyMap()>();
return v;
}
public final java.util.Map search(java.lang.String, java.lang.String, java.util.Set, com.novell.ldapchai.provider.SearchScope) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.util.SearchHelper v;
java.util.Set v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.util.Map v;
java.lang.String v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
com.novell.ldapchai.provider.SearchScope v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Set;
v := @parameter: com.novell.ldapchai.provider.SearchScope;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: java.util.Map search(java.lang.String,java.lang.String,java.util.Set,com.novell.ldapchai.provider.SearchScope)>(v, v, v, v);
v = new com.novell.ldapchai.util.SearchHelper;
specialinvoke v.<com.novell.ldapchai.util.SearchHelper: void <init>()>();
virtualinvoke v.<com.novell.ldapchai.util.SearchHelper: void setFilter(java.lang.String)>(v);
virtualinvoke v.<com.novell.ldapchai.util.SearchHelper: void setAttributes(java.util.Collection)>(v);
virtualinvoke v.<com.novell.ldapchai.util.SearchHelper: void setSearchScope(com.novell.ldapchai.provider.SearchScope)>(v);
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: java.util.Map search(java.lang.String,com.novell.ldapchai.util.SearchHelper)>(v, v);
return v;
}
public final java.util.Map searchMultiValues(java.lang.String, com.novell.ldapchai.util.SearchHelper) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
com.novell.ldapchai.util.SearchHelper v;
com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine v;
java.util.Map v;
com.novell.ldapchai.provider.ChaiConfiguration v;
java.lang.String v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: com.novell.ldapchai.util.SearchHelper;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: java.util.Map searchMultiValues(java.lang.String,com.novell.ldapchai.util.SearchHelper)>(v, v);
v = new com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine: void <init>(com.novell.ldapchai.provider.JNDIProviderImpl,com.novell.ldapchai.provider.ChaiConfiguration,java.lang.String,com.novell.ldapchai.util.SearchHelper,boolean)>(v, v, v, v, 1);
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine: java.util.Map getResults()>();
return v;
}
public final java.util.Map searchMultiValues(java.lang.String, java.lang.String, java.util.Set, com.novell.ldapchai.provider.SearchScope) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.util.SearchHelper v;
com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine v;
com.novell.ldapchai.provider.ChaiConfiguration v;
java.util.Set v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.util.Map v;
java.lang.String v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
com.novell.ldapchai.provider.SearchScope v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Set;
v := @parameter: com.novell.ldapchai.provider.SearchScope;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: java.util.Map searchMultiValues(java.lang.String,java.lang.String,java.util.Set,com.novell.ldapchai.provider.SearchScope)>(v, v, v, v);
v = new com.novell.ldapchai.util.SearchHelper;
specialinvoke v.<com.novell.ldapchai.util.SearchHelper: void <init>()>();
virtualinvoke v.<com.novell.ldapchai.util.SearchHelper: void setFilter(java.lang.String)>(v);
virtualinvoke v.<com.novell.ldapchai.util.SearchHelper: void setAttributes(java.util.Collection)>(v);
virtualinvoke v.<com.novell.ldapchai.util.SearchHelper: void setSearchScope(com.novell.ldapchai.provider.SearchScope)>(v);
v = new com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine: void <init>(com.novell.ldapchai.provider.JNDIProviderImpl,com.novell.ldapchai.provider.ChaiConfiguration,java.lang.String,com.novell.ldapchai.util.SearchHelper,boolean)>(v, v, v, v, 1);
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl$SearchEngine: java.util.Map getResults()>();
return v;
}
public final void writeBinaryAttribute(java.lang.String, java.lang.String, byte[][], boolean) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
byte[][] v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.String v, v;
boolean v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: byte[][];
v := @parameter: boolean;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void writeBinaryAttribute(java.lang.String,java.lang.String,byte[][],boolean,com.novell.ldapchai.ChaiRequestControl[])>(v, v, v, v, null);
return;
}
public final void writeBinaryAttribute(java.lang.String, java.lang.String, byte[][], boolean, com.novell.ldapchai.ChaiRequestControl[]) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.Throwable v;
javax.naming.directory.ModificationItem v;
byte[] v;
javax.naming.NamingException v;
javax.naming.directory.BasicAttribute v;
javax.naming.directory.ModificationItem[] v;
byte v;
int v, v, v, v;
com.novell.ldapchai.ChaiRequestControl[] v;
java.lang.String v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v;
javax.naming.ldap.BasicControl[] v;
java.lang.Exception v, v;
byte[][] v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: byte[][];
v := @parameter: boolean;
v := @parameter: com.novell.ldapchai.ChaiRequestControl[];
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void writeBinaryAttribute(java.lang.String,java.lang.String,byte[][],boolean)>(v, v, v, v);
v = lengthof v;
v = newarray (javax.naming.directory.ModificationItem)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = new javax.naming.directory.BasicAttribute;
v = v[v];
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
if v != 0 goto label;
if v == 0 goto label;
v = 2;
goto label;
label:
v = 1;
label:
v = new javax.naming.directory.ModificationItem;
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.BasicControl[] convertControls(com.novell.ldapchai.ChaiRequestControl[])>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void setRequestControls(javax.naming.ldap.Control[])>(v);
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void modifyAttributes(java.lang.String,javax.naming.directory.ModificationItem[])>(v, v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object addToEnvironment(java.lang.String,java.lang.Object)>("java.naming.ldap.attributes.binary", v);
label:
interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object removeFromEnvironment(java.lang.String)>("java.naming.ldap.attributes.binary");
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
v := @caughtexception;
label:
interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object removeFromEnvironment(java.lang.String)>("java.naming.ldap.attributes.binary");
label:
goto label;
label:
v := @caughtexception;
label:
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
public final void replaceBinaryAttribute(java.lang.String, java.lang.String, byte[], byte[]) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
java.lang.Throwable v;
javax.naming.directory.ModificationItem v, v;
byte[] v, v;
javax.naming.NamingException v;
javax.naming.directory.BasicAttribute v, v;
javax.naming.directory.ModificationItem[] v;
java.lang.String v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
java.lang.Exception v, v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: byte[];
v := @parameter: byte[];
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void replaceBinaryAttribute(java.lang.String,java.lang.String,byte[],byte[])>(v, v, v, v);
v = newarray (javax.naming.directory.ModificationItem)[2];
v = new javax.naming.directory.BasicAttribute;
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
v = new javax.naming.directory.ModificationItem;
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(3, v);
v[0] = v;
v = new javax.naming.directory.BasicAttribute;
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
v = new javax.naming.directory.ModificationItem;
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(1, v);
v[1] = v;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void modifyAttributes(java.lang.String,javax.naming.directory.ModificationItem[])>(v, v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object addToEnvironment(java.lang.String,java.lang.Object)>("java.naming.ldap.attributes.binary", v);
label:
interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object removeFromEnvironment(java.lang.String)>("java.naming.ldap.attributes.binary");
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
v := @caughtexception;
label:
interfaceinvoke v.<javax.naming.ldap.LdapContext: java.lang.Object removeFromEnvironment(java.lang.String)>("java.naming.ldap.attributes.binary");
label:
goto label;
label:
v := @caughtexception;
label:
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
public final void writeStringAttribute(java.lang.String, java.lang.String, java.util.Set, boolean) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
javax.naming.directory.ModificationItem v;
javax.naming.NamingException v;
java.util.function.Supplier v;
javax.naming.directory.BasicAttribute v;
javax.naming.directory.ModificationItem[] v;
byte v;
int v, v;
java.lang.String v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v, v;
java.util.Iterator v;
java.util.Set v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.Object v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.util.internal.ChaiLogger v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Set;
v := @parameter: boolean;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void writeStringAttribute(java.lang.String,java.lang.String,java.util.Set,boolean)>(v, v, v, v);
v = interfaceinvoke v.<java.util.Set: int size()>();
v = newarray (javax.naming.directory.ModificationItem)[v];
v = 0;
v = interfaceinvoke v.<java.util.Set: 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 = new javax.naming.directory.BasicAttribute;
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
if v != 0 goto label;
if v == 0 goto label;
v = 2;
goto label;
label:
v = 1;
label:
v = new javax.naming.directory.ModificationItem;
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void modifyAttributes(java.lang.String,javax.naming.directory.ModificationItem[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_writeStringAttribute_4__154: java.util.function.Supplier bootstrap$(java.lang.String,javax.naming.NamingException)>(v, v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
return;
catch javax.naming.NamingException from label to label with label;
}
public final void writeStringAttributes(java.lang.String, java.util.Map, boolean) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.util.Map v;
java.lang.String v;
boolean v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v := @parameter: boolean;
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void writeStringAttributes(java.lang.String,java.util.Map,boolean,javax.naming.ldap.BasicControl[])>(v, v, v, null);
return;
}
public final void writeStringAttributes(java.lang.String, java.util.Map, boolean, javax.naming.ldap.BasicControl[]) throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
javax.naming.directory.ModificationItem v;
java.lang.Object[] v;
javax.naming.NamingException v;
java.util.ArrayList v;
javax.naming.directory.BasicAttribute v;
javax.naming.directory.ModificationItem[] v;
byte v, v;
java.util.Map v;
java.lang.String v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v, v;
java.util.Iterator v;
java.util.Set v;
javax.naming.ldap.BasicControl[] v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.Object v, v, v;
com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator v;
javax.naming.ldap.LdapContext v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v := @parameter: boolean;
v := @parameter: javax.naming.ldap.BasicControl[];
virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: void activityPreCheck()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator getInputValidator()>();
virtualinvoke v.<com.novell.ldapchai.provider.AbstractProvider$ChaiProviderInputValidator: void writeStringAttributes(java.lang.String,java.util.Map,boolean)>(v, v, v);
if v == 0 goto label;
v = 2;
goto label;
label:
v = 1;
label:
v = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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 = new javax.naming.directory.BasicAttribute;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
specialinvoke v.<javax.naming.directory.BasicAttribute: void <init>(java.lang.String,java.lang.Object)>(v, v);
v = new javax.naming.directory.ModificationItem;
specialinvoke v.<javax.naming.directory.ModificationItem: void <init>(int,javax.naming.directory.Attribute)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = newarray (javax.naming.directory.ModificationItem)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
interfaceinvoke v.<javax.naming.ldap.LdapContext: void modifyAttributes(java.lang.String,javax.naming.directory.ModificationItem[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException)>(v);
throw v;
label:
return;
catch javax.naming.NamingException from label to label with label;
}
public java.lang.Object getConnectionObject() throws java.lang.Exception
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.ldap.LdapContext v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext getLdapConnection()>();
return v;
}
public java.lang.String getCurrentConnectionURL()
{
com.novell.ldapchai.provider.ChaiConfiguration v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.String v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration getChaiConfiguration()>();
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getDebugUrl()>();
return v;
}
public void init(com.novell.ldapchai.provider.ChaiConfiguration, com.novell.ldapchai.provider.ChaiProviderFactory) throws com.novell.ldapchai.exception.ChaiUnavailableException, java.lang.IllegalStateException
{
com.novell.ldapchai.provider.ChaiConfiguration v;
com.novell.ldapchai.exception.ChaiError v;
com.novell.ldapchai.provider.ChaiProviderFactory v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.util.List v;
com.novell.ldapchai.exception.ChaiUnavailableException v;
java.lang.Object v;
java.lang.String v, v;
javax.naming.ldap.LdapContext v;
com.novell.ldapchai.exception.ChaiOperationException v;
java.util.Hashtable v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: com.novell.ldapchai.provider.ChaiConfiguration;
v := @parameter: com.novell.ldapchai.provider.ChaiProviderFactory;
v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig> = v;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.util.List bindURLsAsList()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = specialinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: java.util.Hashtable generateJndiEnvironment(java.lang.String)>(v);
label:
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext generateNewJndiContext(java.util.Hashtable)>(v);
v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection> = v;
label:
goto label;
label:
v := @caughtexception;
v = new com.novell.ldapchai.exception.ChaiUnavailableException;
v = virtualinvoke v.<com.novell.ldapchai.exception.ChaiOperationException: java.lang.String getMessage()>();
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[])>("bind failed (\u)");
v = virtualinvoke v.<com.novell.ldapchai.exception.ChaiOperationException: com.novell.ldapchai.exception.ChaiError getErrorCode()>();
specialinvoke v.<com.novell.ldapchai.exception.ChaiUnavailableException: void <init>(java.lang.String,com.novell.ldapchai.exception.ChaiError,java.lang.Throwable)>(v, v, v);
throw v;
label:
specialinvoke v.<com.novell.ldapchai.provider.AbstractProvider: void init(com.novell.ldapchai.provider.ChaiConfiguration,com.novell.ldapchai.provider.ChaiProviderFactory)>(v, v);
return;
catch com.novell.ldapchai.exception.ChaiOperationException from label to label with label;
}
private java.util.Hashtable generateJndiEnvironment(java.lang.String)
{
javax.net.ssl.SSLContext v, v;
java.security.SecureRandom v, v;
java.security.GeneralSecurityException v, v;
javax.net.ssl.X509TrustManager[] v, v, v;
java.util.Set v;
javax.net.ssl.SSLSocketFactory v, v;
com.novell.ldapchai.provider.AbstractProvider$PromiscuousTrustManager v;
java.util.function.Supplier v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.net.URI v;
boolean v, v, v, v, v, v, v, v;
javax.net.SocketFactory v, v;
com.novell.ldapchai.util.internal.ChaiLogger v, v;
int v;
java.lang.Boolean v;
java.util.Hashtable v;
java.util.Iterator v;
com.novell.ldapchai.provider.ChaiConfiguration v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.novell.ldapchai.provider.ChaiSetting v, v, v, v, v, v, v, v;
java.lang.Class v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.String;
v = new java.util.Hashtable;
specialinvoke v.<java.util.Hashtable: void <init>()>();
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.provider.url", v);
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting BIND_DN>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.String addJndiEscape(java.lang.String)>(v);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.security.principal", v);
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getBindPassword()>();
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.security.credentials", v);
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting JNDI_ENABLE_POOL>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.connect.pool", "true");
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(1);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.connect.pool.initsize", v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(50);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.connect.pool.maxsize", v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(10);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.connect.pool.prefsize", v);
label:
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.connect.pool.protocol", "plain ssl");
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting LDAP_CONNECT_TIMEOUT>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.connect.timeout", v);
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting LDAP_READ_TIMEOUT>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: int getIntSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
if v <= 0 goto label;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting LDAP_READ_TIMEOUT>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.read.timeout", v);
label:
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting LDAP_DEREFENCE_ALIAS>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.ldap.derefAliases", v);
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting LDAP_FOLLOW_REFERRALS>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: boolean getBooleanSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
if v == 0 goto label;
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.referral", "follow");
label:
v = staticinvoke <java.net.URI: java.net.URI create(java.lang.String)>(v);
v = virtualinvoke v.<java.net.URI: java.lang.String getScheme()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("ldaps");
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting PROMISCUOUS_SSL>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: boolean getBooleanSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
if v == 0 goto label;
if v == 0 goto label;
label:
v = staticinvoke <javax.net.ssl.SSLContext: javax.net.ssl.SSLContext getInstance(java.lang.String)>("SSL");
v = newarray (javax.net.ssl.X509TrustManager)[1];
v = new com.novell.ldapchai.provider.AbstractProvider$PromiscuousTrustManager;
specialinvoke v.<com.novell.ldapchai.provider.AbstractProvider$PromiscuousTrustManager: void <init>()>();
v[0] = v;
v = new java.security.SecureRandom;
specialinvoke v.<java.security.SecureRandom: void <init>()>();
virtualinvoke v.<javax.net.ssl.SSLContext: void init(javax.net.ssl.KeyManager[],javax.net.ssl.TrustManager[],java.security.SecureRandom)>(null, v, v);
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLSocketFactory getSocketFactory()>();
v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.net.SocketFactory socketFactory> = v;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.net.SocketFactory socketFactory>;
staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$ThreadLocalSocketFactory: void set(javax.net.SocketFactory)>(v);
v = class "Lcom/novell/ldapchai/provider/JNDIProviderImpl$ThreadLocalSocketFactory;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.ldap.factory.socket", v);
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_generateJndiEnvironment_5__156: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void error(java.util.function.Supplier)>(v);
goto label;
label:
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: javax.net.ssl.X509TrustManager[] getTrustManager()>();
if v == null goto label;
label:
v = staticinvoke <javax.net.ssl.SSLContext: javax.net.ssl.SSLContext getInstance(java.lang.String)>("SSL");
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: javax.net.ssl.X509TrustManager[] getTrustManager()>();
v = new java.security.SecureRandom;
specialinvoke v.<java.security.SecureRandom: void <init>()>();
virtualinvoke v.<javax.net.ssl.SSLContext: void init(javax.net.ssl.KeyManager[],javax.net.ssl.TrustManager[],java.security.SecureRandom)>(null, v, v);
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLSocketFactory getSocketFactory()>();
v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.net.SocketFactory socketFactory> = v;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.net.SocketFactory socketFactory>;
staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$ThreadLocalSocketFactory: void set(javax.net.SocketFactory)>(v);
v = class "Lcom/novell/ldapchai/provider/JNDIProviderImpl$ThreadLocalSocketFactory;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.ldap.factory.socket", v);
label:
goto label;
label:
v := @caughtexception;
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_generateJndiEnvironment_6__155: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void error(java.util.function.Supplier)>(v);
label:
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.Object getImplementationConfiguration()>();
if v == null goto label;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.Object getImplementationConfiguration()>();
v = v instanceof java.util.Map;
if v == 0 goto label;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration chaiConfig>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.Object getImplementationConfiguration()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v instanceof java.lang.String;
if v == 0 goto label;
v = v instanceof java.lang.String;
if v == 0 goto label;
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.KeyManagementException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.KeyManagementException from label to label with label;
}
private java.util.Map parseAttributeValues(javax.naming.NamingEnumeration, boolean) throws javax.naming.NamingException
{
java.util.HashMap v;
java.util.ArrayList v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.util.List v;
java.util.Map v;
javax.naming.NamingEnumeration v, v;
java.lang.Object v, v;
java.lang.String v, v;
boolean v, v, v, v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: javax.naming.NamingEnumeration;
v := @parameter: boolean;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
if v == null goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMore()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMore()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object next()>();
v = interfaceinvoke v.<javax.naming.directory.Attribute: java.lang.String getID()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<javax.naming.directory.Attribute: javax.naming.NamingEnumeration getAll()>();
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMore()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
if v != 0 goto label;
interfaceinvoke v.<javax.naming.NamingEnumeration: void close()>();
label:
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
return v;
}
private boolean supportsSearchResultPaging() throws com.novell.ldapchai.exception.ChaiUnavailableException, com.novell.ldapchai.exception.ChaiOperationException
{
com.novell.ldapchai.provider.ChaiConfiguration v;
java.util.Set v;
com.novell.ldapchai.ChaiEntry v;
com.novell.ldapchai.provider.ChaiSetting v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.Boolean v, v, v;
java.lang.String v, v;
boolean v, v, v, v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.provider.ChaiConfiguration getChaiConfiguration()>();
v = <com.novell.ldapchai.provider.ChaiSetting: com.novell.ldapchai.provider.ChaiSetting LDAP_SEARCH_PAGING_ENABLE>;
v = virtualinvoke v.<com.novell.ldapchai.provider.ChaiConfiguration: java.lang.String getSetting(com.novell.ldapchai.provider.ChaiSetting)>(v);
v = "auto";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.Boolean cachedPagingEnableSupport>;
if v != null goto label;
v = staticinvoke <com.novell.ldapchai.util.ChaiUtility: com.novell.ldapchai.ChaiEntry getRootDSE(com.novell.ldapchai.provider.ChaiProvider)>(v);
v = interfaceinvoke v.<com.novell.ldapchai.ChaiEntry: java.util.Set readMultiStringAttribute(java.lang.String)>("supportedControl");
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>("1.2.840.113556.1.4.319");
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v.<com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.Boolean cachedPagingEnableSupport> = v;
label:
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: java.lang.Boolean cachedPagingEnableSupport>;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
label:
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
return v;
}
private javax.naming.ldap.LdapContext getLdapConnection() throws com.novell.ldapchai.exception.ChaiUnavailableException
{
javax.naming.NamingException v;
com.novell.ldapchai.exception.ChaiError v;
javax.net.SocketFactory v, v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
com.novell.ldapchai.exception.ChaiUnavailableException v;
java.lang.String v, v;
javax.naming.ldap.LdapContext v, v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
label:
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.net.SocketFactory socketFactory>;
if v == null goto label;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.net.SocketFactory socketFactory>;
staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$ThreadLocalSocketFactory: void set(javax.net.SocketFactory)>(v);
label:
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection>;
v = interfaceinvoke v.<javax.naming.ldap.LdapContext: javax.naming.ldap.LdapContext newInstance(javax.naming.ldap.Control[])>(null);
label:
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<javax.naming.NamingException: java.lang.String getMessage()>();
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[])>("error creating new jndiConnection instance: \u0001");
v = new com.novell.ldapchai.exception.ChaiUnavailableException;
v = <com.novell.ldapchai.exception.ChaiError: com.novell.ldapchai.exception.ChaiError CHAI_INTERNAL_ERROR>;
specialinvoke v.<com.novell.ldapchai.exception.ChaiUnavailableException: void <init>(java.lang.String,com.novell.ldapchai.exception.ChaiError,java.lang.Throwable)>(v, v, v);
throw v;
catch javax.naming.NamingException from label to label with label;
}
private com.novell.ldapchai.exception.ChaiOperationException convertNamingException(javax.naming.NamingException) throws com.novell.ldapchai.exception.ChaiUnavailableException
{
java.lang.Throwable v;
javax.naming.NamingException v;
int v;
java.lang.String v, v, v, v, v, v, v, v;
com.novell.ldapchai.exception.ChaiOperationException v;
boolean v;
com.novell.ldapchai.exception.ChaiError v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
com.novell.ldapchai.exception.ChaiUnavailableException v;
java.lang.Class v, v;
java.lang.StringBuilder v, v, v, v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: javax.naming.NamingException;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<javax.naming.NamingException: java.lang.String getMessage()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(": ");
v = virtualinvoke v.<javax.naming.NamingException: java.lang.String getMessage()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = virtualinvoke v.<javax.naming.NamingException: java.lang.Throwable getCause()>();
v = 0;
label:
if v == null goto label;
if v >= 10 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", cause:");
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(": ");
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.lang.Throwable: java.lang.Throwable getCause()>();
goto label;
label:
v = virtualinvoke v.<com.novell.ldapchai.provider.JNDIProviderImpl: boolean errorIsRetryable(java.lang.Exception)>(v);
if v == 0 goto label;
v = new com.novell.ldapchai.exception.ChaiUnavailableException;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = <com.novell.ldapchai.exception.ChaiError: com.novell.ldapchai.exception.ChaiError COMMUNICATION>;
specialinvoke v.<com.novell.ldapchai.exception.ChaiUnavailableException: void <init>(java.lang.String,com.novell.ldapchai.exception.ChaiError,boolean,boolean,java.lang.Throwable)>(v, v, 0, 0, v);
throw v;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = staticinvoke <com.novell.ldapchai.exception.ChaiOperationException: com.novell.ldapchai.exception.ChaiOperationException forErrorMessage(java.lang.String,java.lang.Throwable)>(v, v);
return v;
}
public boolean errorIsRetryable(java.lang.Exception)
{
java.util.function.Supplier v;
java.lang.Exception v;
com.novell.ldapchai.provider.JNDIProviderImpl v;
java.lang.String v, v;
boolean v, v, v, v, v, v;
com.novell.ldapchai.util.internal.ChaiLogger v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v := @parameter: java.lang.Exception;
v = v instanceof javax.naming.CommunicationException;
if v != 0 goto label;
v = v instanceof javax.naming.ServiceUnavailableException;
if v == 0 goto label;
label:
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("unrecognized extended operation");
if v != 0 goto label;
return 1;
label:
v = v instanceof java.lang.InterruptedException;
if v != 0 goto label;
v = v instanceof javax.naming.InterruptedNamingException;
if v == 0 goto label;
label:
v = <com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER>;
v = staticinvoke <com.novell.ldapchai.provider.JNDIProviderImpl$lambda_errorIsRetryable_7__157: java.util.function.Supplier bootstrap$(java.lang.Exception)>(v);
virtualinvoke v.<com.novell.ldapchai.util.internal.ChaiLogger: void trace(java.util.function.Supplier)>(v);
return 1;
label:
v = specialinvoke v.<com.novell.ldapchai.provider.AbstractProvider: boolean errorIsRetryable(java.lang.Exception)>(v);
return v;
}
public boolean isConnected()
{
com.novell.ldapchai.provider.JNDIProviderImpl v;
javax.naming.ldap.LdapContext v;
boolean v;
v := @this: com.novell.ldapchai.provider.JNDIProviderImpl;
v = v.<com.novell.ldapchai.provider.JNDIProviderImpl: javax.naming.ldap.LdapContext jndiConnection>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected static java.lang.String removeJndiEscapes(java.lang.String)
{
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^\".*/.*\"$");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("^\"|\"$", "");
return v;
label:
return v;
}
protected static java.lang.String addJndiEscape(java.lang.String)
{
java.lang.String v, v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("/", "\\\\2f");
return v;
}
protected static javax.naming.ldap.BasicControl[] convertControls(com.novell.ldapchai.ChaiRequestControl[])
{
byte[] v;
com.novell.ldapchai.ChaiRequestControl v, v, v;
javax.naming.ldap.BasicControl[] v;
int v, v, v;
com.novell.ldapchai.ChaiRequestControl[] v;
java.lang.String v;
javax.naming.ldap.BasicControl v;
boolean v;
v := @parameter: com.novell.ldapchai.ChaiRequestControl[];
if v != null goto label;
return null;
label:
v = lengthof v;
v = newarray (javax.naming.ldap.BasicControl)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = new javax.naming.ldap.BasicControl;
v = v[v];
v = virtualinvoke v.<com.novell.ldapchai.ChaiRequestControl: java.lang.String getId()>();
v = v[v];
v = virtualinvoke v.<com.novell.ldapchai.ChaiRequestControl: boolean isCritical()>();
v = v[v];
v = virtualinvoke v.<com.novell.ldapchai.ChaiRequestControl: byte[] getValue()>();
specialinvoke v.<javax.naming.ldap.BasicControl: void <init>(java.lang.String,boolean,byte[])>(v, v, v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
static void <clinit>()
{
com.novell.ldapchai.util.internal.ChaiLogger v;
v = staticinvoke <com.novell.ldapchai.util.internal.ChaiLogger: com.novell.ldapchai.util.internal.ChaiLogger getLogger(java.lang.Class)>(class "Lcom/novell/ldapchai/provider/JNDIProviderImpl;");
<com.novell.ldapchai.provider.JNDIProviderImpl: com.novell.ldapchai.util.internal.ChaiLogger LOGGER> = v;
return;
}
}