Buggy code:
, new String [ ] { "CEILING" , "DOUBLE" , "java.lang.StrictMath" , "ceil(double)" , "DOUBLE" } , new String [ ] { "FLOOR" , "DOUBLE" , "java.lang.StrictMath" , "floor(double)" , "DOUBLE" } } ; private static final AliasDescriptor [ ] SYSFUN_AD = new AliasDescriptor [ DataDictionaryImpl . SYSFUN_FUNCTIONS . length ] ; private static final String [ ] SYSFUN_PNAME = new String [ ] { "P1" } ; private static final int [ ] SYSFUN_PMODE = new int [ ] { JDBC30Translation . PARAMETER_MODE_IN } ; private TabInfoImpl [ ] coreInfo ; protected SchemaDescriptor systemSchemaDesc ; protected SchemaDescriptor sysIBMSchemaDesc ; protected SchemaDescriptor declaredGlobalTemporaryTablesSchemaDesc ; protected SchemaDescriptor systemDiagSchemaDesc ; protected SchemaDescriptor systemUtilSchemaDesc ; private String systemSchemaName ; private String systemDiagSchemaName ; private String systemUtilSchemaName ; private String sysIBMSchemaName ; private String declaredGlobalTemporaryTablesSchemaName ; boolean builtinSchemasAreFromLCC ; protected boolean convertIdToLower ; private static final String [ ] nonCoreNames = new String [ ] { "SYSCONSTRAINTS" , "SYSKEYS" , "SYSDEPENDS" , "SYSALIASES" , "SYSVIEWS" , "SYSCHECKS" , "SYSFOREIGNKEYS" , "SYSSTATEMENTS" , "SYSFILES" , "SYSTRIGGERS" , "SYSSTATISTICS" , "SYSDUMMY1" , "SYSTABLEPERMS" , "SYSCOLPERMS" , "SYSROUTINEPERMS" } ; private static final int NUM_NONCORE = DataDictionaryImpl . nonCoreNames . length ; private static final String [ ] systemSchemaNames = new String [ ] { SchemaDescriptor . IBM_SYSTEM_CAT_SCHEMA_NAME , SchemaDescriptor . IBM_SYSTEM_FUN_SCHEMA_NAME , SchemaDescriptor . IBM_SYSTEM_PROC_SCHEMA_NAME , SchemaDescriptor . IBM_SYSTEM_STAT_SCHEMA_NAME , SchemaDescriptor . IBM_SYSTEM_NULLID_SCHEMA_NAME , SchemaDescriptor . STD_SYSTEM_DIAG_SCHEMA_NAME , SchemaDescriptor . STD_SYSTEM_UTIL_SCHEMA_NAME , SchemaDescriptor . IBM_SYSTEM_SCHEMA_NAME , SchemaDescriptor . STD_SQLJ_SCHEMA_NAME , SchemaDescriptor . STD_SYSTEM_SCHEMA_NAME } ; private DD_Version dictionaryVersion ; private DD_Version softwareVersion ; private String authorizationDatabaseOwner ; private boolean usesSqlAuthorization ; private TabInfoImpl [ ] noncoreInfo ; public DataDescriptorGenerator dataDescriptorGenerator ; protected DataValueFactory dvf ; protected AccessFactory af ; private ExecutionFactory exFactory ; protected UUIDFactory uuidFactory ; Properties startupParameters ; int engineType ; protected boolean booting ; private TransactionController bootingTC ; protected DependencyManager dmgr ; CacheManager OIDTdCache ; CacheManager nameTdCache ; private CacheManager spsNameCache ; private Hashtable spsIdHash ; int tdCacheSize ; int stmtCacheSize ; CacheManager permissionsCache ; int permissionsCacheSize ; ShExLockable cacheCoordinator ; public LockFactory lockFactory ; volatile int cacheMode = DataDictionary . COMPILE_ONLY_MODE ; volatile int ddlUsers ; volatile int readersInDDLMode ; public boolean readOnlyUpgrade ; private int systemSQLNameNumber ; private GregorianCalendar calendarForLastSystemSQLName = new GregorianCalendar ( ) ; private long timeForLastSystemSQLName ; private static final String [ ] sysUtilProceduresWithPublicAccess = new String [ ] { "SYSCS_SET_RUNTIMESTATISTICS" , "SYSCS_SET_STATISTICS_TIMING" , "SYSCS_INPLACE_COMPRESS_TABLE" , "SYSCS_COMPRESS_TABLE" } ; private static final String [ ] sysUtilFunctionsWithPublicAccess = new String [ ] { "SYSCS_GET_RUNTIMESTATISTICS" } ; public DataDictionaryImpl ( ) { } public boolean canSupport ( Properties startParams ) { } public void boot ( boolean create , Properties startParams ) throws StandardException { <START_BUG> softwareVersion = new DD_Version ( this , DataDictionary . DD_VERSION_DERBY_10_2 ) ; <END_BUG> convertIdToLower = false ; startupParameters = startParams ; uuidFactory = Monitor . getMonitor ( ) . getUUIDFactory ( ) ; engineType = Monitor . getEngineType ( startParams ) ; LanguageConnectionFactory langConnFactory = ( ( LanguageConnectionFactory ) ( Monitor . bootServiceModule ( create , this , MODULE , startParams ) ) ) ; dvf = langConnFactory . getDataValueFactory ( ) ; exFactory = ( ( ExecutionFactory ) ( Monitor . bootServiceModule ( create , this , ExecutionFactory . MODULE , startParams ) ) ) ; initializeCatalogInfo ( ) ; booting = true ; if ( ( dataDescriptorGenerator ) == null ) { dataDescriptorGenerator = new DataDescriptorGenerator ( this ) ; } if ( ! create ) { coreInfo [ DataDictionaryImpl . SYSTABLES_CORE_NUM ] . setHeapConglomerate ( getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSTABLES_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSTABLES_CORE_NUM ] . setIndexConglomerate ( SYSTABLES_INDEX1_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSTABLES_INDEX1_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSTABLES_CORE_NUM ] . setIndexConglomerate ( SYSTABLES_INDEX2_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSTABLES_INDEX2_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSCOLUMNS_CORE_NUM ] . setHeapConglomerate ( getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSCOLUMNS_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSCOLUMNS_CORE_NUM ] . setIndexConglomerate ( SYSCOLUMNS_INDEX1_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSCOLUMNS_INDEX1_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSCOLUMNS_CORE_NUM ] . setIndexConglomerate ( SYSCOLUMNS_INDEX2_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSCOLUMNS_INDEX2_ID , false ) ) ; coreInfo [ DataDictionaryImpl . SYSCONGLOMERATES_CORE_NUM ] . setHeapConglomerate ( getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSCONGLOMERATES_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSCONGLOMERATES_CORE_NUM ] . setIndexConglomerate ( SYSCONGLOMERATES_INDEX1_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSCONGLOMERATES_INDEX1_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSCONGLOMERATES_CORE_NUM ] . setIndexConglomerate ( SYSCONGLOMERATES_INDEX2_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSCONGLOMERATES_INDEX2_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSCONGLOMERATES_CORE_NUM ] . setIndexConglomerate ( SYSCONGLOMERATES_INDEX3_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSCONGLOMERATES_INDEX3_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSSCHEMAS_CORE_NUM ] . setHeapConglomerate ( getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSSCHEMAS_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSSCHEMAS_CORE_NUM ] . setIndexConglomerate ( SYSSCHEMAS_INDEX1_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSSCHEMAS_INDEX1_ID , true ) ) ; coreInfo [ DataDictionaryImpl . SYSSCHEMAS_CORE_NUM ] . setIndexConglomerate ( SYSSCHEMAS_INDEX2_ID , getBootParameter ( startParams , DataDictionaryImpl . CFG_SYSSCHEMAS_INDEX2_ID , true ) ) ; } String value = startParams . getProperty ( LANG_TD_CACHE_SIZE ) ; tdCacheSize = PropertyUtil . intPropertyValue ( LANG_TD_CACHE_SIZE , value , 0 , Integer . MAX_VALUE , LANG_TD_CACHE_SIZE_DEFAULT ) ; value = startParams . getProperty ( LANG_SPS_CACHE_SIZE ) ; stmtCacheSize = PropertyUtil . intPropertyValue ( LANG_SPS_CACHE_SIZE , value , 0 , Integer . MAX_VALUE , LANG_SPS_CACHE_SIZE_DEFAULT ) ; value = startParams . getProperty ( LANG_PERMISSIONS_CACHE_SIZE ) ; permissionsCacheSize = PropertyUtil . intPropertyValue ( LANG_PERMISSIONS_CACHE_SIZE , value , 0 , Integer . MAX_VALUE , LANG_PERMISSIONS_CACHE_SIZE_DEFAULT ) ; CacheFactory cf = ( ( CacheFactory ) ( Monitor . startSystemModule ( org . apache . derby . iapi . reference . Module . CacheFactory ) ) ) ; OIDTdCache = cf . newCacheManager ( this , "TableDescriptorOIDCache" , tdCacheSize , tdCacheSize ) ;

Fix:
softwareVersion = new DD_Version ( this , DataDictionary . DD_VERSION_DERBY_10_3 ) ;