Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 999893

Summary: XMLJavaTypeAdapter not working in Exception Classes
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Mustafa Musaji <mmusaji>
Component: Web ServicesAssignee: Alessio Soldano <asoldano>
Status: CLOSED CURRENTRELEASE QA Contact: Rostislav Svoboda <rsvoboda>
Severity: high Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.1.0CC: brian.stansberry, klape, mmusaji, psakar
Target Milestone: ER7   
Target Release: EAP 6.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-15 16:23:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1021549    
Bug Blocks:    
Attachments:
Description Flags
TestCase none

Description Mustafa Musaji 2013-08-22 10:43:03 UTC
Platform BZ for https://issues.jboss.org/browse/JBWS-3690

Given the interface:
@javax.jws.WebService
public interface WsIntfc {
    public void test() throws MyException;
}

And exception class:
public class MyException extends Exception {
  private MyClass1 adapted = null;
  
  @XmlJavaTypeAdapter(Cl1ToCl2Adapter.class)
  public MyClass1 getAdapted() {
      return this.adapted;
  }
  
  public void setAdapted(MyClass1 adapted) {
      this.adapted = adapted;
  }
}

Along with:
public class Cl1ToCl2Adapter extends XmlAdapter<MyClass2, MyClass1> {
  @Override
  public MyClass1 unmarshal(MyClass2 v) throws Exception {
      MyClass1 mc1 = new MyClass1();
      mc1.setName(v.getFile());
      return mc1;
  }

  @Override
  public MyClass2 marshal(MyClass1 v) throws Exception {
      MyClass2 mc2 = new MyClass2();
      mc2.setFile(v.getName());
      return mc2;
  }
}

public class MyClass1 {
  private String name = null;
  
  public String getName() {
    return this.name;
  }
  
  public void setName(String name) {
    this.name = name;
  }
  
}

public class MyClass2 {
  private String file = null;
  
  public String getFile() {
    return this.file;
  }
  
  public void setFile(String file) {
    this.file = file;
  }
}



I get the following schema output:

<xs:complexType name="myClass1">
  <xs:sequence>
    <xs:element minOccurs="0" name="name" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="MyException">
  <xs:sequence/>
</xs:complexType>


I should expect myClass2 defined in the schema and referenced by MyException.

Comment 1 Rostislav Svoboda 2013-09-23 08:59:43 UTC
Should be fixed in CXF 2.7.7 / JBossWS CXF 4.2.1

Comment 2 Alessio Soldano 2013-09-23 09:10:14 UTC
Rostislav, JBossWS 4.2.1.Final was released without Apache CXF upgrade to 2.7.7.

Comment 4 Rostislav Svoboda 2013-09-23 13:25:56 UTC
Alessio, thanks for clarification. I didn't check the pom for cxf version.

Comment 6 JBoss JIRA Server 2013-10-21 09:12:20 UTC
Alessio Soldano <asoldano> updated the status of jira JBWS-3690 to Resolved

Comment 7 JBoss JIRA Server 2013-10-21 14:11:03 UTC
Alessio Soldano <asoldano> updated the status of jira JBWS-3690 to Closed

Comment 9 Petr Sakař 2013-11-05 09:16:08 UTC
Created attachment 819597 [details]
TestCase

mvn verify -Djboss.home=/home/development/jbossqe/JBEAP-6.2.0.ER6/build/jboss-eap-6.2

Comment 10 Petr Sakař 2013-11-05 09:17:33 UTC
Verify using attachment from comment#9 
EAP 6.2.0.ER7 passed
EAP 6.2.0.ER6 failed