Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,6 @@ dependencies {
implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'
implementation 'io.jsonwebtoken:jjwt-gson:0.11.5'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

Excel 내보내기 기능과 관련된 ExcelExport.javaExcelExportInterceptor.java 파일이 코드베이스에 남아있는데, Apache POI 의존성을 제거하셨습니다. 이 변경으로 인해 Excel 내보내기 기능이 동작할 때 ClassNotFoundException이 발생할 가능성이 매우 높습니다.

Excel 내보내기 기능을 제거하려는 의도였다면 관련 클래스 파일들도 함께 제거해야 합니다. 만약 기능이 유지되어야 한다면, 이 의존성들은 다시 추가되어야 합니다.

    // Excel Export
    implementation 'org.apache.poi:poi-ooxml:5.2.3'
    implementation 'org.apache.poi:poi:5.2.3'

// Excel Export
implementation 'org.apache.poi:poi-ooxml:5.2.3'
implementation 'org.apache.poi:poi:5.2.3'

// Logging
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml"
Expand All @@ -74,7 +70,7 @@ dependencies {
testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:1.1.11")

// Rest Docs & Swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

springdoc-openapi 2.7.0 Spring Boot 3.4.0 compatibility

💡 Result:

Short answer: springdoc-openapi 2.7.0 is listed as compatible with Spring Boot 3.4.x, but there are reported problems with the specific combination springdoc 2.7.0 + Spring Boot 3.4.0; the springdoc project recommends using the latest 2.x release (2.8.x) for Boot 3.4.x. [1][2]

Sources:

  • springdoc compatibility matrix (shows 3.4.x ↔ 2.7.x–2.8.x; recommends latest 2.x such as 2.8.x). [1]
  • Reported GitHub issue where swagger UI is not available with Spring Boot 3.4.0 + springdoc 2.7.0. [2]

🌐 Web query:

springdoc-openapi 2.7.0 release notes changelog

💡 Result:

Here are the v2.7.0 release notes / changelog highlights for springdoc-openapi:

  • Release: v2.7.0 (published Mar 21, 2025 on Maven; GitHub release entry 23 Nov timestamp shown). [1][2]
  • Added: SortAsQueryParam annotation, OAS v3.1 webhooks support, RequestBody-as-meta-annotation support, Encoding tests for multiple files/JSON payloads, display nullable request body with map type, README Gradle import. [1]
  • Changed/upgraded: spring-boot → 3.4.0; swagger-ui → 5.18.2; swagger-core → 2.2.25; spring-security-oauth2-authorization-server → 1.4.0; spring-cloud-function → 4.2.0-M1. [1]
  • Fixed (selected): fixes for bad schema return type with generic wrapper, issues loading API after spring-boot 3.4.0-M2, Swagger UI context-path problems, @hidden on controller class level, Kotlin ByteArray descriptions, preserving default media type order, content schema generation for @apiresponse, operationId deduplication with multiple content types, @JsonUnwrapped with PolymorphicConverter, Boolean parameter @Schema type bug, various other bug fixes and test fixes. [1]

Sources:

  • GitHub release v2.7.0 (full changelog). [1]
  • Maven repository index for springdoc-openapi starter artifacts (shows 2.7.0 published 2025-03-21). [2]

References:
[1] https://github.com/springdoc/springdoc-openapi/releases/tag/v2.7.0
[2] https://maven.wso2.org/nexus/content/repositories/public/org/springdoc/springdoc-openapi-starter-webmvc-ui/ (directory listing showing 2.7.0)


🏁 Script executed:

cd /root && find . -name "build.gradle" -type f 2>/dev/null | head -5

Repository: debate-timer/debate-timer-be

Length of output: 127


🏁 Script executed:

# Check if there are references to poi (Excel) in the codebase
rg "poi|excel|Excel" -i --type gradle --type java -c

Repository: debate-timer/debate-timer-be

Length of output: 678


🏁 Script executed:

cat -n build.gradle

Repository: debate-timer/debate-timer-be

Length of output: 5023


🏁 Script executed:

head -50 src/main/java/com/debatetimer/controller/tool/export/ExcelExport.java

Repository: debate-timer/debate-timer-be

Length of output: 383


🏁 Script executed:

head -50 src/main/java/com/debatetimer/controller/tool/export/ExcelExportInterceptor.java

Repository: debate-timer/debate-timer-be

Length of output: 1900


springdoc-openapi 버전을 2.8.x로 업그레이드하세요. 2.7.0은 Spring Boot 3.4.0과의 호환성 문제가 보고되었습니다.

springdoc-openapi 공식 문서에서는 Spring Boot 3.4.x와 호환성을 위해 2.8.x 버전을 권장합니다. 2.7.0은 Spring Boot 3.4.0-M2에 대한 수정사항을 포함하지만, 최종 릴리스(3.4.0)와의 조합에서는 보고된 문제가 있습니다. 2.8.x를 사용하면 NoSuchMethodError 문제를 안정적으로 해결할 수 있습니다.

또한 build.gradle에는 Apache POI 의존성이 없으므로, 원본 리뷰 코멘트의 "Excel 라이브러리 제거" 언급은 부정확합니다.

🤖 Prompt for AI Agents
build.gradle around line 73: the springdoc-openapi dependency is pinned to 2.7.0
which has reported incompatibilities with Spring Boot 3.4.x; update the
dependency to a 2.8.x release (e.g., 2.8.0 or the latest 2.8.x) in build.gradle,
refresh/resolve Gradle dependencies (./gradlew --refresh-dependencies), and run
the test suite to confirm the NoSuchMethodError is resolved; also remove or
correct any review note about Apache POI in PR text since build.gradle does not
contain that dependency.

testImplementation 'io.rest-assured:rest-assured:5.5.0'
testImplementation 'org.springframework.restdocs:spring-restdocs-restassured'
testImplementation 'com.epages:restdocs-api-spec-mockmvc:0.18.2'
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/com/debatetimer/config/WebConfig.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.debatetimer.config;

import com.debatetimer.controller.tool.export.ExcelExportInterceptor;
import com.debatetimer.controller.tool.jwt.AuthManager;
import com.debatetimer.service.auth.AuthService;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
Expand All @@ -21,9 +19,4 @@ public class WebConfig implements WebMvcConfigurer {
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(new AuthMemberArgumentResolver(authManager, authService));
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new ExcelExportInterceptor());
}
}

This file was deleted.

This file was deleted.