[
https://issues.apache.org/jira/browse/CURATOR-271?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Cameron McKenzie updated CURATOR-271:
-------------------------------------
Fix Version/s: 3.0.1
> 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
> Assignee: Cameron McKenzie
> Fix For: 2.9.1, 3.0.1
>
>
> 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)