From ce85ba9cfee9e2c3595721d7ea30ed85f2672e45 Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Sat, 29 Dec 2001 21:13:07 +0000 Subject: [PATCH] Made sure that the MasterConverter verified that the slave converters return the correct type. If not then it will raise an exception. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270396 13f79535-47bb-0310-9956-ffa450edef68 --- .../converter/DefaultMasterConverter.java | 15 ++++++++++++++- .../components/converter/Resources.properties | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultMasterConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultMasterConverter.java index 4fbaaf49a..0039e0f76 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultMasterConverter.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultMasterConverter.java @@ -106,7 +106,20 @@ public class DefaultMasterConverter getLogger().debug( message ); } - return converter.convert( destination, original, context ); + final Object object = converter.convert( destination, original, context ); + if( destination.isInstance( object ) ) + { + return object; + } + else + { + final String message = + REZ.getString( "bad-return-type.error", + name, + object, + destination.getName() ); + throw new ConverterException( message ); + } } catch( final TypeException te ) { diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/Resources.properties index f2cc4eeaf..7848babff 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/Resources.properties +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/Resources.properties @@ -4,3 +4,4 @@ found-converter.notice=Found Converter: {0}. no-converter-factory.error=Unable to retrieve Converter factory from TypeManager. no-converter.error=Unable to find converter for {0} to {1} conversion. bad-typemanager.error=Badly configured TypeManager missing converter definition. +bad-return-type.error=The TypeManager for {0} returned "{1}" which is not of the expected type {2}.