Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [bpel-dev] resolveBPELPartnerLinkType() trouble

I put in a check for import.getLocation() == null on WSLDResolver and XSDResolver. This way, these should fall out as noops and you should not get the NPE ... let me know.

The issue with putting the location-less import is another story, but at least you ought to be able to get passed this problem.

-m

Michal Chmielewski wrote:
Bruno,

There is a bug here. What I have done is as follows:

1) Create a brand new BPEL file.
2) Add new Partner Link
3) Browse for a WSDL for that partner link.
4) Select that WSDL which has portTypes but no PLT.
5) Go through the little wizard that creates the PLT (in the artifacts file).

The problem seems to be that after creating this PLT an import without location is added to the process.

On save of the BPEL file another import is added which contains the correct import pointing to the just created artifacts file (which is created on save).

The import being unset is not a bug per se (the spec allows it), but the code should not barf on it during resolution of the pl proxies. I'll take a looksie ...

-michal


Bruno Wassermann wrote:
Hi all,

Working on improving the generation of deployment descriptors for the
ActiveBPEL runtime integration, I have been stuck for a few days trying to
figure out what might be a bug (?).
Here's the setup:
We have a simple BPEL process with two partnerLinks. One partnerLink refers to a PLT defined in the automatically generated *Artifacts.wsdl file, which in turn imports the <processName>.wsdl file to resolve the portType referred
to in its PLT. This PLT will be represented by EMF as a proxy.
Here's what we are trying to do:
During PDD generation, we need to getPartnerLinkType().getID() or getName(),
etc. The first getter tries to resolve the proxy and return a
PartnerLinkType, but that's where the trouble starts.
Here's the problem:
The getter makes use of
org.eclipse.bpel.model.util.WSDLUtil.resolveBPELPartnerLinkType(). As we are
dealing with a proxy object, this method decides to inspect the imports.
Problem is (or seems to be), it encounters a bpws:import with a no location
attribute (null), which is represented in our BPEL file by the following
line:
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
namespace="http://test.comArtifacts"/>

which, in the BPEL, is followed by:

<bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
location="ArtifactsServiceProcessArtifacts.wsdl"
namespace="http://test.comArtifacts"/>

Now, my understanding is that trying to import the definition indicated by the first bpws:import above, we encounter a NPE caused by trying to create a URI on a null location. The effect is that the resolveBPELPartnerLinkType() method never gets to look at the second import and it all fails miserably.

Can someone please tell me: a) is this a known limitation of the code? b) why does our BPEL feature this import with no location attribute? c) is there something I am missing here? Is there maybe something the PDD generation should do before trying to resolve a proxy and I am just being
ignorant?

This is driving me nuts (there is some nice recursion going on - forgot to mention) and keeping me from making any progress. So please, if anyone could
lend me a few minutes of brainpower, it would be greatly appreciated.
-- Bruno

______________________________________________
Bruno Wassermann Research Fellow University College London Tel: +44 (0)20 7679 0369 (Direct Dial)
Dept. of Computer Science      Fax: +44 (0)20 7387 1397
Gower Street London WC1E 6BT http://www.cs.ucl.ac.uk/staff/B.Wassermann
United Kingdom ______________________________________________
_______________________________________________
bpel-dev mailing list
bpel-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/bpel-dev




--
Michal Chmielewski, CMTS, Oracle Corp, W:650-506-5952 / M:408-209-9321 "Manuals ?! What manuals ? Son, it's Unix, you just gotta know."


Back to the top