Would you mind filing a Jira issue with your spec?   Just to clear the IP.

thanks,
alex


On Mon, Mar 15, 2010 at 10:20 AM, Alex Boisvert <[email protected]>wrote:

> Wheeep!  Yes, it's an issue.  I'll fix it right away.
>
> alex
>
>
>
> On Mon, Mar 15, 2010 at 10:10 AM, Pepijn Van Eeckhoudt <
> [email protected]> wrote:
>
>> I'm bumping into unpredictable behaviour related to the call chain
>> handling. It seems invoke_with_call_chain doesn't restore the call chain
>> correctly after calling invoke. Since this is in the core of buildr I wanted
>> to just check with you guys before creating an issue in jira.
>>
>> invoke_with_call_chain currently does
>> begin
>>  old_chain, Thread.current[:rake_chain] = Thread.current[:rake_chain],
>> new_chain
>>  execute(task_args) if needed?
>> ensure
>>  Thread.current[:rake_chain] = nil
>> end
>>
>> The ensure block seems obviously incorrect. Shouldn't this be
>> Thread.current[:rake_chain] = old_chain?
>>
>> The following spec shows when this causes things to go wrong:
>> describe Buildr do
>>  it 'should restore call chain when invoke is called' do
>>    task1 = Rake::Task.define_task('task1') do
>>    end
>>
>>    task2 = Rake::Task.define_task('task2') do
>>      chain1 = Thread.current[:rake_chain]
>>      task1.invoke
>>      chain2 = Thread.current[:rake_chain]
>>      chain2.should == chain1
>>    end
>>
>>    task2.invoke
>>  end
>> end
>>
>> So is this an issue or intentional?
>>
>> Regards,
>>
>> Pepijn
>>
>
>

Reply via email to