Skip to content

Commit 6c7c1de

Browse files
authored
Issue #159: Increase HTTP read timeouts (#160)
1 parent 261de61 commit 6c7c1de

File tree

6 files changed

+65
-47
lines changed

6 files changed

+65
-47
lines changed

dev/com.ibm.microclimate.core/src/com/ibm/microclimate/core/internal/HttpUtil.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public static HttpResult get(URI uri) throws IOException {
8888
connection = (HttpURLConnection) uri.toURL().openConnection();
8989

9090
connection.setRequestMethod("GET");
91-
connection.setReadTimeout(10000);
91+
connection.setReadTimeout(30000);
9292

9393
return new HttpResult(connection);
9494
} finally {
@@ -106,7 +106,7 @@ public static HttpResult post(URI uri, JSONObject payload) throws IOException {
106106
connection = (HttpURLConnection) uri.toURL().openConnection();
107107

108108
connection.setRequestMethod("POST");
109-
connection.setReadTimeout(10000);
109+
connection.setReadTimeout(30000);
110110

111111
if (payload != null) {
112112
connection.setRequestProperty("Content-Type", "application/json");
@@ -131,7 +131,7 @@ public static HttpResult post(URI uri) throws IOException {
131131
try {
132132
connection = (HttpURLConnection) uri.toURL().openConnection();
133133
connection.setRequestMethod("POST");
134-
connection.setReadTimeout(10000);
134+
connection.setReadTimeout(30000);
135135
return new HttpResult(connection);
136136
} finally {
137137
if (connection != null) {
@@ -148,7 +148,7 @@ public static HttpResult put(URI uri) throws IOException {
148148
connection = (HttpURLConnection) uri.toURL().openConnection();
149149

150150
connection.setRequestMethod("PUT");
151-
connection.setReadTimeout(10000);
151+
connection.setReadTimeout(30000);
152152

153153
return new HttpResult(connection);
154154
} finally {
@@ -166,7 +166,7 @@ public static HttpResult head(URI uri) throws IOException {
166166
connection = (HttpURLConnection) uri.toURL().openConnection();
167167

168168
connection.setRequestMethod("HEAD");
169-
connection.setReadTimeout(10000);
169+
connection.setReadTimeout(30000);
170170

171171
return new HttpResult(connection);
172172
} finally {
@@ -184,7 +184,7 @@ public static HttpResult delete(URI uri) throws IOException {
184184
connection = (HttpURLConnection) uri.toURL().openConnection();
185185

186186
connection.setRequestMethod("DELETE");
187-
connection.setReadTimeout(10000);
187+
connection.setReadTimeout(30000);
188188

189189
return new HttpResult(connection);
190190
} finally {

dev/com.ibm.microclimate.core/src/com/ibm/microclimate/core/internal/MicroclimateApplicationFactory.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,14 @@ public static void updateApp(MicroclimateApplication mcApp, JSONObject appJso) {
214214
String contextRoot = null;
215215
if (appJso.has(MCConstants.KEY_CONTEXTROOT)) {
216216
contextRoot = appJso.getString(MCConstants.KEY_CONTEXTROOT);
217+
} else if (appJso.has(MCConstants.KEY_CONTEXT_ROOT)) {
218+
contextRoot = appJso.getString(MCConstants.KEY_CONTEXT_ROOT);
217219
} else if (appJso.has(MCConstants.KEY_CUSTOM)) {
218220
JSONObject custom = appJso.getJSONObject(MCConstants.KEY_CUSTOM);
219221
if (custom.has(MCConstants.KEY_CONTEXTROOT)) {
220222
contextRoot = custom.getString(MCConstants.KEY_CONTEXTROOT);
223+
} else if (custom.has(MCConstants.KEY_CONTEXT_ROOT)) {
224+
contextRoot = custom.getString(MCConstants.KEY_CONTEXT_ROOT);
221225
}
222226
}
223227
mcApp.setContextRoot(contextRoot);

dev/com.ibm.microclimate.core/src/com/ibm/microclimate/core/internal/connection/MicroclimateSocket.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,8 @@ private void onProjectSettingsChanged(JSONObject event) throws JSONException {
373373
// Update context root
374374
if (event.has(MCConstants.KEY_CONTEXT_ROOT)) {
375375
app.setContextRoot(event.getString(MCConstants.KEY_CONTEXT_ROOT));
376+
} else if (event.has(MCConstants.KEY_CONTEXTROOT)) {
377+
app.setContextRoot(event.getString(MCConstants.KEY_CONTEXTROOT));
376378
}
377379

378380
// TODO: need to update ports?

dev/com.ibm.microclimate.ui/src/com/ibm/microclimate/ui/internal/messages/Messages.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ public class Messages extends NLS {
148148
public static String NewProjectPage_ProjectExistsError;
149149
public static String NewProjectPage_EclipseProjectExistsError;
150150
public static String NewProjectPage_InvalidProjectName;
151-
public static String NewProjectPage_ProjectCreateErrorTitle;
152-
public static String NewProjectPage_ProjectCreateErrorMsg;
151+
public static String NewProjectWizard_CreateProjectJobTitle;
152+
public static String NewProjectWizard_ProjectCreateErrorMsg;
153153

154154
static {
155155
// initialize resource bundle

dev/com.ibm.microclimate.ui/src/com/ibm/microclimate/ui/internal/messages/messages.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,5 +141,5 @@ NewProjectPage_ProjectNameLabel=Project name:
141141
NewProjectPage_ProjectExistsError=A Microclimate project named {0} already exists. Choose a unique name.
142142
NewProjectPage_EclipseProjectExistsError=The import button is selected but an Eclipse project named {0} already exists. Choose a unique name.
143143
NewProjectPage_InvalidProjectName=Use only lower case letters and numbers in the project name.
144-
NewProjectPage_ProjectCreateErrorTitle=Project Create Error
145-
NewProjectPage_ProjectCreateErrorMsg=An error occurred trying to create Microclimate project {0}: {1}
144+
NewProjectWizard_CreateProjectJobTitle=Creating project: {0}
145+
NewProjectWizard_ProjectCreateErrorMsg=An error occurred trying to create Microclimate project {0}

dev/com.ibm.microclimate.ui/src/com/ibm/microclimate/ui/internal/wizards/NewMicroclimateProjectWizard.java

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,27 @@
1111

1212
package com.ibm.microclimate.ui.internal.wizards;
1313

14+
import java.io.IOException;
1415
import java.util.List;
1516

1617
import org.eclipse.core.resources.IProject;
1718
import org.eclipse.core.resources.ResourcesPlugin;
19+
import org.eclipse.core.runtime.IProgressMonitor;
20+
import org.eclipse.core.runtime.IStatus;
21+
import org.eclipse.core.runtime.Status;
22+
import org.eclipse.core.runtime.jobs.Job;
1823
import org.eclipse.jface.wizard.Wizard;
1924
import org.eclipse.osgi.util.NLS;
2025
import org.eclipse.swt.widgets.Display;
26+
import org.json.JSONException;
2127

2228
import com.ibm.microclimate.core.internal.MCLogger;
2329
import com.ibm.microclimate.core.internal.MCUtil;
2430
import com.ibm.microclimate.core.internal.MicroclimateApplication;
2531
import com.ibm.microclimate.core.internal.connection.IOperationHandler;
2632
import com.ibm.microclimate.core.internal.connection.MicroclimateConnection;
2733
import com.ibm.microclimate.core.internal.console.ProjectTemplateInfo;
34+
import com.ibm.microclimate.ui.MicroclimateUIPlugin;
2835
import com.ibm.microclimate.ui.internal.actions.ImportProjectAction;
2936
import com.ibm.microclimate.ui.internal.messages.Messages;
3037
import com.ibm.microclimate.ui.internal.views.ViewHelper;
@@ -53,51 +60,56 @@ public boolean performFinish() {
5360
return false;
5461
}
5562

56-
ProjectTemplateInfo info = newProjectPage.getProjectTemplateInfo();
57-
String name = newProjectPage.getProjectName();
63+
final ProjectTemplateInfo info = newProjectPage.getProjectTemplateInfo();
64+
final String name = newProjectPage.getProjectName();
5865
if (info == null || name == null) {
5966
MCLogger.logError("The project type or name was null for the new project wizard");
6067
return false;
6168
}
6269

63-
try {
64-
final boolean importProject = newProjectPage.importProject();
65-
connection.getMCSocket().registerProjectCreateHandler(name, new IOperationHandler() {
66-
@Override
67-
public void operationComplete(boolean passed, String msg) {
68-
connection.getMCSocket().deregisterProjectCreateHandler(name);
69-
if (passed) {
70-
MicroclimateApplication app = connection.getAppByName(name);
71-
if (app != null) {
72-
Display.getDefault().asyncExec(new Runnable() {
73-
@Override
74-
public void run() {
75-
ViewHelper.expandConnection(connection);
76-
}
77-
});
78-
if (importProject) {
79-
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(app.name);
80-
if (project == null || !project.exists()) {
81-
ImportProjectAction.importProject(app);
82-
} else {
83-
// This should not happen since the wizard checks for this
84-
MCLogger.logError("The project cannot be imported because a project already exists with the name: " + app.name);
85-
}
70+
final boolean importProject = newProjectPage.importProject();
71+
connection.getMCSocket().registerProjectCreateHandler(name, new IOperationHandler() {
72+
@Override
73+
public void operationComplete(boolean passed, String msg) {
74+
connection.getMCSocket().deregisterProjectCreateHandler(name);
75+
if (passed) {
76+
MicroclimateApplication app = connection.getAppByName(name);
77+
if (app != null) {
78+
Display.getDefault().asyncExec(new Runnable() {
79+
@Override
80+
public void run() {
81+
ViewHelper.expandConnection(connection);
82+
}
83+
});
84+
if (importProject) {
85+
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(app.name);
86+
if (project == null || !project.exists()) {
87+
ImportProjectAction.importProject(app);
88+
} else {
89+
// This should not happen since the wizard checks for this
90+
MCLogger.logError("The project cannot be imported because a project already exists with the name: " + app.name);
8691
}
87-
return;
88-
} else {
89-
MCLogger.logError("An import operation was requested but the application could not be found for: " + name);
9092
}
93+
return;
94+
} else {
95+
MCLogger.logError("An import operation was requested but the application could not be found for: " + name);
9196
}
9297
}
93-
});
94-
connection.requestProjectCreate(info, name);
95-
return true;
96-
} catch (Exception e) {
97-
MCLogger.logError("An error occured trying to create a project with type: " + info.getExtension() + ", and name: " + name, e);
98-
MCUtil.openDialog(true, Messages.NewProjectPage_ProjectCreateErrorTitle,
99-
NLS.bind(Messages.NewProjectPage_ProjectCreateErrorMsg, new String[] {name, e.getMessage()}));
100-
return false;
101-
}
98+
}
99+
});
100+
Job job = new Job(NLS.bind(Messages.NewProjectWizard_CreateProjectJobTitle, name)) {
101+
@Override
102+
protected IStatus run(IProgressMonitor monitor) {
103+
try {
104+
connection.requestProjectCreate(info, name);
105+
return Status.OK_STATUS;
106+
} catch (Exception e) {
107+
MCLogger.logError("An error occurred creating project: " + name, e);
108+
return new Status(IStatus.ERROR, MicroclimateUIPlugin.PLUGIN_ID, NLS.bind(Messages.NewProjectWizard_ProjectCreateErrorMsg, name), e);
109+
}
110+
}
111+
};
112+
job.schedule();
113+
return true;
102114
}
103115
}

0 commit comments

Comments
 (0)