aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/http/NetscapeCookieFile.java118
1 files changed, 59 insertions, 59 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/http/NetscapeCookieFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/http/NetscapeCookieFile.java
index c8db52dd52..e16adb9bfb 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/http/NetscapeCookieFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/transport/http/NetscapeCookieFile.java
@@ -278,64 +278,6 @@ public final class NetscapeCookieFile {
}
/**
- * 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.
* <p>
@@ -395,11 +337,69 @@ public final class NetscapeCookieFile {
}
- 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).
*