Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-4711

JAXBContextInitializer addType stopped handling recursive types (StackOverflow)

    XMLWordPrintableJSON

Details

    • Unknown

    Description

      Upgrading from 2.7.0. to 2.7.1 uncovers a stackoverflow in JAXBContextInitializer.addType when using a recursive type definition like

      public static abstract class AddressEntity<T extends AddressEntity<T>> {
      	public abstract Addressable<T> getEntity();
      }
      	
      public interface Addressable<T extends AddressEntity<T>>{}
      
      java.lang.StackOverflowError
      	at java.lang.Class.getDeclaredConstructor(Class.java:2001)
      	at org.apache.cxf.common.util.ReflectionUtil$2.run(ReflectionUtil.java:67)
      	at org.apache.cxf.common.util.ReflectionUtil$2.run(ReflectionUtil.java:64)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.apache.cxf.common.util.ReflectionUtil.getDeclaredConstructor(ReflectionUtil.java:64)
      	at org.apache.cxf.common.jaxb.JAXBUtils.getValidClass(JAXBUtils.java:518)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addClass(JAXBContextInitializer.java:274)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:222)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:212)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:225)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:212)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:260)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:212)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:227)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:212)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:260)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:212)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:227)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:212)
      	at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:260)
      etc....
      

      Attachments

        Activity

          People

            dkulp Daniel Kulp
            elferink Thijs Elferink
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: