Author: dkulp Date: Wed Dec 19 19:04:06 2012 New Revision: 1424032 URL: http://svn.apache.org/viewvc?rev=1424032&view=rev Log: Merged revisions 1424011 via git cherry-pick from https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes
........ r1424011 | dkulp | 2012-12-19 13:30:52 -0500 (Wed, 19 Dec 2012) | 10 lines Merged revisions 1424005 via git cherry-pick from https://svn.apache.org/repos/asf/cxf/trunk ........ r1424005 | dkulp | 2012-12-19 13:28:05 -0500 (Wed, 19 Dec 2012) | 2 lines Fix some issues introduced in 2.7.1 that caused extra classes to be added to the JAXBContext that shouldn't be. ........ ........ Modified: cxf/branches/2.5.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java Modified: cxf/branches/2.5.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java?rev=1424032&r1=1424031&r2=1424032&view=diff ============================================================================== --- cxf/branches/2.5.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java (original) +++ cxf/branches/2.5.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java Wed Dec 19 19:04:06 2012 @@ -407,13 +407,9 @@ class JAXBContextInitializer extends Ser // must not have parameters and return type must not be void if (method.getReturnType() == Void.class || method.getParameterTypes().length != 0 - || method.getDeclaringClass().equals(Throwable.class)) { - return false; - } - if (method.getName().startsWith("get") - || method.getName().startsWith("is")) { - //continue with below check. - } else { + || method.getDeclaringClass().equals(Throwable.class) + || !(method.getName().startsWith("get") + || method.getName().startsWith("is"))) { return false; } int beginIndex = 3; @@ -429,19 +425,23 @@ class JAXBContextInitializer extends Ser } catch (Exception e) { //getter, but no setter } - if ((setter != null) - && ((setter.isAnnotationPresent(XmlTransient.class) - || !Modifier.isPublic(setter.getModifiers())))) { + if (setter != null) { + if (setter.isAnnotationPresent(XmlTransient.class) + || !Modifier.isPublic(setter.getModifiers())) { + return false; + } + } else if (!Collection.class.isAssignableFrom(method.getReturnType()) + && !Throwable.class.isAssignableFrom(method.getDeclaringClass())) { + //no setter, it's not a collection (thus getter().add(...)), and + //not an Exception, return false; - } if (accessType == XmlAccessType.NONE || accessType == XmlAccessType.FIELD) { return checkJaxbAnnotation(method.getAnnotations()); - } else { - return true; } + return true; } /**
