Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 357000

Summary: ISA not working in exception handler
Product: z_Archived Reporter: Justin Spadea <jspadea>
Component: EDTAssignee: Huang Ji Yong <hjiyong>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P1 CC: greer, jqian
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Fix lasher: iplog+

Description Justin Spadea CLA 2011-09-07 15:47:31 EDT
The following ISA check fails, but if you look at the type in firebug it *is* a ServiceInvocationException.

package pkg;

handler isaDefect type RUIhandler {initialUI = [],onConstructionFunction = start}
	
	function start()
		svc iDontExist?{@DedicatedService {}};
		call svc.func() returning to foo onException ex;
	end
	
	function foo()
	end
	
	function ex(exp AnyException in)
		if (exp isa ServiceInvocationException)
			syslib.writestdout("success!");
		else
			syslib.writestdout("failure!");
		end
	end
end

interface iDontExist
	function func();
end
Comment 1 Scott Greer CLA 2011-09-26 23:10:58 EDT
(Note to self:  everything should work, except the isa is eventually resulting in string compare of two type signatures -- they actually match, except the one on the exception itself is all lowercased.....)
Comment 2 Scott Greer CLA 2011-09-27 09:40:37 EDT
The generator wasn't lowercasing type signatures (as used in isA expressions);  in addition, I've reworked the isA gen to structure the logic the same as for Java gen while also incorporating some add'l isA logic from RBD.
Comment 3 Justin Spadea CLA 2011-11-01 16:25:00 EDT
It's still not working. It's comparing the signature in format "Tfoo/bar;" with the qualified name "foo.bar".
Comment 4 Jing Qian CLA 2011-11-03 16:45:20 EDT
make this major, as it would fail many services testing
Comment 5 Huang Ji Yong CLA 2011-11-07 08:54:47 EST
Created attachment 206515 [details]
Fix
Comment 6 Huang Ji Yong CLA 2011-11-07 09:06:28 EST
Change the typo of egl.service to eglx.service in TypeTemplate to solve this problem
Comment 7 Justin Spadea CLA 2011-11-08 12:50:02 EST
Verified