Buggy code:
, new String [ ] { "SIGN" , "INTEGER" , "org.apache.derby.catalog.SystemProcedures" , "SIGN(double)" , "true" , "DOUBLE" } , new String [ ] { "RANDOM" , "DOUBLE" , "java.lang.StrictMath" , "random()" , "false" } , new String [ ] { "RAND" , "DOUBLE" , "org.apache.derby.catalog.SystemProcedures" , "RAND(int)" , "false" , "INTEGER" } , new String [ ] { "COT" , "DOUBLE" , "org.apache.derby.catalog.SystemProcedures" , "COT(double)" , "true" , "DOUBLE" } , new String [ ] { "COSH" , "DOUBLE" , "org.apache.derby.catalog.SystemProcedures" , "COSH(double)" , "true" , "DOUBLE" } , new String [ ] { "SINH" , "DOUBLE" , "org.apache.derby.catalog.SystemProcedures" , "SINH(double)" , "true" , "DOUBLE" } , new String [ ] { "TANH" , "DOUBLE" , "org.apache.derby.catalog.SystemProcedures" , "TANH(double)" , "true" , "DOUBLE" } } ; private static final int SYSFUN_DETERMINISTIC_INDEX = 4 ; private static final int SYSFUN_FIRST_PARAMETER_INDEX = 5 ; private static final AliasDescriptor [ ] SYSFUN_AD = new AliasDescriptor [ DataDictionaryImpl . SYSFUN_FUNCTIONS . length ] ; private TabInfoImpl [ ] coreInfo ; private SchemaDescriptor systemSchemaDesc ; private SchemaDescriptor sysIBMSchemaDesc ; private SchemaDescriptor declaredGlobalTemporaryTablesSchemaDesc ; private SchemaDescriptor systemUtilSchemaDesc ; private static final String [ ] nonCoreNames = new String [ ] { "SYSCONSTRAINTS" , "SYSKEYS" , "SYSDEPENDS" , "SYSALIASES" , "SYSVIEWS" , "SYSCHECKS" , "SYSFOREIGNKEYS" , "SYSSTATEMENTS" , "SYSFILES" , "SYSTRIGGERS" , "SYSSTATISTICS" , "SYSDUMMY1" , "SYSTABLEPERMS" , "SYSCOLPERMS" , "SYSROUTINEPERMS" , "SYSROLES" } ; 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 ; private DataValueFactory dvf ; 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" , "SYSCS_UPDATE_STATISTICS" } ; private static final String [ ] sysUtilFunctionsWithPublicAccess = new String [ ] { "SYSCS_GET_RUNTIMESTATISTICS" } ; private int collationTypeOfSystemSchemas ; private int collationTypeOfUserSchemas ; 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_5 ) ; <END_BUG> startupParameters = startParams ; uuidFactory = Monitor . getMonitor ( ) . getUUIDFactory ( ) ; engineType = Monitor . getEngineType ( startParams ) ; collationTypeOfSystemSchemas = StringDataValue . COLLATION_TYPE_UCS_BASIC ; getBuiltinSystemSchemas ( ) ; 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 ) ;

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