Bug 480808 - [otdre] if intermediate super class is unweavable, _OT$callOrig fails to dispatch
Summary: [otdre] if intermediate super class is unweavable, _OT$callOrig fails to disp...
Status: ASSIGNED
Alias: None
Product: Objectteams
Classification: Tools
Component: OTJ (show other bugs)
Version: 2.4   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Stephan Herrmann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-10-27 15:15 EDT by Stephan Herrmann CLA
Modified: 2016-05-22 17:30 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Herrmann CLA 2015-10-27 15:15:35 EDT
I was playing with the flightbonus example, and defined as weavable regions:
//---
org.eclipse.objectteams.example
javax.swing
java.awt.Dialog
//---

Now a call to EnterPassengerDialog.pack() didn't reach its code:
- pack() is inherited from Window, where it has a callin binding, thus dispatching into callAllBindings()
- callAllBindings() eventually calls _OT$callOrig()
- _OT$callOrig() is invoked in EnterPassengerDialog, but no super-chain exists into Window.pack()

Check:
- should _OT$callOrig() call super, even if the immediate super is not woven (but an indirect super is)??
- should we just throw an error if this situation is detected?

Interestingly all exceptions thrown from transform() are caught by TransformerManager.
-> Should we insert an error throwing snippet into the transformed class??
Comment 1 Stephan Herrmann CLA 2015-12-10 19:15:26 EST
Minimal logging has been implemented via commit 50295b29058d2efcb1c95efe3b40c9880a8aa134
Comment 2 Stephan Herrmann CLA 2016-05-22 17:30:09 EDT
While bug 493717 improves a similar situation in OT/Equinox, we still need a good story for weavable regions.