1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/JAXBWrapperAccessor.java Thu Apr 04 19:05:24 2013 -0700 1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/JAXBWrapperAccessor.java Tue Apr 09 14:51:13 2013 +0100 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -35,6 +35,7 @@ 1.11 import java.security.PrivilegedActionException; 1.12 import java.security.PrivilegedExceptionAction; 1.13 import java.util.ArrayList; 1.14 +import java.util.Arrays; 1.15 import java.util.HashMap; 1.16 import java.util.HashSet; 1.17 import java.util.List; 1.18 @@ -112,7 +113,6 @@ 1.19 1.20 QName qname = new QName(namespace, localName); 1.21 if (field.getType().equals(JAXBElement.class)) { 1.22 - Class elementDeclaredType = Object.class; 1.23 if (field.getGenericType() instanceof ParameterizedType) { 1.24 Type arg = ((ParameterizedType) field.getGenericType()) 1.25 .getActualTypeArguments()[0]; 1.26 @@ -161,7 +161,7 @@ 1.27 static protected List<Field> getAllFields(Class<?> clz) { 1.28 List<Field> list = new ArrayList<Field>(); 1.29 while (!Object.class.equals(clz)) { 1.30 - for (Field f : getDeclaredFields(clz)) list.add(f); 1.31 + list.addAll(Arrays.asList(getDeclaredFields(clz))); 1.32 clz = clz.getSuperclass(); 1.33 } 1.34 return list; 1.35 @@ -171,6 +171,7 @@ 1.36 try { 1.37 return (System.getSecurityManager() == null) ? clz .getDeclaredFields() : 1.38 AccessController.doPrivileged(new PrivilegedExceptionAction<Field[]>() { 1.39 + @Override 1.40 public Field[] run() throws IllegalAccessException { 1.41 return clz.getDeclaredFields(); 1.42 } 1.43 @@ -186,9 +187,7 @@ 1.44 if (!field.isAccessible()) { 1.45 if (getMethod != null) { 1.46 MethodGetter methodGetter = new MethodGetter(getMethod); 1.47 - if (!methodGetter.getType().toString().equals(field.getType().toString())) { 1.48 - methodGetter = null; 1.49 - } else { 1.50 + if (methodGetter.getType().toString().equals(field.getType().toString())) { 1.51 return methodGetter; 1.52 } 1.53 } 1.54 @@ -201,9 +200,7 @@ 1.55 if (!field.isAccessible()) { 1.56 if (setter != null) { 1.57 MethodSetter injection = new MethodSetter(setter); 1.58 - if (!injection.getType().toString().equals(field.getType().toString())) { 1.59 - injection = null; 1.60 - } else { 1.61 + if (injection.getType().toString().equals(field.getType().toString())) { 1.62 return injection; 1.63 } 1.64 } 1.65 @@ -217,6 +214,7 @@ 1.66 return elementDeclaredTypes.get(key); 1.67 } 1.68 1.69 + @Override 1.70 public PropertyAccessor getPropertyAccessor(String ns, String name) { 1.71 final QName n = new QName(ns, name); 1.72 final PropertySetter setter = getPropertySetter(n); 1.73 @@ -228,8 +226,9 @@ 1.74 final Class elementDeclaredType = isJAXBElement ? getElementDeclaredType(n) 1.75 : null; 1.76 return new PropertyAccessor() { 1.77 + @Override 1.78 public Object get(Object bean) throws DatabindingException { 1.79 - Object val = null; 1.80 + Object val; 1.81 if (isJAXBElement) { 1.82 JAXBElement<Object> jaxbElement = (JAXBElement<Object>) getter.get(bean); 1.83 val = (jaxbElement == null) ? null : jaxbElement.getValue(); 1.84 @@ -243,6 +242,7 @@ 1.85 return val; 1.86 } 1.87 1.88 + @Override 1.89 public void set(Object bean, Object value) throws DatabindingException { 1.90 if (isJAXBElement) { 1.91 JAXBElement<Object> jaxbElement = new JAXBElement<Object>(