public String executeSynchronousRequest(String url, Map<String, String> parameters) { final ExecutionHandler executionHandler= ServiceLocator.getInstance().getConfigurator().getExecutionHandler(); if (executionHandler.canSuspend()) { final String[] resultArray= new String[] { "" }; AsyncCallback<String> asyncCallbackToContinue= new AsyncCallback<String>() { public void onSuccess(String result) { resultArray[0]= result; executionHandler.continueExecution(); } public void onError() { throw new RuntimeException("Error in async call"); } }; AsyncCallback<String> wrappedCallback= wrapCallback(Serializable.class, asyncCallbackToContinue); executeHttpRequest(true, url, parameters, wrappedCallback, false, useGetMethod); executionHandler.suspendExecution(); return resultArray[0]; } else return executeHttpRequest(false, url, parameters, null, false, useGetMethod); }