@Override
public void evaluateSync(String expression, Map<String, ? extends JsValue> additionalContext,
EvaluateCallback evaluateCallback)
throws MethodIsBlockingException {
CallbackSemaphore callbackSemaphore = new CallbackSemaphore();
RelayOk relayOk =
evaluateAsync(expression, additionalContext, evaluateCallback, callbackSemaphore);
boolean res = callbackSemaphore.tryAcquireDefault(relayOk);
if (!res) {
evaluateCallback.failure(new Exception("Timeout"));
}