基本的に私は簡単なニュースアプリを持っています。誰かがニュースを追加したり削除したりするたびに自動的にニュースリストを更新したいのですが、ちょっとだけConcurrentModificationExceptionが表示されます。 :春の長いポーリングConcurrentModificationException
@GetMapping("/pollnews")
@ResponseBody
public DeferredResult<ModelAndView> poll(Model model){
DeferredResult<ModelAndView> result = new DeferredResult<>();
new Thread(new Runnable() {
@Override
public void run() {
while(true){
if(changeOccured){
changeOccured = false;
model.addAttribute("news", newsService.getAllNews());
result.setResult(new ModelAndView("partial"));
break;
}
}
}
}).start();
return result;
}
スタックトレース:
Exception in thread "Thread-13" java.util.ConcurrentModificationException
at java.util.ArrayList.sort(ArrayList.java:1456)
at com.newsapp.SpringNews.Service.NewsService.getAllNews(NewsService.java:25)
at com.newsapp.SpringNews.Controller.ViewController$1.run(ViewController.java:125)
at java.lang.Thread.run(Thread.java:748)
あなたは例外が発生する行を指定しますか? – Lino
これはnewsServiceクラスとgetAllnews()メソッドで発生しますが、このpoll()メソッドを間違って記述していると思うので問題ありません。問題はおそらくそこにあります... –
あなたの質問にスタックトレースを追加できますか?あなたのメソッドに間違っているとは思わないので、 – Lino