[ 
https://issues.apache.org/jira/browse/DIRSERVER-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15733165#comment-15733165
 ] 

Emmanuel Lecharny commented on DIRSERVER-2172:
----------------------------------------------

Can you try again, after having replaced the {{apacheds.sh}} content with :

{noformat}
#! /bin/sh
#
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#

# Shell script to start/stop ApacheDS
# If you want to change ApacheDS service settings please modify the 
wrapper.conf 
# file for the instance you wish to change.
# chkconfig: 2345 91 35
# description: This script starts and stops ApacheDS
#

INSTANCE="$2"

INSTALLATION_DIRECTORY="@installation.directory@"
INSTANCES_DIRECTORY="@instances.directory@"
INSTANCE_DIRECTORY="$INSTANCES_DIRECTORY/$INSTANCE"

# Application
APP_NAME="apacheds"
APP_LONG_NAME="ApacheDS - $INSTANCE"

# Wrapper
WRAPPER_CMD="$INSTALLATION_DIRECTORY/bin/wrapper"
WRAPPER_CONF="$INSTANCE_DIRECTORY/conf/wrapper-instance.conf"

# Priority at which to run the wrapper.  See "man nice" for valid priorities.
#  nice is only used if a priority is specified.
PRIORITY=

# Location of the pid file.
PIDDIR=$INSTANCE_DIRECTORY/run

# If uncommented, causes the Wrapper to be shutdown using an anchor file.
#  When launched with the 'start' command, it will also ignore all INT and
#  TERM signals.
#IGNORE_SIGNALS=true

# If specified, the Wrapper will be run as the specified user and group.
# IMPORTANT - Make sure that the user has the required privileges to write
#  the PID file and wrapper.log files.  Failure to be able to write the log
#  file will cause the Wrapper to exit without any way to write out an error
#  message.
# NOTE - This will set the user which is used to run the Wrapper as well as
#  the JVM and is not useful in situations where a privileged resource or
#  port needs to be allocated prior to the user being changed.
RUN_AS_USER="@user@"
RUN_AS_GROUP="@group@"

# Do not modify anything beyond this point
#-----------------------------------------------------------------------------

# Get the fully qualified path to the script
case $0 in 
    /*) 
        SCRIPT="$0" 
        ;; 
   ./*) 
        SCRIPT="`pwd`/`echo $0 | sed -e 's/^[ ]*\.\///'`" 
        ;; 
     *) 
        SCRIPT="`pwd`/`echo $0 | sed -e 's/^[ ]*//'`" 
        ;; 
esac 

# Resolve the true real path without any sym links.
CHANGED=true
while [ "X$CHANGED" != "X" ]
do
    # Change spaces to ":" so the tokens can be parsed.
    SAFESCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
    # Get the real path to this script, resolving any symbolic links
    TOKENS=`echo $SAFESCRIPT | sed -e 's;/; ;g'`
    REALPATH=
    for C in $TOKENS; do
        # Change any ":" in the token back to a space.
        C=`echo $C | sed -e 's;:; ;g'`
        REALPATH="$REALPATH/$C"
        # If REALPATH is a sym link, resolve it.  Loop for nested links.
        while [ -h "$REALPATH" ] ; do
            LS="`ls -ld "$REALPATH"`"
            LINK="`expr "$LS" : '.*-> \(.*\)$'`"
            if expr "$LINK" : '/.*' > /dev/null; then
                # LINK is absolute.
                REALPATH="$LINK"
            else
                # LINK is relative.
                REALPATH="`dirname "$REALPATH"`""/$LINK"
            fi
        done
    done

    if [ "$REALPATH" = "$SCRIPT" ]
    then
        CHANGED=""
    else
        SCRIPT="$REALPATH"
    fi
done

# Change the current directory to the location of the script
cd "`dirname "$REALPATH"`"
REALDIR=`pwd`

# If the PIDDIR is relative, set its value relative to the full REALPATH to 
avoid problems if
#  the working directory is later changed.
FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
if [ "$FIRST_CHAR" != "/" ]
then
    PIDDIR=$REALDIR/$PIDDIR
fi
# Same test for WRAPPER_CMD
FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1`
if [ "$FIRST_CHAR" != "/" ]
then
    WRAPPER_CMD=$REALDIR/$WRAPPER_CMD
fi
# Same test for WRAPPER_CONF
FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1`
if [ "$FIRST_CHAR" != "/" ]
then
    WRAPPER_CONF=$REALDIR/$WRAPPER_CONF
