Conditional breakpoints on multi-threaded code failing in Eclipse?

Today I got a very unusual error while trying to debug the DeepLearning4J framework.

Conditional breakpoint encountered runtime exception. Reason: java.lang.InternalError: Got MethodID of ReferenceType that is not a member of the ReferenceType occured retrieving stack frames.

Searching eventually found hints of a bug in Eclipse affecting conditional breakpoints — but occurring as a race condition, and thus only likely to manifest for threaded code.

This race condition affected the lazy-initialization of ReferenceTypeImpl.fMethodTable; and would potentially lead to Eclipse seeing an uninitialized table of methods, and not understanding the stack frames retrieved from the runningĀ  application.

This affected Eclipse Oxygen and Photon, and possibly also earlier). It was fixed in Photon internal build: I20170731-2000, and should presumably be available in major releases subsequent to that date.

Leave a Reply

Your email address will not be published. Required fields are marked *