Closed matf closed 1 year ago
Confirmed with a unit test, which occurs when the failures are retrieved for a lazily evaluated condition. 🤔
@Test
void lazyFailures() {
Validated<String> validated = Validated.lazy("Hello", () -> null);
assertFalse(validated.isValid());
// throws ClassCastException: class org.openrewrite.Validated$LazyValidated cannot be cast to class org.openrewrite.Validated$Invalid
assertDoesNotThrow(validated::failures);
}
I'll open a PR with the above test, referencing this issue, and ask colleagues what the thinking is here; since it's getting late in my timezone.
What version of OpenRewrite are you using?
I am using
How are you running OpenRewrite?
I am using the Maven plugin, and my project is a multi-module project.
What is the smallest, simplest way to reproduce the problem?
What did you expect to see?
No exceptions
What did you see instead?
class org.openrewrite.Validated$LazyValidated cannot be cast to class org.openrewrite.Validated$Invalid (org.openrewrite.Validated$LazyValidated
What is the full stack trace of any errors you encountered?
Are you interested in [contributing a fix to OpenRewrite]
Yes, with some guidance in what direction I should look to analyze/fix the issue.