Skip to content

Commit 22bffd0

Browse files
committed
Improved handling of exceptions.
1 parent b0bf7ed commit 22bffd0

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

src/main/java/org/gitlab4j/api/systemhooks/SystemHookManager.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,22 +147,32 @@ public SystemHookEvent handleRequest(HttpServletRequest request) throws GitLabAp
147147
}
148148

149149
// Unmarshal the tree to a concrete instance of a SystemHookEvent and fire the event to any listeners
150+
SystemHookEvent event;
150151
try {
151152

152-
SystemHookEvent event = jacksonJson.unmarshal(SystemHookEvent.class, tree);
153+
event = jacksonJson.unmarshal(SystemHookEvent.class, tree);
153154
if (LOGGER.isLoggable(Level.FINE)) {
154155
LOGGER.fine(event.getEventName() + "\n" + jacksonJson.marshal(event) + "\n");
155156
}
156157

157158
StringBuffer requestUrl = request.getRequestURL();
158159
event.setRequestUrl(requestUrl != null ? requestUrl.toString() : null);
159160
event.setRequestQueryString(request.getQueryString());
161+
162+
} catch (Exception e) {
163+
LOGGER.warning(String.format("Error processing JSON data, exception=%s, error=%s",
164+
e.getClass().getSimpleName(), e.getMessage()));
165+
throw new GitLabApiException(e);
166+
}
167+
168+
try {
169+
160170
fireEvent(event);
161171
return (event);
162172

163173
} catch (Exception e) {
164-
LOGGER.warning("Error processing JSON data, exception=" +
165-
e.getClass().getSimpleName() + ", error=" + e.getMessage());
174+
LOGGER.warning(String.format("Error processing event, exception=%s, error=%s",
175+
e.getClass().getSimpleName(), e.getMessage()));
166176
throw new GitLabApiException(e);
167177
}
168178
}

src/main/java/org/gitlab4j/api/webhook/WebHookManager.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ public Event handleRequest(HttpServletRequest request) throws GitLabApiException
116116
throw new GitLabApiException(message);
117117
}
118118

119+
Event event;
119120
try {
120121

121-
Event event;
122122
if (LOGGER.isLoggable(Level.FINE)) {
123123
LOGGER.fine(HttpRequestUtils.getShortRequestDump(eventName + " webhook", true, request));
124124
String postData = HttpRequestUtils.getPostDataAsString(request);
@@ -130,13 +130,22 @@ public Event handleRequest(HttpServletRequest request) throws GitLabApiException
130130
event = jacksonJson.unmarshal(Event.class, reader);
131131
}
132132

133+
} catch (Exception e) {
134+
LOGGER.warning(String.format("Error processing JSON data, exception=%s, error=%s",
135+
e.getClass().getSimpleName(), e.getMessage()));
136+
throw new GitLabApiException(e);
137+
}
138+
139+
try {
140+
133141
event.setRequestUrl(request.getRequestURL().toString());
134142
event.setRequestQueryString(request.getQueryString());
135143
fireEvent(event);
136144
return (event);
137145

138146
} catch (Exception e) {
139-
LOGGER.warning("Error parsing JSON data, exception=" + e.getClass().getSimpleName() + ", error=" + e.getMessage());
147+
LOGGER.warning(String.format("Error processing event, exception=%s, error=%s",
148+
e.getClass().getSimpleName(), e.getMessage()));
140149
throw new GitLabApiException(e);
141150
}
142151
}

0 commit comments

Comments
 (0)