Program: 65145
Project: 65145
Buggy source:
/** 
 * Set a property on the JAXBUnmarshaller. Attempting to set any unsupported property will result in a javax.xml.bind.PropertyException  See <a href="#supportedProps">Supported Properties</a>.      
 */
public void setProperty(String key,Object value) throws PropertyException {
  if (key == null) {
    throw new IllegalArgumentException();
  }
  if (key.equals(UnmarshallerProperties.MEDIA_TYPE)) {
    MediaType mType=null;
    if (value instanceof MediaType) {
      mType=(MediaType)value;
    }
 else     if (value instanceof String) {
      mType=MediaType.getMediaType((String)value);
    }
    if (mType != null) {
      xmlUnmarshaller.setMediaType(mType);
    }
 else {
      throw new PropertyException(key,value);
    }
  }
 else   if (key.equals(UnmarshallerProperties.JSON_ATTRIBUTE_PREFIX)) {
    xmlUnmarshaller.setAttributePrefix((String)value);
  }
 else   if (UnmarshallerProperties.JSON_INCLUDE_ROOT.equals(key)) {
    xmlUnmarshaller.setIncludeRoot((Boolean)value);
  }
 else   if (UnmarshallerProperties.JSON_NAMESPACE_PREFIX_MAPPER.equals(key)) {
    if (value instanceof Map) {
      Map<String,String> namespaces=(Map<String,String>)value;
      NamespaceResolver nr=new NamespaceResolver();
      Iterator<Entry<String,String>> namesapcesIter=namespaces.entrySet().iterator();
      for (int i=0; i < namespaces.size(); i++) {
        Entry<String,String> nextEntry=namesapcesIter.next();
        nr.put(nextEntry.getValue(),nextEntry.getKey());
      }
      xmlUnmarshaller.setNamespaceResolver(nr);
    }
 else     if (value instanceof NamespacePrefixMapper) {
      xmlUnmarshaller.setNamespaceResolver(new PrefixMapperNamespaceResolver((NamespacePrefixMapper)value,null));
    }
  }
 else   if (UnmarshallerProperties.JSON_VALUE_WRAPPER.equals(key)) {
    xmlUnmarshaller.setValueWrapper((String)value);
  }
 else   if (UnmarshallerProperties.JSON_NAMESPACE_SEPARATOR.equals(key)) {
    xmlUnmarshaller.setNamespaceSeparator((Character)value);
  }
 else   if (UnmarshallerProperties.ID_RESOLVER.equals(key)) {
    setIDResolver((IDResolver)value);
  }
 else   if (SUN_ID_RESOLVER.equals(key) || SUN_JSE_ID_RESOLVER.equals(key)) {
    setIDResolver(new IDResolverWrapper(value));
  }
 else {
    throw new PropertyException(key,value);
  }
}

Fixed version (ground truth):
/** 
 * Set a property on the JAXBUnmarshaller. Attempting to set any unsupported property will result in a javax.xml.bind.PropertyException.
 * @see org.eclipse.persistence.jaxb.UnmarshallerProperties
 */
public void setProperty(String key,Object value) throws PropertyException {
  if (key == null) {
    throw new IllegalArgumentException();
  }
  if (key.equals(UnmarshallerProperties.MEDIA_TYPE)) {
    MediaType mType=null;
    if (value instanceof MediaType) {
      mType=(MediaType)value;
    }
 else     if (value instanceof String) {
      mType=MediaType.getMediaType((String)value);
    }
    if (mType != null) {
      xmlUnmarshaller.setMediaType(mType);
    }
 else {
      throw new PropertyException(key,value);
    }
  }
 else   if (key.equals(UnmarshallerProperties.JSON_ATTRIBUTE_PREFIX)) {
    xmlUnmarshaller.setAttributePrefix((String)value);
  }
 else   if (UnmarshallerProperties.JSON_INCLUDE_ROOT.equals(key)) {
    xmlUnmarshaller.setIncludeRoot((Boolean)value);
  }
 else   if (UnmarshallerProperties.JSON_NAMESPACE_PREFIX_MAPPER.equals(key)) {
    if (value instanceof Map) {
      Map<String,String> namespaces=(Map<String,String>)value;
      NamespaceResolver nr=new NamespaceResolver();
      Iterator<Entry<String,String>> namesapcesIter=namespaces.entrySet().iterator();
      for (int i=0; i < namespaces.size(); i++) {
        Entry<String,String> nextEntry=namesapcesIter.next();
        nr.put(nextEntry.getValue(),nextEntry.getKey());
      }
      xmlUnmarshaller.setNamespaceResolver(nr);
    }
 else     if (value instanceof NamespacePrefixMapper) {
      xmlUnmarshaller.setNamespaceResolver(new PrefixMapperNamespaceResolver((NamespacePrefixMapper)value,null));
    }
  }
 else   if (UnmarshallerProperties.JSON_VALUE_WRAPPER.equals(key)) {
    xmlUnmarshaller.setValueWrapper((String)value);
  }
 else   if (UnmarshallerProperties.JSON_NAMESPACE_SEPARATOR.equals(key)) {
    xmlUnmarshaller.setNamespaceSeparator((Character)value);
  }
 else   if (UnmarshallerProperties.ID_RESOLVER.equals(key)) {
    setIDResolver((IDResolver)value);
  }
 else   if (SUN_ID_RESOLVER.equals(key) || SUN_JSE_ID_RESOLVER.equals(key)) {
    setIDResolver(new IDResolverWrapper(value));
  }
 else {
    throw new PropertyException(key,value);
  }
}