Я пытаюсь создать Set только с именами. По какой-то причине я получаю исключение java.util.ConcurrentModificationException, и это происходит, когда я вызываю post.getTags().stream().map(Tag::getName).collect(Collectors.toSet()). Я также использую Lombok для генерации геттеров и сеттеров, если это играет какую-то роль. Что может быть не так? Спасибо, что уделили время!
Опубликовать модель
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "posts")
public class Post {
@Id
@GeneratedValue(generator = "UUID")
@Column(updatable = false, nullable = false)
private UUID id;
@Column(nullable = false, length = 255)
private String title;
@Column(nullable = false, columnDefinition = "TEXT")
private String content;
@ManyToOne
@JoinColumn(name = "author_id", nullable = false)
private User author;
@ManyToOne
@JoinColumn(name = "category_id")
private Category category;
@ManyToMany
@JoinTable(
name = "post_tags",
joinColumns = @JoinColumn(name = "post_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id")
)
private Set tags;
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
private List comments;
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
private List
views;
@Column(nullable = false, updatable = false)
@CreationTimestamp
private Date createdAt;
@Column(nullable = false)
@UpdateTimestamp
private Date updatedAt;
}
post mapper
@Component
@RequiredArgsConstructor
public class PostMapper {
private final CommentMapper commentMapper;
public PostResponseDTO toResponsePostDto(Post post) {
return new PostResponseDTO(
post.getId(),
post.getTitle(),
post.getContent(),
post.getAuthor().getId(),
post.getAuthor().getUsername(),
post.getCategory(),
post.getTags().stream().map(Tag::getName).collect(Collectors.toSet()),
post.getComments().stream().map(comment -> commentMapper.toResponseCommentDto(comment)).toList(),
post.getViews().size(),
post.getCreatedAt(),
post.getUpdatedAt());
}
}
PostResponseDTO
@Data
@AllArgsConstructor
public class PostResponseDTO {
private UUID id;
private String title;
private String content;
private UUID authorId;
private String authorUsername;
private Category category;
private Set tags;
private List comments;
private long viewsCount;
private Date createdAt;
private Date updatedAt;
}
модель тега
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "tags")
public class Tag {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@Column(nullable = false, unique = true, length = 100)
private String name;
@ManyToMany(mappedBy = "tags")
private Set
posts;
}
stack trace
2025-01-27T12:53:47.501+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL
/* */ select
p1_0.id,
p1_0.author_id,
p1_0.category_id,
p1_0.content,
p1_0.created_at,
p1_0.title,
p1_0.updated_at
from
posts p1_0
Hibernate:
/* */ select
p1_0.id,
p1_0.author_id,
p1_0.category_id,
p1_0.content,
p1_0.created_at,
p1_0.title,
p1_0.updated_at
from
posts p1_0
2025-01-27T12:53:47.531+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
Hibernate:
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
2025-01-27T12:53:47.551+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
Hibernate:
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
2025-01-27T12:53:47.553+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
Hibernate:
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
2025-01-27T12:53:47.555+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
Hibernate:
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
2025-01-27T12:53:47.556+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
Hibernate:
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
2025-01-27T12:53:47.558+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
Hibernate:
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
2025-01-27T12:53:47.567+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
Hibernate:
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
2025-01-27T12:53:47.572+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
p1_0.tag_id,
p1_1.id,
p1_1.author_id,
a1_0.id,
a1_0.avatar_url,
a1_0.created_at,
a1_0.email,
a1_0.password_hash,
a1_0.updated_at,
a1_0.username,
c1_0.id,
c1_0.created_at,
c1_0.name,
p1_1.content,
p1_1.created_at,
p1_1.title,
p1_1.updated_at
from
post_tags p1_0
join
posts p1_1
on p1_1.id=p1_0.post_id
left join
users a1_0
on a1_0.id=p1_1.author_id
left join
categories c1_0
on c1_0.id=p1_1.category_id
where
p1_0.tag_id=?
Hibernate:
select
p1_0.tag_id,
p1_1.id,
p1_1.author_id,
a1_0.id,
a1_0.avatar_url,
a1_0.created_at,
a1_0.email,
a1_0.password_hash,
a1_0.updated_at,
a1_0.username,
c1_0.id,
c1_0.created_at,
c1_0.name,
p1_1.content,
p1_1.created_at,
p1_1.title,
p1_1.updated_at
from
post_tags p1_0
join
posts p1_1
on p1_1.id=p1_0.post_id
left join
users a1_0
on a1_0.id=p1_1.author_id
left join
categories c1_0
on c1_0.id=p1_1.category_id
where
p1_0.tag_id=?
2025-01-27T12:53:47.575+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
r1_0.user_id,
r1_1.id,
r1_1.created_at,
r1_1.description,
r1_1.name
from
user_roles r1_0
join
roles r1_1
on r1_1.id=r1_0.role_id
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_1.id,
r1_1.created_at,
r1_1.description,
r1_1.name
from
user_roles r1_0
join
roles r1_1
on r1_1.id=r1_0.role_id
where
r1_0.user_id=?
2025-01-27T12:53:47.578+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
Hibernate:
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
2025-01-27T12:53:47.585+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Failed to complete request: java.util.ConcurrentModificationException
2025-01-27T12:53:47.586+02:00 ERROR 2600 --- [blog-project] [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.util.ConcurrentModificationException] with root cause
java.util.ConcurrentModificationException: null
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1096) ~[na:na]
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1050) ~[na:na]
at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:337) ~[na:na]
at org.hibernate.collection.spi.PersistentSet.injectLoadedState(PersistentSet.java:311) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.internal.LoadingCollectionEntryImpl.finishLoading(LoadingCollectionEntryImpl.java:78) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.jdbc.internal.JdbcValuesSourceProcessingStateStandardImpl.finishLoadingCollections(JdbcValuesSourceProcessingStateStandardImpl.java:171) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.jdbc.internal.JdbcValuesSourceProcessingStateStandardImpl.finishUp(JdbcValuesSourceProcessingStateStandardImpl.java:142) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:205) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:35) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:224) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:102) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.executeQuery(JdbcSelectExecutor.java:91) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:165) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:142) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:132) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.loader.ast.internal.CollectionLoaderSingleKey.load(CollectionLoaderSingleKey.java:120) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:748) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:69) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1724) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.lambda$initialize$3(AbstractPersistentCollection.java:616) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:265) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:614) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.read(AbstractPersistentCollection.java:138) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.PersistentSet.iterator(PersistentSet.java:166) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at java.base/java.util.Spliterators$IteratorSpliterator.estimateSize(Spliterators.java:1959) ~[na:na]
at java.base/java.util.Spliterator.getExactSizeIfKnown(Spliterator.java:414) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:569) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[na:na]
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:727) ~[na:na]
at com.group.blog_project.mapper.PostMapper.toResponsePostDto(PostMapper.java:35) ~[main/:na]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:215) ~[na:na]
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1709) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:636) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:291) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:656) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:662) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:667) ~[na:na]
at com.group.blog_project.service.PostService.getAllPosts(PostService.java:46) ~[main/:na]
at com.group.blog_project.controller.PostController.getAllPosts(PostController.java:23) ~[main/:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:257) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.2.2.jar:6.2.2]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.34.jar:6.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.2.2.jar:6.2.2]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.34.jar:6.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar:6.2.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar:6.2.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar:6.2.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at java.base/java.lang.Thread.run(Thread.java:1575) ~[na:na]
Подробнее здесь: https://stackoverflow.com/questions/793 ... g-with-set
Получение concurrentModificationException при работе с SET ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1737975356
Anonymous
Я пытаюсь создать Set только с именами. По какой-то причине я получаю исключение java.util.ConcurrentModificationException, и это происходит, когда я вызываю post.getTags().stream().map(Tag::getName).collect(Collectors.toSet()). Я также использую Lombok для генерации геттеров и сеттеров, если это играет какую-то роль. Что может быть не так? Спасибо, что уделили время!
[b]Опубликовать модель[/b]
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "posts")
public class Post {
@Id
@GeneratedValue(generator = "UUID")
@Column(updatable = false, nullable = false)
private UUID id;
@Column(nullable = false, length = 255)
private String title;
@Column(nullable = false, columnDefinition = "TEXT")
private String content;
@ManyToOne
@JoinColumn(name = "author_id", nullable = false)
private User author;
@ManyToOne
@JoinColumn(name = "category_id")
private Category category;
@ManyToMany
@JoinTable(
name = "post_tags",
joinColumns = @JoinColumn(name = "post_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id")
)
private Set tags;
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
private List comments;
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
private List
views;
@Column(nullable = false, updatable = false)
@CreationTimestamp
private Date createdAt;
@Column(nullable = false)
@UpdateTimestamp
private Date updatedAt;
}
[b] post mapper [/b]
@Component
@RequiredArgsConstructor
public class PostMapper {
private final CommentMapper commentMapper;
public PostResponseDTO toResponsePostDto(Post post) {
return new PostResponseDTO(
post.getId(),
post.getTitle(),
post.getContent(),
post.getAuthor().getId(),
post.getAuthor().getUsername(),
post.getCategory(),
post.getTags().stream().map(Tag::getName).collect(Collectors.toSet()),
post.getComments().stream().map(comment -> commentMapper.toResponseCommentDto(comment)).toList(),
post.getViews().size(),
post.getCreatedAt(),
post.getUpdatedAt());
}
}
[b]PostResponseDTO[/b]
@Data
@AllArgsConstructor
public class PostResponseDTO {
private UUID id;
private String title;
private String content;
private UUID authorId;
private String authorUsername;
private Category category;
private Set tags;
private List comments;
private long viewsCount;
private Date createdAt;
private Date updatedAt;
}
[b] модель тега [/b]
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "tags")
public class Tag {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@Column(nullable = false, unique = true, length = 100)
private String name;
@ManyToMany(mappedBy = "tags")
private Set
posts;
}
[b] stack trace [/b]
2025-01-27T12:53:47.501+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL
/* */ select
p1_0.id,
p1_0.author_id,
p1_0.category_id,
p1_0.content,
p1_0.created_at,
p1_0.title,
p1_0.updated_at
from
posts p1_0
Hibernate:
/* */ select
p1_0.id,
p1_0.author_id,
p1_0.category_id,
p1_0.content,
p1_0.created_at,
p1_0.title,
p1_0.updated_at
from
posts p1_0
2025-01-27T12:53:47.531+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
Hibernate:
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
2025-01-27T12:53:47.551+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
Hibernate:
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
2025-01-27T12:53:47.553+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
Hibernate:
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
2025-01-27T12:53:47.555+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
Hibernate:
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
2025-01-27T12:53:47.556+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
Hibernate:
select
u1_0.id,
u1_0.avatar_url,
u1_0.created_at,
u1_0.email,
u1_0.password_hash,
u1_0.updated_at,
u1_0.username
from
users u1_0
where
u1_0.id=?
2025-01-27T12:53:47.558+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
Hibernate:
select
c1_0.id,
c1_0.created_at,
c1_0.name
from
categories c1_0
where
c1_0.id=?
2025-01-27T12:53:47.567+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
Hibernate:
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
2025-01-27T12:53:47.572+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
p1_0.tag_id,
p1_1.id,
p1_1.author_id,
a1_0.id,
a1_0.avatar_url,
a1_0.created_at,
a1_0.email,
a1_0.password_hash,
a1_0.updated_at,
a1_0.username,
c1_0.id,
c1_0.created_at,
c1_0.name,
p1_1.content,
p1_1.created_at,
p1_1.title,
p1_1.updated_at
from
post_tags p1_0
join
posts p1_1
on p1_1.id=p1_0.post_id
left join
users a1_0
on a1_0.id=p1_1.author_id
left join
categories c1_0
on c1_0.id=p1_1.category_id
where
p1_0.tag_id=?
Hibernate:
select
p1_0.tag_id,
p1_1.id,
p1_1.author_id,
a1_0.id,
a1_0.avatar_url,
a1_0.created_at,
a1_0.email,
a1_0.password_hash,
a1_0.updated_at,
a1_0.username,
c1_0.id,
c1_0.created_at,
c1_0.name,
p1_1.content,
p1_1.created_at,
p1_1.title,
p1_1.updated_at
from
post_tags p1_0
join
posts p1_1
on p1_1.id=p1_0.post_id
left join
users a1_0
on a1_0.id=p1_1.author_id
left join
categories c1_0
on c1_0.id=p1_1.category_id
where
p1_0.tag_id=?
2025-01-27T12:53:47.575+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
r1_0.user_id,
r1_1.id,
r1_1.created_at,
r1_1.description,
r1_1.name
from
user_roles r1_0
join
roles r1_1
on r1_1.id=r1_0.role_id
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_1.id,
r1_1.created_at,
r1_1.description,
r1_1.name
from
user_roles r1_0
join
roles r1_1
on r1_1.id=r1_0.role_id
where
r1_0.user_id=?
2025-01-27T12:53:47.578+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] org.hibernate.SQL :
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
Hibernate:
select
t1_0.post_id,
t1_1.id,
t1_1.name
from
post_tags t1_0
join
tags t1_1
on t1_1.id=t1_0.tag_id
where
t1_0.post_id=?
2025-01-27T12:53:47.585+02:00 DEBUG 2600 --- [blog-project] [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Failed to complete request: java.util.ConcurrentModificationException
2025-01-27T12:53:47.586+02:00 ERROR 2600 --- [blog-project] [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.util.ConcurrentModificationException] with root cause
java.util.ConcurrentModificationException: null
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1096) ~[na:na]
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1050) ~[na:na]
at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:337) ~[na:na]
at org.hibernate.collection.spi.PersistentSet.injectLoadedState(PersistentSet.java:311) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.internal.LoadingCollectionEntryImpl.finishLoading(LoadingCollectionEntryImpl.java:78) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.jdbc.internal.JdbcValuesSourceProcessingStateStandardImpl.finishLoadingCollections(JdbcValuesSourceProcessingStateStandardImpl.java:171) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.jdbc.internal.JdbcValuesSourceProcessingStateStandardImpl.finishUp(JdbcValuesSourceProcessingStateStandardImpl.java:142) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:205) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:35) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:224) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:102) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.executeQuery(JdbcSelectExecutor.java:91) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:165) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:142) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:132) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.loader.ast.internal.CollectionLoaderSingleKey.load(CollectionLoaderSingleKey.java:120) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:748) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:69) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1724) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.lambda$initialize$3(AbstractPersistentCollection.java:616) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:265) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:614) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.AbstractPersistentCollection.read(AbstractPersistentCollection.java:138) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at org.hibernate.collection.spi.PersistentSet.iterator(PersistentSet.java:166) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final]
at java.base/java.util.Spliterators$IteratorSpliterator.estimateSize(Spliterators.java:1959) ~[na:na]
at java.base/java.util.Spliterator.getExactSizeIfKnown(Spliterator.java:414) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:569) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[na:na]
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:727) ~[na:na]
at com.group.blog_project.mapper.PostMapper.toResponsePostDto(PostMapper.java:35) ~[main/:na]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:215) ~[na:na]
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1709) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:636) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:291) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:656) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:662) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:667) ~[na:na]
at com.group.blog_project.service.PostService.getAllPosts(PostService.java:46) ~[main/:na]
at com.group.blog_project.controller.PostController.getAllPosts(PostController.java:23) ~[main/:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:257) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.2.2.jar:6.2.2]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.2.2.jar:6.2.2]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.34.jar:6.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.2.2.jar:6.2.2]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.34.jar:6.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar:6.2.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar:6.2.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.2.2.jar:6.2.2]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar:6.2.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.34.jar:10.1.34]
at java.base/java.lang.Thread.run(Thread.java:1575) ~[na:na]
Подробнее здесь: [url]https://stackoverflow.com/questions/79389092/getting-concurrentmodificationexception-while-working-with-set[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия