我在app引擎上的任务servlet中遇到问题。 有时我收到一个arraylist indexoutofbound异常。 我已正确添加3个字符串(子域)到arraylist的日志打印,但是当我尝试访问时:
stringUser.add(entry.getTitle().getPlainText()+"@"+listaDeiSottodomini.get(o));
我收到:
Uncaught exception from servlet java.lang.IndexOutOfBoundsException: Index: 9, Size: 4
或
Uncaught exception from servlet java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
或
Uncaught exception from servlet java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
怎么可能?这是我的代码
String [] sottodomini=subdomains.split(",");
listaDeiSottodomini.add(consumerKey);
if(sottodomini.length>0 ){
for(int y=0;y<sottodomini.length;y++){
if(!sottodomini[y].equals("")){
log.info("Aggiungo "+sottodomini[y]+" alla lista dei sottodomini abilitati al contact sharing");
listaDeiSottodomini.add(sottodomini[y]);
}
}
}
log.info("ArrayList value "+listaDeiSottodomini);
try {
UserService myService = new UserService("My Application");
myService.setOAuthCredentials(oauthParameters, signer);
for(int o=0;o<listaDeiSottodomini.size();o++){
URL metafeedUrl = new URL("https://apps-apis.google.com/a/feeds/"+listaDeiSottodomini.get(o)+"/user/2.0");
while (metafeedUrl != null) {
UserFeed resultFeed;
resultFeed = myService.getFeed(metafeedUrl, UserFeed.class);
entries.addAll(resultFeed.getEntries());
for(int i=0; i<resultFeed.getEntries().size(); i++) {
UserEntry entry = resultFeed.getEntries().get(i);
if(!entry.getLogin().getSuspended()){
stringUser.add(entry.getTitle().getPlainText()+"@"+listaDeiSottodomini.get(o));
}else{
log.warning("L'utente "+entry.getTitle().getPlainText()+"@"+listaDeiSottodomini.get(o)+" è in stato sospeso e quindi non è stato considerato nella procedura di condivisione");
}
}
// Check for next page
Link nextLink = resultFeed.getNextLink();
if (nextLink == null) {
metafeedUrl = null;
} else {
metafeedUrl = new URL(nextLink.getHref());
}
}
}
} catch (AppsForYourDomainException e) {
log.warning("Errore di AppsForYourDomainException nel recupero degli utenti con messaggio "+e.getMessage().toString());
} catch (ServiceException e) {
log.warning("Errore di ServiceException nel recupero degli utenti con messaggio "+e.getMessage().toString());
} catch (OAuthException e) {
log.warning("Errore di OAuthException nel recupero degli utenti con messaggio "+e.getMessage().toString());
}
}