protected File getDeploymentHashDir(final byte[] deploymentHash, final boolean validate) { final String sha1 = HashUtil.bytesToHexString(deploymentHash); final String partA = sha1.substring(0, 2); final String partB = sha1.substring(2); final File base = new File(getRepoRoot(), partA); if (validate) { validateDir(base); } final File hashDir = new File(base, partB); if (validate && !hashDir.exists() && !hashDir.mkdirs()) { throw DeploymentRepositoryMessages.MESSAGES.cannotCreateDirectory( hashDir.getAbsolutePath()); } return hashDir; }