728x90
반응형
⚡문제 상황
더보기
더보기
2024-06-10T16:12:19.324+09:00 ERROR 12272 --- [exercise_board] [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed: java.lang.StackOverflowError] with root cause
java.lang.StackOverflowError: null
at org.board.exercise_board.user.domain.model.User.getPassword(User.java:77) ~[main/:na]
at org.board.exercise_board.user.domain.model.User.getPassword(User.java:77) ~[main/:na]
스택 오버 플로우가 발생했다.
🪝 문제의 코드
User.java
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@AuditOverride(forClass = BaseEntity.class)
public class User extends BaseEntity implements UserDetails {
private String password;
/**
생략
**/
@Override
public String getPassword() { // 스택 오버 플로우가 발생하는 메서드
return this.getPassword();
}
@Override
public String getUsername() {
return this.getLoginId();
}
💊 문제 원인
재귀호출로 인해서 스택 오버 플로우가 발생하였다.
☀️ 해결 코드
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@AuditOverride(forClass = BaseEntity.class)
public class User extends BaseEntity implements UserDetails {
private String password;
/**
생략
**/
@Override
public String getPassword() { // 수정된 코드
return this.password;
}
@Override
public String getUsername() {
return this.loginId;
}
재귀적으로 메서드를 호출하지 않고 바로 객체를 반환하도록 하여 해결했다.
반응형
'Knowledge > Trouble Shooting' 카테고리의 다른 글
JWT 토큰 사용 시 인증이 되지 않았다는 문제 발생 (0) | 2024.07.05 |
---|---|
순환 참조(Circular References) 해결 (0) | 2024.06.10 |
웹소켓 STOMP 에러 트러블 슈팅 (0) | 2024.05.27 |
Inferred type 'S' for type parameter 'S' is not within its bound; (0) | 2024.05.05 |
java.lang.NullPointerException: Cannot invoke "org.board.exercise_board.User.Security.CustomUserDetails.getUsername()" because "customUserDetails" is null (0) | 2024.04.02 |