Need a Second Pair of Eyes

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Need a Second Pair of Eyes

Stefan Bodewig
Hi all

I'm currently reviewing the big change that introduced the regression in
1.10.2 as we may have overlooked more than this issue. It is a *big*
change and so it is taking time.

While looking at the hunk starting at

https://github.com/apache/ant/commit/b7d1e9bde44cb8e5233d6e70bb96e14cbb2f3e2d#diff-3cabe19d89e908d993d999100d888b6eL256

I think the buildup of the path is now backwards.

The original code would add all elements of dependClasspath to the path
that are not members of destPath to the new Path p. Unless I am mistaken
the Difference created in the new code will in addition retain all
elements of destPath that are not in dependClasspath. So we get all
elements that are in exactly one of the two - which is more than we
would have with the old code unless destPath is a subset of
dependClasspath.

Does anybody else read it the same way? Or can tell me I'm wrong?

Unfortunately our test coverage for the depend task is so close to
non-existent that we can't tell from the tests whether we've broken
anything.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Need a Second Pair of Eyes

Jaikiran Pai
Hi Stefan,

You are right. The change introduces a different behaviour than what was
there before. Just to be extra sure that we indeed are reading it right,
I added a (dummy) test case in my personal repo, which compares the
previous logic and the new logic and it does shows that the change
indeed introduces a different behaviour.

[1]
https://github.com/jaikiran/ant/commit/f57b9d5fbca6e9648695bc9d37a27000c0b4aff2#diff-585ed59cf64ef6930e5148094adc322aR21

-Jaikiran


On 13/02/18 11:20 PM, Stefan Bodewig wrote:

> Hi all
>
> I'm currently reviewing the big change that introduced the regression in
> 1.10.2 as we may have overlooked more than this issue. It is a *big*
> change and so it is taking time.
>
> While looking at the hunk starting at
>
> https://github.com/apache/ant/commit/b7d1e9bde44cb8e5233d6e70bb96e14cbb2f3e2d#diff-3cabe19d89e908d993d999100d888b6eL256
>
> I think the buildup of the path is now backwards.
>
> The original code would add all elements of dependClasspath to the path
> that are not members of destPath to the new Path p. Unless I am mistaken
> the Difference created in the new code will in addition retain all
> elements of destPath that are not in dependClasspath. So we get all
> elements that are in exactly one of the two - which is more than we
> would have with the old code unless destPath is a subset of
> dependClasspath.
>
> Does anybody else read it the same way? Or can tell me I'm wrong?
>
> Unfortunately our test coverage for the depend task is so close to
> non-existent that we can't tell from the tests whether we've broken
> anything.
>
> Stefan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Need a Second Pair of Eyes

Jaikiran Pai
I forgot to add that, as you note, as a result of the change, the new
created path will retain all elements from destPath that aren't in
dependClassPath, which is unlike the behaviour before the change.

-Jaikiran


On 14/02/18 9:59 AM, Jaikiran Pai wrote:

> Hi Stefan,
>
> You are right. The change introduces a different behaviour than what
> was there before. Just to be extra sure that we indeed are reading it
> right, I added a (dummy) test case in my personal repo, which compares
> the previous logic and the new logic and it does shows that the change
> indeed introduces a different behaviour.
>
> [1]
> https://github.com/jaikiran/ant/commit/f57b9d5fbca6e9648695bc9d37a27000c0b4aff2#diff-585ed59cf64ef6930e5148094adc322aR21
>
> -Jaikiran
>
>
> On 13/02/18 11:20 PM, Stefan Bodewig wrote:
>> Hi all
>>
>> I'm currently reviewing the big change that introduced the regression in
>> 1.10.2 as we may have overlooked more than this issue. It is a *big*
>> change and so it is taking time.
>>
>> While looking at the hunk starting at
>>
>> https://github.com/apache/ant/commit/b7d1e9bde44cb8e5233d6e70bb96e14cbb2f3e2d#diff-3cabe19d89e908d993d999100d888b6eL256 
>>
>>
>> I think the buildup of the path is now backwards.
>>
>> The original code would add all elements of dependClasspath to the path
>> that are not members of destPath to the new Path p. Unless I am mistaken
>> the Difference created in the new code will in addition retain all
>> elements of destPath that are not in dependClasspath. So we get all
>> elements that are in exactly one of the two - which is more than we
>> would have with the old code unless destPath is a subset of
>> dependClasspath.
>>
>> Does anybody else read it the same way? Or can tell me I'm wrong?
>>
>> Unfortunately our test coverage for the depend task is so close to
>> non-existent that we can't tell from the tests whether we've broken
>> anything.
>>
>> Stefan
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Need a Second Pair of Eyes

Stefan Bodewig
In reply to this post by Jaikiran Pai
On 2018-02-14, Jaikiran Pai wrote:

> You are right. The change introduces a different behaviour than what
> was there before. Just to be extra sure that we indeed are reading it
> right, I added a (dummy) test case in my personal repo, which compares
> the previous logic and the new logic and it does shows that the change
> indeed introduces a different behaviour.

> [1]
> https://github.com/jaikiran/ant/commit/f57b9d5fbca6e9648695bc9d37a27000c0b4aff2#diff-585ed59cf64ef6930e5148094adc322aR21

Many thanks, Jaikiran, so I'm going to revert that hunk.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Need a Second Pair of Eyes

Stefan Bodewig
On 2018-02-14, Stefan Bodewig wrote:

> On 2018-02-14, Jaikiran Pai wrote:

>> You are right. The change introduces a different behaviour than what
>> was there before. Just to be extra sure that we indeed are reading it
>> right, I added a (dummy) test case in my personal repo, which compares
>> the previous logic and the new logic and it does shows that the change
>> indeed introduces a different behaviour.

>> [1]
>> https://github.com/jaikiran/ant/commit/f57b9d5fbca6e9648695bc9d37a27000c0b4aff2#diff-585ed59cf64ef6930e5148094adc322aR21

> Many thanks, Jaikiran, so I'm going to revert that hunk.

I've used a third approach in commit 1fbf712 and checked it in a way
similar to your test.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]