log.debug( "Exception occured during executing stored procedure:\n" + e.getMessage() + "\n" + e.getStackTrace() );
    private Object executeProcedure( ServerLdapContext ctx, String procedure, Class[] types, Object[] values ) throws NamingException    {        int lastDot = procedure.lastIndexOf( '.' );        String className = procedure.substring( 0, lastDot );        String methodName = procedure.substring( lastDot + 1 );        LdapClassLoader loader = new LdapClassLoader( ctx );                try        {            Class clazz = loader.loadClass( className );            Method proc = DirectoryClassUtils.getAssignmentCompatibleMethod( clazz, methodName, types );            return proc.invoke( null, values );        }        catch ( Exception e )        {            LdapNamingException lne = new LdapNamingException( ResultCodeEnum.OTHER );            lne.setRootCause( e );            throw lne;        }    }