Skip to main content

Bug detected? initial-event-selector-method+ FireAndReceive

2 replies [Last post]
baranowb
Offline
Joined: 2006-01-09
Points: 0

Hey. I think I have stumbled on a bug, uh. Took me some time to determine that it almost on 1005 is not fault of code I wrote.
I have an sbb which:
-receives event X - which is initial
-receives and fires event Y - which is also initial;

In both cases InitialEventSelector chooseService(...) method is called. It determines convergence name and uses ise.setCustomName("...");

OnX event service is created with convergence name like "X_Service1" . Sbb sets some flags, and fields. THen it fires Y event.
when "chooseService" method is onvoked convergence name is set ( by ies.setCustomName ) to something like "Y_Service2".
At this point there should be second sbb attached to aci with second name, right ?

However this is nto happening, Y event is delivered to aci with "X_Service1" name, no additioanl ACI is created.

But when I change slightly that sbb - Y event is only received ( sbb fires Y event in some other way ) ,everything works fine.

Is this EventRouter bug ( or some other class, I have no idea which one yet, just trying to figur eout is this behaviour intended)

Bartek

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
baranowb
Offline
Joined: 2006-01-09
Points: 0

Hmm It looks I was fooled by jvm ( it does nto matter if direction is only receive or fireandreceive). I dont know why but sometimes everything works fine, and sometimes it is not.
Sometimes sbb doesnt reatin its state even though it is the same sbb for which event handler was called second before, Im trying to determine why this is happening. Such non deterministica behaviour shouldnt occure. Moreover one event is sometimes delivered twice...

Any ideas?

Bartek

ivelin
Offline
Joined: 2003-07-13
Points: 0

is the state stored in an object field or CMP field?

an event should never be delivered twice if the resource adaptor only send it once to the SleeEndpoint