@Override public void create( File filename, long highId, boolean throwIfFileExists ) { delegate.create( filename, highId, throwIfFileExists ); }
private void createIdGenerator( File fileName ) { idGeneratorFactory.create( fileName, 0, false ); }
private void flushIdFiles( NeoStores neoStores, StoreType[] storeTypes ) { for ( StoreType type : storeTypes ) { if ( type.isRecordStore() ) { RecordStore<AbstractBaseRecord> recordStore = neoStores.getRecordStore( type ); Optional<File> idFile = databaseLayout.idFile( type.getDatabaseFile() ); idFile.ifPresent( f -> idGeneratorFactory.create( f, recordStore.getHighId(), false ) ); } } } }
protected void initialiseNewStoreFile( PagedFile file ) throws IOException { if ( getNumberOfReservedLowIds() > 0 ) { try ( PageCursor pageCursor = file.io( 0, PF_SHARED_WRITE_LOCK ) ) { if ( pageCursor.next() ) { pageCursor.setOffset( 0 ); createHeaderRecord( pageCursor ); if ( pageCursor.checkAndClearBoundsFlag() ) { throw new UnderlyingStorageException( "Out of page bounds when writing header; page size too small: " + pageCache.pageSize() + " bytes." ); } } } } // Determine record size right after writing the header since some stores // use it when initializing their stores to write some records. recordSize = determineRecordSize(); idGeneratorFactory.create( idFile, getNumberOfReservedLowIds(), false ); }
@Test public void logModuleSetUpError() { Config config = Config.defaults(); IdGeneratorFactory idGeneratorFactory = mock( IdGeneratorFactory.class ); Throwable openStoresError = new RuntimeException( "Can't set up modules" ); doThrow( openStoresError ).when( idGeneratorFactory ).create( any( File.class ), anyLong(), anyBoolean() ); CommunityIdTypeConfigurationProvider idTypeConfigurationProvider = new CommunityIdTypeConfigurationProvider(); AssertableLogProvider logProvider = new AssertableLogProvider(); SimpleLogService logService = new SimpleLogService( logProvider, logProvider ); PageCache pageCache = pageCacheRule.getPageCache( fs.get() ); Dependencies dependencies = new Dependencies(); dependencies.satisfyDependencies( idGeneratorFactory, idTypeConfigurationProvider, config, logService ); NeoStoreDataSource dataSource = dsRule.getDataSource( dir.databaseLayout(), fs.get(), pageCache, dependencies ); try { dataSource.start(); fail( "Exception expected" ); } catch ( Exception e ) { assertEquals( openStoresError, e ); } logProvider.assertAtLeastOnce( inLog( NeoStoreDataSource.class ).warn( equalTo( "Exception occurred while setting up store modules. Attempting to close things down." ), equalTo( openStoresError ) ) ); }
@Override public void create( File filename, long highId, boolean throwIfFileExists ) { delegate.create( filename, highId, throwIfFileExists ); }
@Override public void create( File filename, long highId, boolean throwIfFileExists ) { delegate.create( filename, highId, throwIfFileExists ); }
private void createIdGenerator( File fileName ) { idGeneratorFactory.create( fileName, 0, false ); }
private void flushIdFiles( NeoStores neoStores, StoreType[] storeTypes ) { for ( StoreType type : storeTypes ) { if ( type.isRecordStore() ) { RecordStore<AbstractBaseRecord> recordStore = neoStores.getRecordStore( type ); Optional<File> idFile = databaseLayout.idFile( type.getDatabaseFile() ); idFile.ifPresent( f -> idGeneratorFactory.create( f, recordStore.getHighId(), false ) ); } } } }
protected void initialiseNewStoreFile( PagedFile file ) throws IOException { if ( getNumberOfReservedLowIds() > 0 ) { try ( PageCursor pageCursor = file.io( 0, PF_SHARED_WRITE_LOCK ) ) { if ( pageCursor.next() ) { pageCursor.setOffset( 0 ); createHeaderRecord( pageCursor ); if ( pageCursor.checkAndClearBoundsFlag() ) { throw new UnderlyingStorageException( "Out of page bounds when writing header; page size too small: " + pageCache.pageSize() + " bytes." ); } } } } // Determine record size right after writing the header since some stores // use it when initializing their stores to write some records. recordSize = determineRecordSize(); idGeneratorFactory.create( idFile, getNumberOfReservedLowIds(), false ); }