fi

# Process ID
ANCHORFILE="$PIDDIR/$INSTANCE.anchor"
PIDFILE="$PIDDIR/$APP_NAME-$INSTANCE.pid"
LOCKDIR="/var/lock/subsys"
LOCKFILE="$LOCKDIR/$INSTANCE"
pid=""

# Resolve the location of the 'ps' command
PSEXE="/usr/bin/ps"
if [ ! -x "$PSEXE" ]
then
    PSEXE="/bin/ps"
    if [ ! -x "$PSEXE" ]
    then
        echo "Unable to locate 'ps'."
        echo "Please report this message along with the location of the command 
on your system."
        exit 1
    fi
fi

# Resolve the os
DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
case "$DIST_OS" in
    'sunos')
        DIST_OS="solaris"
        ;;
    'hp-ux' | 'hp-ux64')
        DIST_OS="hpux"
        ;;
    'darwin')
        DIST_OS="macosx"
        ;;
    'unix_sv')
        DIST_OS="unixware"
        ;;
esac

# Resolve the architecture
DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
if [ "$DIST_ARCH" = "unknown" ]
then
    DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
fi
case "$DIST_ARCH" in
    'amd64' | 'athlon' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 
'x86_64')
        DIST_ARCH="x86"
        ;;
    'ip27')
        DIST_ARCH="mips"
        ;;
    'power' | 'powerpc' | 'power_pc' | 'ppc64')
        DIST_ARCH="ppc"
        ;;
    'pa_risc' | 'pa-risc')
        DIST_ARCH="parisc"
        ;;
    'sun4u' | 'sparcv9')
        DIST_ARCH="sparc"
        ;;
    '9000/800')
        DIST_ARCH="parisc"
        ;;
esac

outputFile() {
    if [ -f "$1" ]
    then
        echo "  $1 (Found but not executable.)";
    else
        echo "  $1"
    fi
}

# Build the nice clause
if [ "X$PRIORITY" = "X" ]
then
    CMDNICE=""
else
    CMDNICE="nice -$PRIORITY"
fi

# Build the anchor file clause.
if [ "X$IGNORE_SIGNALS" = "X" ]
then
   ANCHORPROP=
   IGNOREPROP=
else
   ANCHORPROP=wrapper.anchorfile=\"$ANCHORFILE\"
   IGNOREPROP=wrapper.ignore_signals=TRUE
fi

# Build the lock file clause.  Only create a lock file if the lock directory 
exists on this platform.
LOCKPROP=
if [ -d $LOCKDIR ]
then
    if [ -w $LOCKDIR ]
    then
        LOCKPROP=wrapper.lockfile=\"$LOCKFILE\"
    fi
fi

checkUser() {
    # $1 touchLock flag
    # $2 command
    # $3 instance

    # Check the configured user.  If necessary rerun this script as the desired 
user.
    if [ "X$RUN_AS_USER" != "X" ]
    then
        # Resolve the location of the 'id' command
        IDEXE="/usr/xpg4/bin/id"
        if [ ! -x "$IDEXE" ]
        then
            IDEXE="/usr/bin/id"
            if [ ! -x "$IDEXE" ]
            then
                IDEXE="/bin/id"
                if [ ! -x "$IDEXE" ]
                then
                    echo "Unable to locate 'id'."
                    echo "Please report this message along with the location of 
the command on your system."
                    exit 1
                fi
            fi
        fi

        if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
        then
            # Already running as the configured user.  Avoid password prompts 
by not calling su.
            RUN_AS_USER=""
        fi
    fi
    if [ "X$RUN_AS_USER" != "X" ]
    then
        # If LOCKPROP and $RUN_AS_USER are defined then the new user will most 
likely not be
        # able to create the lock file.  The Wrapper will be able to update 
this file once it
        # is created but will not be able to delete it on shutdown.  If $2 is 
defined then
        # the lock file should be created for the current command
        if [ "X$LOCKPROP" != "X" ]
        then
            if [ "X$1" != "X" ]
            then
                # Resolve the primary group 
                RUN_AS_GROUP=`groups $RUN_AS_GROUP| awk '{print $3}' | tail -1`
                if [ "X$RUN_AS_GROUP" = "X" ]
                then
                    RUN_AS_GROUP=$RUN_AS_USER
                fi
                touch $LOCKFILE
                chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
            fi
        fi

        # Still want to change users, recurse.  This means that the user will 
only be
        #  prompted for a password once. Variables shifted by 1
        su -m $RUN_AS_USER -c "\"$REALPATH\" $2 $3"
        ret=$?

        # Now that we are the original user again, we may need to clean up the 
lock file.
        if [ "X$LOCKPROP" != "X" ]
        then
            getpid
            if [ "X$pid" = "X" ]
            then
                # Wrapper is not running so make sure the lock file is deleted.
                if [ -f "$LOCKFILE" ]
                then
                    rm "$LOCKFILE"
                fi
            fi
        fi

        exit $ret
    fi
}

