This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 112489 - validate multiple partner porttype operations in BPEL in event handlers
Summary: validate multiple partner porttype operations in BPEL in event handlers
Status: RESOLVED FIXED
Alias: None
Product: soa
Classification: Unclassified
Component: BPEL Validation (show other bugs)
Version: 6.x
Hardware: All All
: P3 blocker (vote)
Assignee: Vladimir Yaroslavskiy
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-09 17:59 UTC by kiran_bhumana
Modified: 2008-01-25 14:10 UTC (History)
0 users

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments
BPEL project zip file (21.69 KB, application/octet-stream)
2007-08-10 01:54 UTC, kiran_bhumana
Details

Note You need to log in before you can comment on or make changes to this bug.
Description kiran_bhumana 2007-08-09 17:59:42 UTC
refer.
http://www.netbeans.org/issues/show_bug.cgi?id=109677

This is a continuation of the bug 109677. We need to validate for IMAs within the event handlers.

From what i understood, from the description you wrote,
you verified if two onEvents has the same receive.

Scope
EventHandler
  OnEvent
    Scope
     *Receive*
    /Scope
  /OnEvent
  OnEvent
    Scope
     *Receive (duplicate IMA)*
    /Scope
  /OnEvent

/EventHandler
/Scope

what i am saying is

Scope
EventHandler
  OnEvent
    Scope
     Receive (potential duplicate IMA at runtime)
    /Scope
  /OnEvent
/EventHandler
/Scope

Because, two messages same(single) onEvent is also concurrently executed. (see my explanation in the
issue(http://www.netbeans.org/issues/show_bug.cgi?id=109677) and refer spec for more understanding). Same thing with
onAlarm with repetition.
Comment 1 kiran_bhumana 2007-08-10 01:33:15 UTC
refer.
http://www.netbeans.org/issues/show_bug.cgi?id=109677,
 as a feedback on the messages, this is what we came up with.

* All the messages about multiple partner operation should be warnings. Currently if same partner operation IMAs are in
flow (or event handler), it is an error. This should a severe-warning. This is because we are not verifying for
branching conditions. Ideally, if the IMA in a flow is an a "If" then it is warning, else it is "error". But since we
are not doing such deep checks, we say everything is a severe-warning.

* I think we should list out all the warnings about same P Op, on the partnerlink itself. Currently we have BPELSE
doesn't support message on PLink and the other on the IMA. Instead let us put all of them on the PartnerLink.

I will attach the project and explain further.
Comment 2 kiran_bhumana 2007-08-10 01:53:29 UTC
> Currently there are duplicate error/warning messages, this should be fixed. show one unique error.

> In the attached project, Receive1, Receive6 and Receive2 (in flow) are connected to the same partnerlink.
The WARNING message on the partnerlink should be, 
* {N} IMAs are connected to the same PartnerLink and Operation. BPEL SE, doesn't support it.
where {N} stands for the number of IMAs. in this case, {N} = 3.

> In the attached project, Receive3 and Receive4 are connected to the same partnerlink. The WARNING message on the
partnerlink should be,
* 2 or more IMAs with the same P Op could be enabled simultaneously resulting in a bpel:conflictingReceive.

There will also be a second warning message here saying, 
* {N} IMAs are connected to the same PartnerLink and Operation. BPEL SE, doesn't support it.

where {N} here is 2.

> In the attached Project, any IMA within an onEvent or a repeating onAlarm should have the following WARNING message.
* IMA can potentially cause bpel:conflictingReceive

Examples here are, Receive5, pick2-OnMessage, scope6's EventHandler's onEvent, scope7's Eventhandler's onEvent, Receive7

> In the attached Project, onEvent should show the following ERROR message,
* onEvents in an eventhandler are connected to the same PartnerLink and Operation, results in a bpel:conflictingReceive.

> In the attached Project, onMessage should show the following ERROR message,
* onMessages in a pick cannot be connected to the same PartnerLink and Operation, results in a bpel:conflictingReceive.
Comment 3 kiran_bhumana 2007-08-10 01:54:46 UTC
Created attachment 46440 [details]
BPEL project zip file
Comment 4 Sergey Lunegov 2007-10-26 11:06:28 UTC
For Sierra.
Comment 5 Andrei Chistiakov 2008-01-17 11:10:29 UTC
Changed target milestone from Sierra to 6.1 in order to display correct info on
NB 6.1 dashboard
Comment 6 Vladimir Yaroslavskiy 2008-01-24 15:01:23 UTC
Kiran,

Is it correct that we must catch situation when
EventHandler has several OnEvent/OnAlarm with
Receive which have the same PartnerLink-Operation?

Please, confirm.

Comment 7 kiran_bhumana 2008-01-24 19:25:12 UTC
following are cases that we need to address.

Case 1)

Scope
EventHandler
  OnEvent
    Scope
     Receive (potential duplicate IMA at runtime if the same onEvent happens more than once)
    /Scope
  /OnEvent
/EventHandler
/Scope

Case 2)

Scope
EventHandler
  OnEvent
    Scope
     *Receive*
    /Scope
  /OnEvent
  OnEvent
    Scope
     *Receive (potential duplicate IMA if both onEvents happen)*
    /Scope
  /OnEvent

/EventHandler
/Scope

Case 3)
EventHandler
  OnAlarm (with repeatEvery)
    Scope
     Receive (potential duplicate IMA at runtime based on the repeat timer value and the time it takes the execution to
reach receive)
    /Scope
  /OnAlarm
/EventHandler
/Scope
Comment 8 kiran_bhumana 2008-01-24 19:30:24 UTC
More comments.
In case 2, I am assuming that both receives have same partner, portType, operation. But before case 2, we have case 1
would be encountered.

Case 4)
Scope
EventHandler
  OnEvent
    Scope
     *Receive*
    /Scope
  /OnEvent
  OnAlarm
    Scope
     *Receive (potential duplicate IMA if both onEvent and onAlarm happen)*
    /Scope
  /OnAlarm

/EventHandler
/Scope

Here, like case 2,  both receives are of same partner, portType, operation. Please note that the OnAlarm in case 4
doesn't have repeatEvery.

Case 5)

Scope
EventHandler
  OnAlarm
    Scope
     *Receive*
    /Scope
  /OnAlarm
  OnAlarm
    Scope
     *Receive (potential duplicate IMA if both OnAlarms happen)*
    /Scope
  /OnAlarm

/EventHandler
/Scope

Here, like case 2,  both receives are of same partner, portType, operation

Hope that helps.
Comment 9 Vladimir Yaroslavskiy 2008-01-25 14:10:26 UTC
fixed cases 1..5.