private void runParser() {
		logger.debug("Start 'runParser'");
		Path currentFile = null;
		while (true) {
			try {
				currentFile = pathStorage.get();
				try {
					File fileForParsing = currentFile.toFile();
					logger.debug("Start parsing '{}' file", currentFile);
					FileInputStream stream = new FileInputStream(fileForParsing);
					Runnable parser = new PaymentParser(stream, paymentStorage);
					Future<Path> fileForDelete = executor.submit(parser,
							currentFile);
					logger.debug(
							"File '{}' was successfully parsed and add for delete",
							currentFile);
					deletePathStorage.put(fileForDelete);

				} catch (FileNotFoundException e) {
					logger.error(
							"File '{}' not found or can't be read. Put it back to pathStorage",
							e);
					pathStorage.put(currentFile);

				}
			} catch (InterruptedException e) {
				logger.debug("'ThreadsManager' thread was interrupted", e);
				return;
			} catch (JAXBException e) {
				logger.error("Error during parsing xml {} {}",
						currentFile.toAbsolutePath(), e.getMessage());
			}
		}
	}