sharanggupta commented on PR #1812:
URL: https://github.com/apache/commons-lang/pull/1812#issuecomment-6048268921

   Thanks @garydgregory. I went through Copilot's remaining findings and pushed 
2f443bf:
   
   - cycle detection in `containsTypeVariables` now uses an identity-based set, 
so it never calls `hashCode()` of a custom owner type;
   - `unrollVariables` leaves a parameterized type with a cyclic owner chain 
unchanged and tracks the parameterized and wildcard types it is unrolling by 
identity, so a cycle through owners, type arguments or wildcard bounds cannot 
overflow the stack;
   - five new tests cover self-owned types (including one with a structural 
`hashCode()`), an owner chain that leads back to the start from either type, 
and a cycle through a type argument; they fail with a `StackOverflowError` 
before this change.
   
   Because I cannot request Copilot reviews myself, I had the diff reviewed 
adversarially against a sweep of about 29,000 JDK generic types: no new 
exceptions, and every changed result is more resolved than before. The default 
`mvn` build with `-Ddoclint=all` passes locally on JDK 8, 17, 21 and 25. Could 
you approve the workflow run for the new commit?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to