return cookie;
}
- /**
- * Writes all the cookies being maintained in the set being returned by
- * {@link #getCookies(boolean)} to the underlying file.
- * <p>
- * Session-cookies will not be persisted.
- *
- * @param url
- * url for which to write the cookies (important to derive
- * default values for non-explicitly set attributes)
- * @throws IOException
- * if the underlying cookie file could not be read or written or
- * a problem with the lock file
- * @throws InterruptedException
- * if the thread is interrupted while waiting for the lock
- */
- public void write(URL url) throws IOException, InterruptedException {
- try {
- byte[] cookieFileContent = getFileContentIfModified();
- if (cookieFileContent != null) {
- LOG.debug("Reading the underlying cookie file '{}' " //$NON-NLS-1$
- + "as it has been modified since " //$NON-NLS-1$
- + "the last access", //$NON-NLS-1$
- path);
- // reread new changes if necessary
- Set<HttpCookie> cookiesFromFile = NetscapeCookieFile
- .parseCookieFile(cookieFileContent, creationDate);
- this.cookies = mergeCookies(cookiesFromFile, cookies);
- }
- } catch (FileNotFoundException e) {
- // ignore if file previously did not exist yet!
- }
-
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- try (Writer writer = new OutputStreamWriter(output,
- StandardCharsets.US_ASCII)) {
- write(writer, cookies, url, creationDate);
- }
- LockFile lockFile = new LockFile(path.toFile());
- for (int retryCount = 0; retryCount < LOCK_ACQUIRE_MAX_RETRY_COUNT; retryCount++) {
- if (lockFile.lock()) {
- try {
- lockFile.setNeedSnapshot(true);
- lockFile.write(output.toByteArray());
- if (!lockFile.commit()) {
- throw new IOException(MessageFormat.format(
- JGitText.get().cannotCommitWriteTo, path));
- }
- } finally {
- lockFile.unlock();
- }
- return;
- }
- Thread.sleep(LOCK_ACQUIRE_RETRY_SLEEP);
- }
- throw new IOException(
- MessageFormat.format(JGitText.get().cannotLock, lockFile));
- }
-
/**
* Read the underying file and return its content but only in case it has
* been modified since the last access.
}
- private byte[] hash(final byte[] in) {
+ private static byte[] hash(final byte[] in) {
return Constants.newMessageDigest().digest(in);
}
+ /**
+ * Writes all the cookies being maintained in the set being returned by
+ * {@link #getCookies(boolean)} to the underlying file.
+ * <p>
+ * Session-cookies will not be persisted.
+ *
+ * @param url
+ * url for which to write the cookies (important to derive
+ * default values for non-explicitly set attributes)
+ * @throws IOException
+ * if the underlying cookie file could not be read or written or
+ * a problem with the lock file
+ * @throws InterruptedException
+ * if the thread is interrupted while waiting for the lock
+ */
+ public void write(URL url) throws IOException, InterruptedException {
+ try {
+ byte[] cookieFileContent = getFileContentIfModified();
+ if (cookieFileContent != null) {
+ LOG.debug("Reading the underlying cookie file '{}' " //$NON-NLS-1$
+ + "as it has been modified since " //$NON-NLS-1$
+ + "the last access", //$NON-NLS-1$
+ path);
+ // reread new changes if necessary
+ Set<HttpCookie> cookiesFromFile = NetscapeCookieFile
+ .parseCookieFile(cookieFileContent, creationDate);
+ this.cookies = mergeCookies(cookiesFromFile, cookies);
+ }
+ } catch (FileNotFoundException e) {
+ // ignore if file previously did not exist yet!
+ }
+
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ try (Writer writer = new OutputStreamWriter(output,
+ StandardCharsets.US_ASCII)) {
+ write(writer, cookies, url, creationDate);
+ }
+ LockFile lockFile = new LockFile(path.toFile());
+ for (int retryCount = 0; retryCount < LOCK_ACQUIRE_MAX_RETRY_COUNT; retryCount++) {
+ if (lockFile.lock()) {
+ try {
+ lockFile.setNeedSnapshot(true);
+ lockFile.write(output.toByteArray());
+ if (!lockFile.commit()) {
+ throw new IOException(MessageFormat.format(
+ JGitText.get().cannotCommitWriteTo, path));
+ }
+ } finally {
+ lockFile.unlock();
+ }
+ return;
+ }
+ Thread.sleep(LOCK_ACQUIRE_RETRY_SLEEP);
+ }
+ throw new IOException(
+ MessageFormat.format(JGitText.get().cannotLock, lockFile));
+ }
+
/**
* Writes the given cookies to the file in the Netscape Cookie File Format
* (also used by curl).