HHH-11818 : ClassCastException when binding a MaterializedNClobType as NClob

(cherry picked from commit 3f2c36ab69)
This commit is contained in:
Gail Badner 2017-06-14 12:57:41 -07:00
parent 8701d1044c
commit 473f43cdd5
1 changed files with 6 additions and 3 deletions

View File

@ -48,12 +48,15 @@ public class StringTypeDescriptor extends AbstractTypeDescriptor<String> {
if ( CharacterStream.class.isAssignableFrom( type ) ) { if ( CharacterStream.class.isAssignableFrom( type ) ) {
return (X) new CharacterStreamImpl( value ); return (X) new CharacterStreamImpl( value );
} }
if ( Clob.class.isAssignableFrom( type ) ) { // Since NClob extends Clob, we need to check if type is an NClob
return (X) options.getLobCreator().createClob( value ); // before checking if type is a Clob. That will ensure that
} // the correct type is returned.
if ( DataHelper.isNClob( type ) ) { if ( DataHelper.isNClob( type ) ) {
return (X) options.getLobCreator().createNClob( value ); return (X) options.getLobCreator().createNClob( value );
} }
if ( Clob.class.isAssignableFrom( type ) ) {
return (X) options.getLobCreator().createClob( value );
}
throw unknownUnwrap( type ); throw unknownUnwrap( type );
} }