Bug 1103847 - [GSS] (6.3.x) CXF-5665, CXF-5841 - CXF duplicates PolicyReferences in generated WSDL under certain circumstances
Summary: [GSS] (6.3.x) CXF-5665, CXF-5841 - CXF duplicates PolicyReferences in generat...
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Web Services
Version: 6.2.0
Hardware: Unspecified
OS: Unspecified
Target Milestone: CR1
: EAP 6.3.2
Assignee: baranowb
QA Contact: Rostislav Svoboda
Depends On: 1083770
Blocks: 1087653 1115216 eap632-blockers, eap632-payload 1144103
TreeView+ depends on / blocked
Reported: 2014-06-02 17:55 UTC by Kyle Lape
Modified: 2019-08-19 12:41 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Known Issue
Doc Text:
A bug in the CXF component shipped with JBoss EAP 6 causes `PolicyReferences` to be duplicated when using Java First WS-Policy Annotations (such as @Policies). The resulting WSDL generates multiple 'PolicyReference' elements when there is no separate Java interface. This issue is expected to be resolved in a future release of the product.
Clone Of: 1083770
Last Closed: 2019-08-19 12:41:47 UTC
Type: Bug

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Apache JIRA CXF-5665 None None None Never
Apache JIRA CXF-5841 None None None Never

Description Kyle Lape 2014-06-02 17:55:32 UTC
+++ This bug was initially created as a clone of Bug #1083770 +++

[Copied problem description from CXF Jira]

In CXF 2.7.10 when using Java First WS-Policy Annotations such as:
	@Policy(uri = "annotationpolicies/TestOperationPolicy.xml"), 
	@Policy(uri = "annotationpolicies/TestOperationInputPolicy.xml", 
			placement = Policy.Placement.BINDING_OPERATION_INPUT), 
	@Policy(uri = "annotationpolicies/TestOperationOutputPolicy.xml", 
			placement = Policy.Placement.BINDING_OPERATION_OUTPUT), 
	@Policy(uri = "annotationpolicies/TestOperationPTPolicy.xml", 
			placement = Policy.Placement.PORT_TYPE_OPERATION), 
	@Policy(uri = "annotationpolicies/TestOperationPTInputPolicy.xml", 
			placement = Policy.Placement.PORT_TYPE_OPERATION_INPUT), 
	@Policy(uri = "annotationpolicies/TestOperationPTOutputPolicy.xml", 
			placement = Policy.Placement.PORT_TYPE_OPERATION_OUTPUT) 

The resulting WSDL ends up generating multiple PolicyReference elements when there is no separate Java Interface for example:

<wsdl:operation name="echoInt">
		<soap:operation soapAction="" style="document"/>
		<wsp:PolicyReference URI="#echoIntBindingOpPolicy"/>
		<wsp:PolicyReference URI="#echoIntBindingOpPolicy"/>
		<wsdl:input name="echoInt">
				<soap:body use="literal"/>
				<wsp:PolicyReference URI="#echoIntBindingOpInputPolicy"/>
				<wsp:PolicyReference URI="#echoIntBindingOpInputPolicy"/>
		<wsdl:output name="echoIntResponse">
				<soap:body use="literal"/>
				<wsp:PolicyReference URI="#echoIntBindingOpOutputPolicy"/>
				<wsp:PolicyReference URI="#echoIntBindingOpOutputPolicy"/>

--- Additional comment from Scott Mumford on 2014-04-22 21:43:21 EDT ---

Flagged as Known Issue as ticket unresolved at the time of writing the release note.

--- Additional comment from Nichola Moore on 2014-05-13 22:00:56 EDT ---

Now set to bug fix as requested in bug 1096876. 
A resolution needs to be added to the doc text, however.

--- Additional comment from Nichola Moore on 2014-05-14 00:57:11 EDT ---

Set back to known issue. Flag reset in error.

--- Additional comment from Kyle Lape on 2014-05-30 12:35:23 EDT ---

This should already be included in 6.3.0 since this fix was included in CXF 2.7.11:

klape@localhost cxf$ git tag --contains eb5ac69120bc7799997740ff6817864039b55518

Comment 1 baranowb 2014-06-03 07:08:15 UTC
Fix is in: http://git.app.eng.bos.redhat.com/git/apache/cxf.git/commit/?h=cxf-2.7.11-redhat&id=eb5ac69120bc7799997740ff6817864039b55518 , if CXF is bumped to 2.7.11-redhatX this issue can be closed.

Comment 3 Jan Blizňák 2014-06-19 14:32:45 UTC
I still see reported issue in 6.2.4.CP.CR1:

Defining webservice with no interface like this:

      serviceName = "HelloWorldServiceNoInterface",
      portName = "HelloWorld1", 
      name = "HelloWorld1", 
      targetNamespace = "http://www.jboss.org/jbossas/quickstarts/wshelloworld/HelloWorld1"
@Policy(uri = "ws-policy/x509SecurityPolicy.xml", placement = Policy.Placement.BINDING)
public class HelloWorldServiceNoInterface {

        @Policy(uri = "ws-policy/inputPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION_INPUT),
        @Policy(uri = "ws-policy/outputPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION_OUTPUT)
    public String sayHello() {
        return "Hello World!";

still results in multiple PolicyReference elements in wsdl:

<wsdl:portType name="HelloWorld1">
  <wsdl:operation name="sayHello2">
    <wsdl:input message="tns:sayHello2" name="sayHello2">
      <wsp:PolicyReference URI="#Input_Security_Policy"/>
      <wsp:PolicyReference URI="#Input_Security_Policy"/>
    <wsdl:output message="tns:sayHello2Response" name="sayHello2Response">
      <wsp:PolicyReference URI="#Output_Security_Policy"/>
      <wsp:PolicyReference URI="#Output_Security_Policy"/>
<wsdl:binding name="HelloWorldServiceNoInterfaceSoapBinding" type="tns:HelloWorld1">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  <wsp:PolicyReference URI="#X509SecurityPolicy"/>
  <wsp:PolicyReference URI="#X509SecurityPolicy"/>
  <wsdl:operation name="sayHello2">
    <soap:operation soapAction="" style="document"/>
    <wsdl:input name="sayHello2">
      <soap:body use="literal"/>
    <wsdl:output name="sayHello2Response">
    <soap:body use="literal"/>

Comment 4 Scott Mumford 2014-06-23 01:56:13 UTC
Converted release note to Known Issue as failed QA

Comment 12 baranowb 2014-07-08 10:34:42 UTC
Shifting to 6.3.1 - this require new spin of CXF (2.7.12 iirc)

Comment 14 Jan Blizňák 2014-10-16 09:35:47 UTC
Verified on 6.3.2.CP.CR1

Note You need to log in before you can comment on or make changes to this bug.