diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java b/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java index 87c1b585da4..c9161d05559 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java @@ -223,7 +223,8 @@ class TypeConverterDelegate { } if (editor != null) { msg.append(": PropertyEditor [").append(editor.getClass().getName()).append( - "] returned inappropriate value"); + "] returned inappropriate value of type [").append( + ClassUtils.getDescriptiveType(convertedValue)).append("]"); throw new IllegalArgumentException(msg.toString()); } else { diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java b/org.springframework.beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java index 3c61d853506..19b1cb44070 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,6 +34,7 @@ import org.springframework.beans.propertyeditors.InputSourceEditor; import org.springframework.beans.propertyeditors.InputStreamEditor; import org.springframework.beans.propertyeditors.URIEditor; import org.springframework.beans.propertyeditors.URLEditor; +import org.springframework.core.io.ContextResource; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceEditor; import org.springframework.core.io.ResourceLoader; @@ -84,6 +85,7 @@ public class ResourceEditorRegistrar implements PropertyEditorRegistrar { public void registerCustomEditors(PropertyEditorRegistry registry) { ResourceEditor baseEditor = new ResourceEditor(this.resourceLoader); doRegisterEditor(registry, Resource.class, baseEditor); + doRegisterEditor(registry, ContextResource.class, baseEditor); doRegisterEditor(registry, InputStream.class, new InputStreamEditor(baseEditor)); doRegisterEditor(registry, InputSource.class, new InputSourceEditor(baseEditor)); doRegisterEditor(registry, File.class, new FileEditor(baseEditor)); diff --git a/org.springframework.context/src/test/java/org/springframework/beans/ResourceTestBean.java b/org.springframework.context/src/test/java/org/springframework/beans/ResourceTestBean.java index bfe6daffe24..0831e05c584 100644 --- a/org.springframework.context/src/test/java/org/springframework/beans/ResourceTestBean.java +++ b/org.springframework.context/src/test/java/org/springframework/beans/ResourceTestBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package org.springframework.beans; import java.io.InputStream; import java.util.Map; +import org.springframework.core.io.ContextResource; import org.springframework.core.io.Resource; /** @@ -29,6 +30,8 @@ public class ResourceTestBean { private Resource resource; + private ContextResource contextResource; + private InputStream inputStream; private Resource[] resourceArray; @@ -47,22 +50,30 @@ public class ResourceTestBean { } + public Resource getResource() { + return resource; + } + public void setResource(Resource resource) { this.resource = resource; } - public void setInputStream(InputStream inputStream) { - this.inputStream = inputStream; + public ContextResource getContextResource() { + return contextResource; } - public Resource getResource() { - return resource; + public void setContextResource(ContextResource contextResource) { + this.contextResource = contextResource; } public InputStream getInputStream() { return inputStream; } + public void setInputStream(InputStream inputStream) { + this.inputStream = inputStream; + } + public Resource[] getResourceArray() { return resourceArray; } diff --git a/org.springframework.context/src/test/java/org/springframework/context/support/ClassPathXmlApplicationContextTests-resourceImport.xml b/org.springframework.context/src/test/java/org/springframework/context/support/ClassPathXmlApplicationContextTests-resourceImport.xml index 0788f511084..717148bc4c2 100644 --- a/org.springframework.context/src/test/java/org/springframework/context/support/ClassPathXmlApplicationContextTests-resourceImport.xml +++ b/org.springframework.context/src/test/java/org/springframework/context/support/ClassPathXmlApplicationContextTests-resourceImport.xml @@ -7,6 +7,9 @@ test.properties + + testBeans.properties + classpath:org/springframework/beans/factory/xml/test.properties