curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CURATOR-271) Curator does not run sync callback on supplied Executor
Date Thu, 15 Oct 2015 02:24:06 GMT

    [ https://issues.apache.org/jira/browse/CURATOR-271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14958194#comment-14958194
] 

ASF GitHub Bot commented on CURATOR-271:
----------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/curator/pull/114


> 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
>
> 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