curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Wallace (JIRA)" <j...@apache.org>
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
                 URL: https://issues.apache.org/jira/browse/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:
{code:java}
BackgroundCallback myCallback = ...;
Executor myExecutor = ...;
String myZkPath = ...;
CuratorFramework myCurator = ...;
curator.sync()
  .inBackground(myCallback, myExecutor)
  .forPath(myZkPath);
{code}

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
{code:java}
public Pathable inBackground(BackgroundCallback callback, Executor executor) {
  backgrounding = new Backgrounding(callback, executor);
  return this;
}
{code}
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,
Executor)}}


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

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
(v6.3.4#6332)

Mime
View raw message