Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2009-09-24 08:29:45 +0000
committerspingel2009-09-24 08:29:45 +0000
commitc5d519eba7b9a1eb3488da2f6b1d4b96a6aef221 (patch)
treea97ba7e92904ae4b7a392e7ee3809d971c29698b /org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core
parentd93ad7a29d0bca471a6f4b7966e987d8ccb98dac (diff)
downloadorg.eclipse.mylyn.tasks-c5d519eba7b9a1eb3488da2f6b1d4b96a6aef221.tar.gz
org.eclipse.mylyn.tasks-c5d519eba7b9a1eb3488da2f6b1d4b96a6aef221.tar.xz
org.eclipse.mylyn.tasks-c5d519eba7b9a1eb3488da2f6b1d4b96a6aef221.zip
NEW - bug 275121: [performance] JIRA synchronization is very slow
https://bugs.eclipse.org/bugs/show_bug.cgi?id=275121
Diffstat (limited to 'org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core')
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java70
1 files changed, 12 insertions, 58 deletions
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java
index 6da41cb08..371d38773 100644
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java
+++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java
@@ -66,7 +66,6 @@ import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter.CompareOperat
import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
import org.eclipse.mylyn.internal.trac.core.util.TracHttpClientTransportFactory.TracHttpException;
-import org.eclipse.osgi.util.NLS;
/**
* Represents a Trac repository that is accessed through the Trac's query script and web interface.
@@ -104,17 +103,22 @@ public class TracWebClient extends AbstractTracClient {
} catch (IOException e) {
method.releaseConnection();
throw e;
+ } catch (RuntimeException e) {
+ method.releaseConnection();
+ throw e;
}
if (code == HttpURLConnection.HTTP_OK) {
return method;
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED || code == HttpURLConnection.HTTP_FORBIDDEN) {
- // login or re-authenticate due to an expired session
- method.releaseConnection();
- authenticated = false;
- authenticate(monitor);
} else {
- throw new TracHttpException(code);
+ method.releaseConnection();
+ if (code == HttpURLConnection.HTTP_UNAUTHORIZED || code == HttpURLConnection.HTTP_FORBIDDEN) {
+ // login or re-authenticate due to an expired session
+ authenticated = false;
+ authenticate(monitor);
+ } else {
+ throw new TracHttpException(code);
+ }
}
}
@@ -399,57 +403,7 @@ public class TracWebClient extends AbstractTracClient {
public TracRepositoryInfo validate(IProgressMonitor monitor) throws TracException {
GetMethod method = connect(repositoryUrl + "/", monitor); //$NON-NLS-1$
try {
- InputStream in = WebUtil.getResponseBodyAsStream(method, monitor);
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(in, method.getResponseCharSet()));
-
- boolean inFooter = false;
- boolean valid = false;
- String version = null;
-
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(reader, null);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.DIV) {
- String id = tag.getAttribute("id"); //$NON-NLS-1$
- inFooter = !tag.isEndTag() && "footer".equals(id); //$NON-NLS-1$
- } else if (tag.getTagType() == Tag.STRONG && inFooter) {
- version = getText(tokenizer);
- } else if (tag.getTagType() == Tag.A) {
- String id = tag.getAttribute("id"); //$NON-NLS-1$
- if ("tracpowered".equals(id)) { //$NON-NLS-1$
- valid = true;
- }
- }
- }
- }
-
- if (version != null) {
- if (version.startsWith("Trac 0.9")) { //$NON-NLS-1$
- return new TracRepositoryInfo(0, 0, 0, version);
- } else if (version.startsWith("Trac 0.10")) { //$NON-NLS-1$
- return new TracRepositoryInfo(0, 0, 1, version);
- } else if (version.startsWith("Trac 0.11")) { //$NON-NLS-1$
- return new TracRepositoryInfo(1, 0, 0, version);
- } else {
- throw new TracException(NLS.bind(Messages.TracWebClient_Trac_version_X_is_unsupported_Error,
- version));
- }
- }
-
- if (!valid) {
- throw new TracException("Not a valid Trac repository"); //$NON-NLS-1$
- }
-
- return new TracRepositoryInfo(version);
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new TracException(e);
- } catch (ParseException e) {
- throw new TracException(e);
+ return new TracRepositoryInfo();
} finally {
method.releaseConnection();
}

Back to the top