I have the following code to form a url, but some clients have reported exception at the for loop. java.util.ConcurrentModificationException at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
List<NameValuePair> requestParams = adRequest
.createRequestParamsList(view.getContext());
RequestTask currentTask = new RequestTask(this,
view.getUserAgent(), view.getContext(), keyCode);
try {
currentTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
baseRequestUrl + Request.REQ_URI, requestParams);
} catch (Exception e) {
}
String debugUrl = "";
synchronized (this) {
debugUrl = baseRequestUrl + Request.REQ_URI + "?";
for (Iterator<NameValuePair> iterator = requestParams.iterator(); iterator.hasNext();) {
NameValuePair nvp = iterator.next();
debugUrl = debugUrl + nvp.getName() + "=" + nvp.getValue() + "&";
}
debugUrl = debugUrl.substring(0, debugUrl.length() - 1);
}
requestParam is modified in RequestTask. why would it fail?