getpid() {
    if [ -f "$PIDFILE" ]
    then
        if [ -r "$PIDFILE" ]
        then
            pid=`cat "$PIDFILE"`
            if [ "X$pid" != "X" ]
            then
                # It is possible that 'a' process with the pid exists but that 
it is not the
                #  correct process.  This can happen in a number of cases, but 
the most
                #  common is during system startup after an unclean shutdown.
                # The ps statement below looks for the specific wrapper command 
running as
                #  the pid.  If it is not found then the pid file is considered 
to be stale.
                pidtest=`$PSEXE -p $pid -o args | grep "$WRAPPER_CMD" | tail -1`
                if [ "X$pidtest" = "X" ]
                then
                    # This is a stale pid file.
                    rm -f "$PIDFILE"
                    echo "Removed stale pid file: $PIDFILE"
                    pid=""
                fi
            fi
        else
            echo "Cannot read $PIDFILE."
            exit 1
        fi
    fi
}

testpid() {
    pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
    if [ "X$pid" = "X" ]
    then
        # Process is gone so remove the pid file.
        rm -f "$PIDFILE"
        pid=""
    fi
}

usage() {
    # Command parameter
    if [ "x$1" = "x" ]; 
    then
        echo "Please enter a command..."
    fi

    # Instance parameter
    if [ "x$2" = "x" ]; 
    then
        echo "Please enter an instance name..."
    fi
    
    echo "Usage: $0 <command> <instance name>"
    echo "  Available Commands: "
    echo "      console     - Run in interactive mode with log output to the 
console."
    echo "                    Press CTRL-C to stop."
    echo "      start       - Run the instance in the background"
    echo "      stop        - Stop the running instance"
    echo "      restart     - Restart the instance if it is already running,"
    echo "                    or start if it wasn't already running"
    echo "      status      - Display the status of the instance (running or 
stopped)"
    echo "      dump        - Request a JVM dump of the running process"
    echo "      repair      - Try to repair the database before starting the 
server"
}

console() {
    echo "Running $APP_LONG_NAME..."
    getpid
    if [ "X$pid" = "X" ]
    then
        # The string passed to eval must handles spaces in paths correctly.
        COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" 
set.INSTANCE_DIRECTORY=\"$INSTANCE_DIRECTORY\" set.INSTANCE=\"$INSTANCE\" 
wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP 
$LOCKPROP"
        eval $COMMAND_LINE
    else
        echo "$APP_LONG_NAME is already running."
        exit 1
    fi
}
 
start() {
    echo "Starting $APP_LONG_NAME..."
    getpid
     if [ "X$pid" = "X" ]
     then
         # The string passed to eval must handles spaces in paths correctly.
         COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" 
set.INSTANCE_DIRECTORY=\"$INSTANCE_DIRECTORY\" set.APACHEDS_COMMAND=\"start\" 
set.INSTANCE=\"$INSTANCE\" wrapper.syslog.ident=\"$APP_NAME\" 
wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP 
$LOCKPROP"
         eval $COMMAND_LINE
     else
         echo "$APP_LONG_NAME is already running."
         exit 1
     fi
}
 
repair() {
    echo "Repairing $APP_LONG_NAME..."
    getpid
     if [ "X$pid" = "X" ]
     then
         # The string passed to eval must handles spaces in paths correctly.
         COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" 
set.INSTANCE_DIRECTORY=\"$INSTANCE_DIRECTORY\" set.APACHEDS_COMMAND=\"repair\" 
set.INSTANCE=\"$INSTANCE\" wrapper.syslog.ident=\"$APP_NAME\" 
wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP 
$LOCKPROP"
         eval $COMMAND_LINE
     else
         echo "$APP_LONG_NAME is already running."
         exit 1
     fi
}
 
