From 7abcc50965da3c0a092b3681e5678707c57e537b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EB=AF=B8?= Date: Thu, 6 Aug 2026 15:38:05 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20sort=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=97=86=EB=8A=94=20=EC=9A=94=EC=B2=AD=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=B0=9C=EC=83=9D=ED=95=98=EB=8D=98=20500=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GET /api/public-course를 쿼리 파라미터 없이(예: 그냥 /api/public-course) 호출하면 HttpServletRequest.getQueryString()이 null을 반환하는데, SortStatusIdResolver가 이를 null 체크 없이 split()하다가 NPE(500)로 이어지던 버그를 수정했다. sort 키가 없는 경우와 동일하게 기본값("date")으로 처리하도록 했다. --- .../server/common/resolver/sort/SortStatusIdResolver.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/runnect/server/common/resolver/sort/SortStatusIdResolver.java b/src/main/java/org/runnect/server/common/resolver/sort/SortStatusIdResolver.java index 8da9425..7a3fa6d 100644 --- a/src/main/java/org/runnect/server/common/resolver/sort/SortStatusIdResolver.java +++ b/src/main/java/org/runnect/server/common/resolver/sort/SortStatusIdResolver.java @@ -31,8 +31,11 @@ public boolean supportsParameter(MethodParameter parameter) { public Object resolveArgument(@NotNull MethodParameter parameter, ModelAndViewContainer modelAndViewContainer, @NotNull NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { final HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest(); String queryString = request.getQueryString(); - Map> splitQuery = Util.splitQuery(queryString); - + // 쿼리 파라미터가 하나도 없으면(예: ~url~/public-course) getQueryString()이 null을 반환해 + // split()에서 NPE(500)가 나던 부분 — sort 키가 없는 경우와 동일하게 기본값으로 처리한다. + Map> splitQuery = queryString == null + ? Collections.emptyMap() + : Util.splitQuery(queryString); if(!splitQuery.containsKey("sort") || splitQuery.get("sort").get(0)==null){ // 1번째 조건 : ~url~/public-course