Buggy code:
public class ReverseMappingToolTask extends AbstractTask { protected Flags flags = new ReverseMappingTool . Flags ( ) ; protected String dirName = null ; protected String typeMap = null ; protected String customizerProperties = null ; protected String customizerClass = PropertiesReverseCustomizer . class . getName ( ) ; public ReverseMappingToolTask ( ) { } public void setPackage ( String pkg ) { } public void setDirectory ( String dirName ) { } public void setUseSchemaName ( boolean useSchemaName ) { } public void setUseForeignKeyName ( boolean useForeignKeyName ) { } public void setNullableAsObject ( boolean nullableAsObject ) { } public void setBlobAsObject ( boolean blobAsObject ) { } public void setUseGenericCollections ( boolean useGenericCollections ) { } public void setTypeMap ( String typeMap ) { } public void setPrimaryKeyOnJoin ( boolean primaryKeyOnJoin ) { } public void setUseDataStoreIdentity ( boolean useDataStoreIdentity ) { } public void setUseBuiltinIdentityClass ( boolean useBuiltinIdentityClass ) { } public void setInverseRelations ( boolean inverseRelations ) { } public void setDetachable ( boolean detachable ) { } public void setDiscriminatorStrategy ( String discStrat ) { } public void setVersionStrategy ( String versionStrat ) { } public void setInnerIdentityClasses ( boolean innerAppId ) { } public void setIdentityClassSuffix ( String suffix ) { } public void setMetadata ( ReverseMappingToolTask . Level level ) { } public void setGenerateAnnotations ( boolean genAnnotations ) { } public void setAccessType ( ReverseMappingToolTask . AccessType accessType ) { } public void setCustomizerClass ( String customizerClass ) { } public void setCustomizerProperties ( String customizerProperties ) { } public Object createCodeFormat ( ) { } protected ConfigurationImpl newConfiguration ( ) { } protected void executeOn ( String [ ] files ) throws Exception { ClassLoader loader = getClassLoader ( ) ; if ( ! ( StringUtils . isEmpty ( dirName ) ) ) flags . directory = Files . getFile ( dirName , loader ) ; if ( ! ( StringUtils . isEmpty ( typeMap ) ) ) flags . typeMap = Configurations . parseProperties ( typeMap ) ; Properties customProps = new Properties ( ) ; File propsFile = Files . getFile ( customizerProperties , loader ) ; if ( ( propsFile != null ) && ( AccessController . doPrivileged ( J2DoPrivHelper . existsAction ( propsFile ) ) . booleanValue ( ) ) ) { FileInputStream fis = null ; try { fis = AccessController . doPrivileged ( J2DoPrivHelper . newFileInputStreamAction ( propsFile ) ) ; } catch ( PrivilegedActionException pae ) { throw ( ( FileNotFoundException ) ( pae . getException ( ) ) ) ; } customProps . load ( fis ) ; } JDBCConfiguration conf = ( ( JDBCConfiguration ) ( getConfiguration ( ) ) ) ; <START_BUG> flags . customizer = ( ( ReverseCustomizer ) ( Configurations . newInstance ( customizerClass , conf , null , AccessController . doPrivileged ( J2DoPrivHelper . getClassLoaderAction ( ReverseCustomizer . class ) ) ) ) ) ; <END_BUG> if ( ( flags . customizer ) != null ) flags . customizer . setConfiguration ( customProps ) ; ReverseMappingTool . run ( conf , files , flags , loader ) ; } public static class Level extends EnumeratedAttribute { public String [ ] getValues ( ) { } } public static class AccessType extends EnumeratedAttribute { public String [ ] getValues ( ) { } } }

Fix:
flags . customizer = ( ( ReverseCustomizer ) ( Configurations . newInstance ( customizerClass , conf , ( ( String ) ( null ) ) , AccessController . doPrivileged ( J2DoPrivHelper . getClassLoaderAction ( ReverseCustomizer . class ) ) ) ) ) ;