stopit() {
    echo "Stopping $APP_LONG_NAME..."
    getpid
    if [ "X$pid" = "X" ]
    then
        echo "$APP_LONG_NAME was not running."
    else
        if [ "X$IGNORE_SIGNALS" = "X" ]
        then
            # Running so try to stop it.
            kill $pid
            if [ $? -ne 0 ]
            then
                # An explanation for the failure should have been given
                echo "Unable to stop $APP_LONG_NAME."
                exit 1
            fi
        else
            rm -f "$ANCHORFILE"
            if [ -f "$ANCHORFILE" ]
            then
                # An explanation for the failure should have been given
                echo "Unable to stop $APP_LONG_NAME."
                exit 1
            fi
        fi

        # We can not predict how long it will take for the wrapper to
        #  actually stop as it depends on settings in apacheds.conf.
        #  Loop until it does.
        savepid=$pid
        CNT=0
        TOTCNT=0
        while [ "X$pid" != "X" ]
        do
            # Show a waiting message every 5 seconds.
            if [ "$CNT" -lt "5" ]
            then
                CNT=`expr $CNT + 1`
            else
                echo "Waiting for $APP_LONG_NAME to exit..."
                CNT=0
            fi
            TOTCNT=`expr $TOTCNT + 1`

            sleep 1

            testpid
        done

        pid=$savepid
        testpid
        if [ "X$pid" != "X" ]
        then
            echo "Failed to stop $APP_LONG_NAME."
            exit 1
        else
            echo "Stopped $APP_LONG_NAME."
        fi
    fi
}

status() {
    getpid
    if [ "X$pid" = "X" ]
    then
        echo "$APP_LONG_NAME is not running."
        exit 1
    else
        echo "$APP_LONG_NAME is running ($pid)."
        exit 0
    fi
}

dump() {
    echo "Dumping $APP_LONG_NAME..."
    getpid
    if [ "X$pid" = "X" ]
    then
        echo "$APP_LONG_NAME was not running."

    else
        kill -3 $pid

        if [ $? -ne 0 ]
        then
            echo "Failed to dump $APP_LONG_NAME."
            exit 1
        else
            echo "Dumped $APP_LONG_NAME."
        fi
    fi
}

