What does IncompatibleClassChangeError signify?
Millies, Sebastian
Sebastian.Millies at softwareag.com
Wed Sep 25 10:16:55 PDT 2013
It's probably related. When I reformulate my coding so as to get rid of the
"this" in the default method, the error disappears.
I have sent you (and Remi) an example privately. Perhaps it is simple enough
to make some headway with this bug.
-- Sebastian
> -----Original Message-----
> From: Zhong Yu [mailto:zhong.j.yu at gmail.com]
> Sent: Wednesday, September 25, 2013 6:31 PM
> To: Millies, Sebastian
> Cc: lambda-dev at openjdk.java.net
> Subject: Re: What does IncompatibleClassChangeError signify?
>
> I was hit by this problem before
> http://mail.openjdk.java.net/pipermail/lambda-dev/2013-September/010942.html
> and I think it is probably a javac/java bug.
>
> It happened in a fairly complicated code base, I tried to but couldn't
> reproduce the bug with a simpler code sample.
>
> Zhong Yu
>
>
>
> On Wed, Sep 25, 2013 at 3:41 AM, Millies, Sebastian
> <Sebastian.Millies at softwareag.com> wrote:
> > Hello there,
> >
> > This is with b106 under Windows. I have compiled some classes (no error) and then
> run one of them. At runtime I get:
> >
> > Exception in thread "main" java.lang.IncompatibleClassChangeError: Class
> java8.monads.MaybeDemo$$Lambda$1 does not implement the requested interface
> java8.monads.Monad
> > at java8.monads.Monad.lambda$94(Monad.java:50)
> > at java8.monads.Monad$$Lambda$3.apply(Unknown Source)
> > at java8.monads.MaybeMonad.bind(MaybeMonad.java:23)
> > at java8.monads.Monad.lambda$93(Monad.java:50)
> > at java8.monads.MaybeMonad.lambda$93(MaybeMonad.java)
> > at java8.monads.Monad$$Lambda$2.apply(Unknown Source)
> > at java8.monads.MaybeMonad.bind(MaybeMonad.java:23)
> > at java8.monads.Monad.ap(Monad.java:51)
> > at java8.monads.MaybeMonad.ap(MaybeMonad.java)
> > at java8.monads.MaybeDemo.main(MaybeDemo.java:35)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> > at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
> a:43)
> > at java.lang.reflect.Method.invoke(Method.java:491)
> > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> >
> > Now, the code is likely very wrong, contains unchecked and perhaps illegal casts,
> erroneous type parameters etc. However, I'd have expected ClassCastException,
> NoSuchMethodError, ClassNotFoundException, whatever, but not a subclass of
> LinkageError. After all, how *could* any classes have changed? Why should re-
> linkage happen at all? No class has dependencies outside the JDK. Does something
> strange happen under the hood? Under what circumstances should I expect
> IncompatibleClassChangeError when using lambdas?
> >
> > Best,
> > Sebastian
> >
> >
> > Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany
> - Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management
> Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd
> Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas
> Bereczky - http://www.softwareag.com
> >
> >
More information about the lambda-dev
mailing list