| Summary: | [otdre] NPE when base guard calls isExecutingCallin() | ||
|---|---|---|---|
| Product: | [Tools] Objectteams | Reporter: | Stephan Herrmann <stephan.herrmann> |
| Component: | OTJ | Assignee: | Stephan Herrmann <stephan.herrmann> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | stephan.herrmann |
| Version: | 2.4 | ||
| Target Milestone: | 2.5 RC | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 484164 | ||
|
Description
Stephan Herrmann
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. *** |