list() {
  echo "Available instances..."
  for instance in $INSTANCES_DIRECTORY/* ; do
        echo "  " `basename $instance`;
  done
}

#
# Checking parameters
#

# Command parameter
if [ "x$1" = "x" ]; 
then
  usage $*
  exit 2
fi

APACHEDS_COMMAND=$1

# Instance parameter
if [ "x$2" = "x" ]; 
then
  usage $*
  exit 2
fi

case "$1" in

    'console')
        checkUser touchlock $1 $INSTANCE
        console
        ;;

    'start')
        checkUser touchlock $1 $INSTANCE
        start
        ;;

    'repair')
        checkUser touchlock $1 $INSTANCE
        stopit
        repair
        start
        ;;

    'stop')
        checkUser "" $1 $INSTANCE
        stopit
        ;;

    'restart')
        checkUser touchlock $1 $INSTANCE
        stopit
        start
        ;;

    'status')
        checkUser "" $1 $INSTANCE
        status
        ;;

    'dump')
        checkUser "" $1 $INSTANCE
        dump
        ;;
    'list')
        list
        ;;

    *)
        echo "Usage: $0 { console | start | stop | restart | status | dump | 
repair } <instance name>"
        exit 1
        ;;
esac

exit 0
{noformat}

(use {{/etc/init.d/apacheds-2.0.0_M23-default repair}})

> ApacheDS 2.0.0M12 in production, getting ERR_554 double get for block  block 
> 3,474
> ----------------------------------------------------------------------------------
>
>                 Key: DIRSERVER-2172
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-2172
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: ldap
>         Environment: GNU/Linux x86_64
>            Reporter: sourabh sihare
>            Priority: Critical
>         Attachments: wrapper.conf
>
>
> We have upgraded apacheds from 2.0.0-M23 assuming that will fix the issue 
> with data getting corrupt but we are still facing the same issue.The apacheds 
> server keeps running but data does not load fully from front end like 400 
> users instead of actual 3000+ users.
> -> As a workaround we take backup of partition daily and when the issue 
> occurs we replace the partition from backed-up partition and restart the 
> server.
> -> From apacheds.log we get below error trace-
> [16:13:21] DEBUG [org.apache.directory.server.OPERATION_LOG] - << 
> CompareOperation successful
> [16:13:21] DEBUG [org.apache.directory.server.OPERATION_TIME] - Compare 
> operation took 183000 ns
> [16:13:21] DEBUG [org.apache.directory.server.OPERATION_LOG] - >> 
> CompareOperation : CompareContext for Dn 'uid=GA1346,ou=users,o=sccm', oid : 
> <objectClass>, value :'groupOfNames'
> [16:13:21] DEBUG [org.apache.directory.server.OPERATION_LOG] - >> 
> LookupOperation : FilteringOperationContext for Dn 
> 'uid=GA1346,ou=users,o=sccm', +, *
> [16:13:21] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - 
> Unexpected exception forcing session to close: sending disconnect notice to 
> client.
> java.lang.Error: ERR_554 double get for block 3,474
>         at jdbm.recman.RecordFile.get(RecordFile.java:185)
>         at 
> jdbm.recman.PhysicalRowIdManager.allocNew(PhysicalRowIdManager.java:202)
>         at 
> jdbm.recman.PhysicalRowIdManager.alloc(PhysicalRowIdManager.java:177)
>         at 
> jdbm.recman.PhysicalRowIdManager.update(PhysicalRowIdManager.java:101)
>         at jdbm.recman.BaseRecordManager.update(BaseRecordManager.java:281)
>         at 
> jdbm.recman.CacheRecordManager$CacheListener.cacheObjectEvicted(CacheRecordManager.java:459)
>         at 
> jdbm.recman.CacheRecordManager$CacheListener.cacheObjectEvicted(CacheRecordManager.java:444)
>         at jdbm.helper.MRU.purgeEntry(MRU.java:310)
>         at jdbm.helper.MRU.put(MRU.java:128)
>         at jdbm.recman.CacheRecordManager.fetch(CacheRecordManager.java:268)
>         at jdbm.btree.BPage.loadBPage(BPage.java:949)
>         at jdbm.btree.BPage.find(BPage.java:280)
>         at jdbm.btree.BTree.find(BTree.java:413)
>         at 
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmTable.get(JdbmTable.java:343)
>         at 
> org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.fetch(AbstractBTreePartition.java:1274)
>         at 
> org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.lookup(AbstractBTreePartition.java:1202)
>         at 
> org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.lookup(DefaultPartitionNexus.java:464)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor$1.lookup(BaseInterceptor.java:161)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:483)
>         at 
> org.apache.directory.server.core.collective.CollectiveAttributeInterceptor.lookup(CollectiveAttributeInterceptor.java:143)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:483)
>         at 
> org.apache.directory.server.core.operational.OperationalAttributeInterceptor.lookup(OperationalAttributeInterceptor.java:329)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:483)
>         at 
> org.apache.directory.server.core.schema.SchemaInterceptor.lookup(SchemaInterceptor.java:1142)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:483)
>         at 
> org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor.lookup(DefaultAuthorizationInterceptor.java:231)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:483)
>         at 
> org.apache.directory.server.core.authz.AciAuthorizationInterceptor.lookup(AciAuthorizationInterceptor.java:779)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:483)
>         at 
> org.apache.directory.server.core.authn.AuthenticationInterceptor.lookup(AuthenticationInterceptor.java:852)
>         at 
> org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:483)
>         at 
> org.apache.directory.server.core.normalization.NormalizationInterceptor.lookup(NormalizationInterceptor.java:196)
>         at 
> org.apache.directory.server.core.DefaultOperationManager.lookup(DefaultOperationManager.java:775)
> at 
> org.apache.directory.server.core.shared.DefaultCoreSession.lookup(DefaultCoreSession.java:560)
>         at 
> org.apache.directory.server.core.DefaultOperationManager.getOriginalEntry(DefaultOperationManager.java:194)
>         at 
> org.apache.directory.server.core.DefaultOperationManager.compare(DefaultOperationManager.java:531)
>         at 
> org.apache.directory.server.core.shared.DefaultCoreSession.compare(DefaultCoreSession.java:885)
>         at 
> org.apache.directory.server.ldap.handlers.request.CompareRequestHandler.handle(CompareRequestHandler.java:52)
>         at 
> org.apache.directory.server.ldap.handlers.request.CompareRequestHandler.handle(CompareRequestHandler.java:38)
>         at 
> org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:207)
>         at 
> org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:56)
>         at 
> org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:243)
>         at 
> org.apache.directory.server.ldap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:216)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:854)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:943)
>         at 
> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74)
>         at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
>         at 
> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.runTask(UnorderedThreadPoolExecutor.java:476)
>         at 
> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThreadPoolExecutor.java:430)
>         at java.lang.Thread.run(Thread.java:745)
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to