본문 바로가기

Programing

(393)
[Spring Data Redis] Pipelining 에서 ClassCastException 발생 호출하는 코드는 5.11. Pipelining 의 예제와 동일한 형태이다.그런데 아래와 같은 Cast 예외가 발생한다.java.lang.ClassCastException: com.sun.proxy.$Proxy163 cannot be cast to org.springframework.data.redis.connection.StringRedisConnectionStackOverflow에 유사한 질문이 있다.https://stackoverflow.com/questions/50680948/java-lang-classcastexception-com-sun-proxy-proxy219-cannot-be-cast-to-org-spri/53665591그런데 해결책으로 나오는 것이 딱히 맘에 들지 않는다.인라인 구현에서 ..
[hikari.pool] 커넥션 누수가 감지되었지만 오탐이다 HikariCP 3.1.0을 사용하고 있다. 백그라운드 처리가 필요해서 별도의 스레드로 느리게 처리되는 곳에서 JPA작업을 하고 있었다.그런데 아래와 같은 WARN 로그가 보였다. 결과부터 이야기하면 커넥션이 회수가 안되어 누수(leak)이 감지되었다는 것이다.2018-12-04 17:55:51.378 WARN 14050 --- [ool housekeeper] com.zaxxer.hikari.pool.ProxyLeakTask [] : Connection leak detection triggered for org.mariadb.jdbc.MariaDbConnection@4ebeb6b9 on thread Thread-19, stack trace follows그런데 신기하게도 백그라운드 스레드가 끝나는 로그 이..
[SpringBoot] Exception Handler에서 ResponseStatus에 reason를 적으면... 삽질 할 뻔한 예외 처리기... Exception Handler에서 ResponseStatus에 reason를 적으면 return 한 형태의 객체로 반환이 안되고 임의의 형태로 반환된다.@RestControllerAdvice public class ApiExceptionHandler { @ExceptionHandler(NotFoundJobException.class) @ResponseStatus(value = HttpStatus.NOT_FOUND, reason="No Job Found") public AcAuthResult notCompletedJobExceptionHandler(NotFoundJobException ex) { return AcAuthResult.builder() .jobId(ex.get..
HikariPool - Thread starvation or clock leap detected 메세지 퇴근시에 로컬에서 웹 어플리케이션을 띄어놓고 퇴근한다.출근할 때 아래와 같은 경고 로그가 다량 떠있다.2018-11-28 02:44:21.892 WARN 2135 --- [ool housekeeper] com.zaxxer.hikari.pool.HikariPool : api-dev-conn-pool - Thread starvation or clock leap detected (housekeeper delta=2h28s701ms).2018-11-28 02:45:46.788 WARN 2135 --- [ool housekeeper] com.zaxxer.hikari.pool.HikariPool : api-dev-conn-pool - Thread starvation or clock leap detected (hou..
[SpringBoot] yml에서 Duration 사용하기는 2.1 부터 지원 yml 프로퍼티에서 Duration 사용을 하고 있었다. pilot 프로젝트에서는 @Value로 잘 주입이 되는데, 본 branch로 해당 설정 코드를 옮겨오니 아래와 같은 에러가 발생했다. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demoBean' defined in com.github.detouched.DemoValueApp: Unsatisfied dependency expressed through method 'demoBean' parameter 0; nested exception is org.springframework.beans.ConversionNotSupport..
Redis Cheet Sheet https://lzone.de/cheat-sheet/Redis
[Gradle] build.gradle - Repository that could not be found Repository that could not be found다시 말해 리포지토리를 찾을 수 없습니다.위의 Repository는 내가 만든 클래스이고, 스프링의 org.springframework.data.repository.CrudRepository를 상속받은 인터페이스이다. 아래와 같이 뼈대만 있다.public interface JobRepository extends CrudRepository { } 근데 왜 잘 돌아가던 애플리케이션이 갑자기 안돌아갔을까? 이것 때문에 어제 야근을 했다. 혹시 또 일어날 수도 있고 겪을 수도 있기 때문에 기록으로 남긴다.결론적으로 원인은 build.gradle의 설정을 바꾸어주었기 때문이었다.좀 더 구체적으로 이야기하면 이전에 아래의 위와 같이 되어 있는 것을comp..
[Git] gradlew.bat 이 계속 바뀐다... 프로젝트 설정.Gradle Wrapper와의 싸움이 시작되었다.싸움이라기 보다 Git에 커밋을 했는데 계속 바뀌었다고 나오는 것이다.$ git status현재 브랜치 feature/backend커밋할 변경 사항: (스테이지 해제하려면 "git reset HEAD ..."을 사용하십시오) 수정함: gradlew.bat 그 파일 이름은 gradlew.bat. 윈도우에서 사용하는 배치 파일이라 파일 줄바꿈이 가 아닌 로 되어 있기 때문이다.아래 명령으로 현재 설정되어 있는 autocrlf처리는 input으로 되어 있었다.$ git config --global core.autocrlfinput이것을 잠깐 해결하기 위해 설정을 false로 바꾼다.git config --global core.autocrlf fal..