[ 
https://issues.apache.org/jira/browse/CXF-2548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Antal Varga updated CXF-2548:
-----------------------------

    Description: 
Revision 826052 changed the behaviour of 
org.apache.cxf.frontend.ClientFactoryBean.create() so that subsequent calls 
will create new Client objects.

The ServiceInfos are cached between the creation of these objects so that the 
SchemaCollection objects assigned to them also remain the same.

However when an endpoint is created (it is called for both of the Clients) and 
org.apache.cxf.aegis.databinding.AegisDatabinding.createSchemas()
is run then (line 457) a new SchemaInfo is attempted to be added to the schema 
collection with a namespace URI already in the collection
(see API component 
org.apache.cxf.service.model.ServiceInfo.addNewSchema(String)) because it was 
already added
during the creation of the previous Client object.

I think prior to adding the new SchemaInfo it should be checked if an entry 
with the given namespace URI already exists.


  was:
Revision 826052 changed the behaviour of 
org.apache.cxf.frontend.ClientFactoryBean.create() so that subsequent calls 
will create new Client objects.

The ServiceInfos are cached between the creation of these objects so that the 
SchemaCollection objects assigned to them also remain the same.

However when an endpoint is created and 
org.apache.cxf.aegis.databinding.AegisDatabinding.createSchemas() is run then 
(line 457) a new SchemaInfo
is attempted to be added to the schema collection with a namespace URI already 
in the collection (API component 
org.apache.cxf.service.model.ServiceInfo.addNewSchema(String)) because it was 
added during the creation of the previous Client object.

I think prior to adding the new SchemaInfo it should be checked if an entry 
with the given namespace URI already exists.



> Aegis component attempts to assign new schema objects with an existing 
> namespace URI to ServiceInfo if consecutive Clients are created for the same 
> WSDL causing XmlSchemaException: Schema name conflict in collection
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-2548
>                 URL: https://issues.apache.org/jira/browse/CXF-2548
>             Project: CXF
>          Issue Type: Bug
>          Components: Aegis Databinding
>    Affects Versions: 2.2.5, 2.2.6
>         Environment: BEA JRockit 1.6.0 + WebLogic 10.3, Sun JDK 1.6.0
>            Reporter: Antal Varga
>            Priority: Critical
>
> Revision 826052 changed the behaviour of 
> org.apache.cxf.frontend.ClientFactoryBean.create() so that subsequent calls 
> will create new Client objects.
> The ServiceInfos are cached between the creation of these objects so that the 
> SchemaCollection objects assigned to them also remain the same.
> However when an endpoint is created (it is called for both of the Clients) 
> and org.apache.cxf.aegis.databinding.AegisDatabinding.createSchemas()
> is run then (line 457) a new SchemaInfo is attempted to be added to the 
> schema collection with a namespace URI already in the collection
> (see API component 
> org.apache.cxf.service.model.ServiceInfo.addNewSchema(String)) because it was 
> already added
> during the creation of the previous Client object.
> I think prior to adding the new SchemaInfo it should be checked if an entry 
> with the given namespace URI already exists.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to