Michael Kublin has uploaded a new change for review. Change subject: engine: Correlation id was not send to host - fixing it ......................................................................
engine: Correlation id was not send to host - fixing it The following patch should fix a bug with correlation id, which was not send to vdsm In order to send it a correlation id should be kept inside internal callable Change-Id: I45867ee8aea7a69ab9025a2ab2301d7cb9d74663 Bug-Url: https://bugzilla.redhat.com/?????? Signed-off-by: Michael Kublin <mkub...@redhat.com> --- M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcUtils.java 1 file changed, 37 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/71/12971/1 diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcUtils.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcUtils.java index 6a8c698..a45143e 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcUtils.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcUtils.java @@ -169,11 +169,19 @@ FutureTask<Object> future; FutureCall annotation = m.getAnnotation(FutureCall.class); if (annotation != null) { - future = new FutureTask<Object>(createCallable(getMethod(m, annotation, proxy), args)); + future = + new FutureTask<Object>(createCallable(obj, + getMethod(m, annotation, proxy), + args, + ThreadLocalParamsContainer.getCorrelationId())); ThreadPoolUtil.execute(future); return future; } else { - future = new FutureTask<Object>(createCallable(m, args)); + future = + new FutureTask<Object>(createCallable(obj, + m, + args, + ThreadLocalParamsContainer.getCorrelationId())); ThreadPoolUtil.execute(future); try { result = future.get(timeoutInMilisec, TimeUnit.MILLISECONDS); @@ -196,17 +204,34 @@ return m; } - private Callable<Object> createCallable(final Method m, final Object[] args) { - return new Callable<Object>() { - @Override - public Object call() throws Exception { - try { - return m.invoke(obj, args); - } catch (Exception e) { - throw e; - } + private Callable<Object> createCallable(Object obj, Method m, Object[] args, String correlationId) { + return new InternalCallable(obj, m, args, correlationId); + } + + private final class InternalCallable implements Callable<Object> { + + private Object obj; + private Method m; + private Object[] args; + private String correlationId; + + public InternalCallable(Object obj, Method m, Object[] args, String correlationId) { + this.obj = obj; + this.m = m; + this.args = args; + this.correlationId = correlationId; + } + + @Override + public Object call() throws Exception { + try { + ThreadLocalParamsContainer.setCorrelationId(correlationId); + return m.invoke(obj, args); + } catch (Exception e) { + throw e; } - }; + } + } } -- To view, visit http://gerrit.ovirt.org/12971 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I45867ee8aea7a69ab9025a2ab2301d7cb9d74663 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Michael Kublin <mkub...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches