curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Wallace (JIRA)" <>
Subject [jira] [Created] (CURATOR-271) Curator does not run sync callback on supplied Executor
Date Tue, 13 Oct 2015 20:15:06 GMT
Glen Wallace created CURATOR-271:

             Summary: Curator does not run sync callback on supplied Executor
                 Key: CURATOR-271
             Project: Apache Curator
          Issue Type: Bug
          Components: Framework
            Reporter: Glen Wallace

It appears that Apache Curator does not execute the sync callback on the supplied Executor
in at least one case.

This issue described is currently (2015-10-14) present in master

Sample code outline:
BackgroundCallback myCallback = ...;
Executor myExecutor = ...;
String myZkPath = ...;
CuratorFramework myCurator = ...;
  .inBackground(myCallback, myExecutor)

This should execute {{myCallback}} on the {{myExecutor}} executor, it does not and instead
executes {{myCallback}} on what is presumeably a ZooKeeper thread.

Looking at the {{org.apache.curator.framework.imps.SyncBuilderImpl}} code we have
public Pathable inBackground(BackgroundCallback callback, Executor executor) {
  backgrounding = new Backgrounding(callback, executor);
  return this;
However the only matching constructor in {{org.apache.curator.framework.imps.Backgrounding}}
is {{Backgrounding(BackgroundCallback callback, Object context)}}

It seems that {{SyncBuilderImpl#inBackground(BackgroundCallback,Executor)}} should be using
the following Backgrounding constructor {{Backgrounding(CuratorFrameworkImpl, BackgroundCallback,

A workaround looks to be using the following method and passing a null context object:
  public Pathable inBackground(BackgroundCallback callback, Object context, Executor executor)

A very quick skim suggests that it is only {{SyncBuilderImpl}} that has the issue the other
{{org.apache.curator.framework.imps.*BuilderImpl}} classes seem to be fine.

This message was sent by Atlassian JIRA

View raw message