Author: jawi
Date: Thu Mar 29 07:25:07 2012
New Revision: 1306730
URL: http://svn.apache.org/viewvc?rev=1306730&view=rev
Log:
ACE-237: fixed possible exception when retrieving auditlog events for targets without any.
Modified:
ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java
Modified: ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java
URL: http://svn.apache.org/viewvc/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java?rev=1306730&r1=1306729&r2=1306730&view=diff
==============================================================================
--- ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java
(original)
+++ ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java
Thu Mar 29 07:25:07 2012
@@ -192,23 +192,20 @@ public class RESTClientServlet extends H
else if (isTarget && ACTION_AUDITEVENTS.equals(action)) {
StatefulTargetObject target = (StatefulTargetObject) repositoryObject;
List<LogEvent> events = target.getAuditEvents();
+
String startValue = req.getParameter("start");
String maxValue = req.getParameter("max");
+
int start = (startValue == null) ? 0 : Integer.parseInt(startValue);
- if (start < 0) {
- start = 0;
- }
- if (start >= events.size()) {
- start = events.size() - 1;
- }
+ // ACE-237: ensure the start-value is a correctly bounded positive integer...
+ start = Math.max(0, Math.min(events.size() - 1, start));
+
int max = (maxValue == null) ? 100 : Integer.parseInt(maxValue);
- if (max < 1) {
- max = 1;
- }
- int end = start + max;
- if (end > events.size()) {
- end = events.size();
- }
+ // ACE-237: ensure the max- & end-values are correctly bounded...
+ max = Math.max(1, max);
+
+ int end = Math.min(events.size(), start + max);
+
List<LogEvent> selection = events.subList(start, end);
resp.getWriter().println(m_gson.toJson(selection));
return;
|