java.io.IOException: Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant

hello , i'm trying to create a plugin for openEdge form SonarQube API ,
its' work well .
I have programmes written in progress 4gl , for that i had created an AppServer using the Openedge explorer to put my programmes.p (progress 4gl ) in it .
i have a code to run programmes in progress openEdge using java

import java.io.IOException;
import java.util.concurrent.TimeUnit;

import javax.annotation.PostConstruct;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import com.progress.open4gl.ConnectException;
import com.progress.open4gl.Open4GLException;
import com.progress.open4gl.javaproxy.OpenAppObject;
import com.progress.open4gl.javaproxy.OpenProcObject;


/**
 * La class OpenEdgeAPSConnector.
 *
 * @author Torjmen
 */
@Component
@Scope("singleton")
public class OpenEdgeAPSConnector {

    /** La constante LOGGER. */
    private static final Logger LOGGER = LoggerFactory.getLogger(OpenEdgeAPSConnector.class);

    /** La constante CLOSE_CONNECTION_ERROR_MSG. */
    private static final String CLOSE_CONNECTION_ERROR_MSG = "Erreur lors de la cloture de la connexion AppServer";

    /** L'attribut message service. */
    @Autowired

    /** L'attribut app server connect max retries. */
    @Value("${AppServerConnectMaxRetries}")
    private String appServerConnectMaxRetries;

    /** L'attribut app server connect idle retry. */
    @Value("${AppServerConnectIdleRetry}")
    private String appServerConnectIdleRetry;

    /** L'attribut aps connect max retry. */
    private static int APS_CONNECT_MAX_RETRY = 5;

    /** L'attribut aps connect idle retry. */
    private static int APS_CONNECT_IDLE_RETRY = 1;

    /**
     * Init.
     */
    @PostConstruct
    private void init() {
        try {
            APS_CONNECT_MAX_RETRY = Integer.parseInt(appServerConnectMaxRetries);
            APS_CONNECT_IDLE_RETRY = Integer.parseInt(appServerConnectIdleRetry);
        } catch (Exception e) {
            if (LOGGER.isErrorEnabled()) {
                LOGGER.error("Impossible d'initialiser le connector APS", e);
            }

        }
    }

    /**
     * OAO factory.
     *
     * @param apsUrl
     *            un aps url
     * @return le open app object
     * @throws IOException
     *             Signals that an I/O exception has occurred.
     * @throws InterruptedException
     *             une exception interrupted exception
     * @throws Open4GLException
     *             une exception open 4 GL exception
     */
    private static OpenAppObject OAOFactory(String apsUrl) throws IOException, InterruptedException, Open4GLException {
        int i = APS_CONNECT_MAX_RETRY;
        boolean isRetryAgain = true;
        OpenAppObject oao = null;
        while (isRetryAgain) {
            try {
                oao = new OpenAppObject(apsUrl, "", "", "", "");
                isRetryAgain = false;
            } catch (ConnectException e) {
                if (i == 0) {
                    isRetryAgain = false;
                    throw e;
                }
                isRetryAgain = true;
                i--;
                TimeUnit.SECONDS.sleep(APS_CONNECT_IDLE_RETRY);
            }
        }
        return oao;
    }

    /**
     * Retourne l'attribut open app object instance.
     *
     * @param apsUrl
     *            un aps url
     * @return l'attribut open app object instance
     * @throws NlwFunctionalException
     *             une exception nlw functional exception
     * @throws IOException
     *             Signals that an I/O exception has occurred.
     * @throws InterruptedException
     *             une exception interrupted exception
     * @throws Open4GLException
     *             une exception open 4 GL exception
     */
    public static OpenAppObject getOpenAppObjectInstance(String apsUrl) throws   IOException, InterruptedException, Open4GLException {
        if ("".equalsIgnoreCase(apsUrl)) {
        }
        return OAOFactory(apsUrl);
    }

    /**
     * Progress clean up.
     *
     * @param oao
     *            un oao
     */
    public static void progressCleanUp(OpenAppObject oao) {
        progressCleanUp(oao, null);
    }

    /**
     * Progress clean up.
     *
     * @param oao
     *            un oao
     * @param opo
     *            un opo
     */
    public static void progressCleanUp(OpenAppObject oao, OpenProcObject opo) {
        try {
            if (opo != null) {
                opo._cancelAllRequests();
                opo._release();
            }
        } catch (Open4GLException e) {
            oaoCleanup(oao);
        } finally {
            oaoCleanup(oao);
        }
    }

    /**
     * Oao cleanup.
     *
     * @param oao
     *            un oao
     */
    private static void oaoCleanup(OpenAppObject oao) {
        if (oao != null) {
            try {
                oao._cancelAllRequests();
                oao._release();
            } catch (Open4GLException e) {
                if (LOGGER.isErrorEnabled()) {
                    LOGGER.error(CLOSE_CONNECTION_ERROR_MSG, e);
                }
            }
        }
    }

}

the problem is wan i strated the sonar server i get this msg

java.io.IOException: Une connexion existante a d¹ Ûtre fermÚe par lÆh¶te distant