Community
Participate
Working Groups
Test org.eclipse.objectteams.otdt.tests.otjld.api.Reflection.test924_isExecutingCallinCalled5() still fails under OTDRE. I suspect that the team instance may not be properly in place when invoking isExecutingCallin(). If I remove this call we instead fail with StackOverflowError (since .equals() is intercepted which is used by the lifting infrastructure).
Turned out to be related to bug 493717 after all: where in the type hierarchy do we insert which code, and how are call chains constructed? In particular: in that test we are binding to Object.equals(), which of course is not weavable. Instead, we insert a new dispatch method as T924iecc5.equals(), which starts off the call chain. But when we return from the team, _OT$callOrig() could not correctly dispatch. After bug 493717 we actually tried to call Object._OT$callOrig(), which - of course - does not exist. Fixed by a new CreateSpecificSuperCallInCallOrigAdapter, which inserts an invokespecial towards the inherited unweavable method, wrapped between arg-unpacking and return boxing. Released via commit f8337c36848c19866deb04d3d4124f6bba59ed7d
*** Bug 459269 has been marked as a duplicate of this bug. ***