Source:
<code>public void start() throws StoreException { synchronized (lock) { if (started) { throw new StoreException("Store already started", StoreErrorCodes.Store_Already_Started); } final Timer.Context context = metrics.storeStartTime.time(); try { File dataFile = new File(dataDir); if (!dataFile.exists()) { logger.info("Store : data directory not found. creating it", dataDir); boolean created = dataFile.mkdir(); if (!created) { throw new StoreException("Failed to create directory for data dir " + dataDir, StoreErrorCodes.Initialization_Error); } } if (!dataFile.isDirectory() || !dataFile.canRead()) { throw new StoreException(dataFile.getAbsolutePath() + " is either not a directory or is not readable", StoreErrorCodes.Initialization_Error); } fileLock = new FileLock(new File(dataDir, LockFile)); if (!fileLock.tryLock()) { throw new StoreException( "Failed to acquire lock on file " + dataDir + ". Another process or thread is using this directory.", StoreErrorCodes.Initialization_Error); } File storeDescriptorFile = new File(dataDir, STORE_DESCRIPTOR); <START> StoreDescriptor storeDescriptor = null; <END> if (storeDescriptorFile.exists()) { DataInputStream dataInputStream = new DataInputStream(new FileInputStream(storeDescriptorFile)); storeDescriptor = StoreDescriptor.fromBytes(dataInputStream); } else { storeDescriptor = new StoreDescriptor(storeId, UUID.randomUUID()); } log = new Log(dataDir, capacityInBytes, config.storeSegmentSizeInBytes, metrics); index = new PersistentIndex(dataDir, taskScheduler, log, config, factory, recovery, hardDelete, metrics, time, storeDescriptor.incarnationId); metrics.initializeLogGauges(log, capacityInBytes); started = true; } catch (Exception e) { metrics.storeStartFailure.inc(); throw new StoreException("Error while starting store for dir " + dataDir, e, StoreErrorCodes.Initialization_Error); } finally { context.stop(); } } }</code><technical_language>initialization null is required</technical_language>

Target:
public void start() throws StoreException { synchronized (lock) { if (started) { throw new StoreException("Store already started", StoreErrorCodes.Store_Already_Started); } final Timer.Context context = metrics.storeStartTime.time(); try { File dataFile = new File(dataDir); if (!dataFile.exists()) { logger.info("Store : data directory not found. creating it", dataDir); boolean created = dataFile.mkdir(); if (!created) { throw new StoreException("Failed to create directory for data dir " + dataDir, StoreErrorCodes.Initialization_Error); } } if (!dataFile.isDirectory() || !dataFile.canRead()) { throw new StoreException(dataFile.getAbsolutePath() + " is either not a directory or is not readable", StoreErrorCodes.Initialization_Error); } fileLock = new FileLock(new File(dataDir, LockFile)); if (!fileLock.tryLock()) { throw new StoreException( "Failed to acquire lock on file " + dataDir + ". Another process or thread is using this directory.", StoreErrorCodes.Initialization_Error); } StoreDescriptor storeDescriptor = new StoreDescriptor(dataDir); log = new Log(dataDir, capacityInBytes, config.storeSegmentSizeInBytes, metrics); index = new PersistentIndex(dataDir, taskScheduler, log, config, factory, recovery, hardDelete, metrics, time, storeDescriptor.getIncarnationId()); metrics.initializeLogGauges(log, capacityInBytes); started = true; } catch (Exception e) { metrics.storeStartFailure.inc(); throw new StoreException("Error while starting store for dir " + dataDir, e, StoreErrorCodes.Initialization_Error); } finally { context.stop(); } } }