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]
