From 16ccad78672ae99d9fa7fd408d455a4caa05adb1 Mon Sep 17 00:00:00 2001 From: art Date: Tue, 22 Sep 2026 11:49:46 +0900 Subject: [PATCH] =?UTF-8?q?docs(analysis):=20=EC=B6=9C=EC=8B=9C=20?= =?UTF-8?q?=EC=A4=80=EB=B9=84=20=EA=B2=80=EC=A6=9D=EA=B3=BC=20=EB=B0=B0?= =?UTF-8?q?=ED=8F=AC=20=EC=B0=A8=EB=8B=A8=20=EC=9A=94=EC=9D=B8=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 362개 테스트 및 live WAR 빌드, 공개 화면 16회와 격리 DB 인증·모집글 흐름 검증. 운영 설정 패키징 누락과 신규 DB 시드 공백에 따라 라이브 출시 보류. Co-Authored-By: Codex --- .../20260922-114058/artifacts/browser.json | 146 ++++++ .../20260922-114058/artifacts/build.log | 455 ++++++++++++++++++ .../artifacts/db-observations.txt | 2 + .../artifacts/dependencies.log | 41 ++ .../artifacts/dependency-summary.txt | 1 + .../20260922-114058/artifacts/edge.json | 31 ++ .../20260922-114058/artifacts/flow.json | 149 ++++++ .../20260922-114058/artifacts/home-390.png | Bin 0 -> 92306 bytes .../20260922-114058/artifacts/http.json | 138 ++++++ .../20260922-114058/artifacts/live-http.json | 56 +++ .../artifacts/live-runtime.log | 209 ++++++++ .../20260922-114058/artifacts/posts-1440.png | Bin 0 -> 54853 bytes .../20260922-114058/artifacts/war.sha256 | 1 + .atp/work-session/20260922-114058/report.md | 72 +++ .../20260922-114058/research/graph-query.txt | 33 ++ .../20260922-114058/wait-wakeup-events.jsonl | 2 + docs/analysis/2026-09-22-release-readiness.md | 73 +++ docs/analysis/index.md | 2 + 18 files changed, 1411 insertions(+) create mode 100644 .atp/work-session/20260922-114058/artifacts/browser.json create mode 100644 .atp/work-session/20260922-114058/artifacts/build.log create mode 100644 .atp/work-session/20260922-114058/artifacts/db-observations.txt create mode 100644 .atp/work-session/20260922-114058/artifacts/dependencies.log create mode 100644 .atp/work-session/20260922-114058/artifacts/dependency-summary.txt create mode 100644 .atp/work-session/20260922-114058/artifacts/edge.json create mode 100644 .atp/work-session/20260922-114058/artifacts/flow.json create mode 100644 .atp/work-session/20260922-114058/artifacts/home-390.png create mode 100644 .atp/work-session/20260922-114058/artifacts/http.json create mode 100644 .atp/work-session/20260922-114058/artifacts/live-http.json create mode 100644 .atp/work-session/20260922-114058/artifacts/live-runtime.log create mode 100644 .atp/work-session/20260922-114058/artifacts/posts-1440.png create mode 100644 .atp/work-session/20260922-114058/artifacts/war.sha256 create mode 100644 .atp/work-session/20260922-114058/report.md create mode 100644 .atp/work-session/20260922-114058/research/graph-query.txt create mode 100644 .atp/work-session/20260922-114058/wait-wakeup-events.jsonl create mode 100644 docs/analysis/2026-09-22-release-readiness.md diff --git a/.atp/work-session/20260922-114058/artifacts/browser.json b/.atp/work-session/20260922-114058/artifacts/browser.json new file mode 100644 index 0000000..e8051a5 --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/browser.json @@ -0,0 +1,146 @@ +[ + { + "viewport": 1440, + "path": "/", + "status": 200, + "title": "bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 1440, + "path": "/posts", + "status": 200, + "title": "포스팅 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 1440, + "path": "/recruit", + "status": 200, + "title": "팀원 모집 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 1440, + "path": "/jams", + "status": 200, + "title": "게임잼 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 1440, + "path": "/login", + "status": 200, + "title": "로그인 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 1440, + "path": "/signup", + "status": 200, + "title": "회원가입 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 1440, + "path": "/terms", + "status": 200, + "title": "이용약관 - bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 1440, + "path": "/operation-policy", + "status": 200, + "title": "운영정책 - bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/", + "status": 200, + "title": "bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/posts", + "status": 200, + "title": "포스팅 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/recruit", + "status": 200, + "title": "팀원 모집 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/jams", + "status": 200, + "title": "게임잼 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/login", + "status": 200, + "title": "로그인 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/signup", + "status": 200, + "title": "회원가입 | bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/terms", + "status": 200, + "title": "이용약관 - bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + }, + { + "viewport": 390, + "path": "/operation-policy", + "status": 200, + "title": "운영정책 - bibimbap", + "horizontal_overflow": false, + "js_errors": [], + "failed_responses": [] + } +] \ No newline at end of file diff --git a/.atp/work-session/20260922-114058/artifacts/build.log b/.atp/work-session/20260922-114058/artifacts/build.log new file mode 100644 index 0000000..c6f6ab1 --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/build.log @@ -0,0 +1,455 @@ +[INFO] Scanning for projects... +[INFO] +[INFO] ----------------------< com.pandoli365:bibimbap >----------------------- +[INFO] Building bibimbap 0.0.1-SNAPSHOT +[INFO] from pom.xml +[INFO] --------------------------------[ war ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ bibimbap --- +[INFO] Copying 1 resource from src/main/resources to target/classes +[INFO] Copying 2 resources from src/main/resources to target/classes +[INFO] +[INFO] --- compiler:3.14.1:compile (default-compile) @ bibimbap --- +[INFO] Recompiling the module because of changed source code. +[INFO] Compiling 121 source files with javac [debug release 21] to target/classes +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ bibimbap --- +[INFO] skip non existing resourceDirectory /tmp/bibimbap-readiness-20260922/src/test/resources +[INFO] +[INFO] --- compiler:3.14.1:testCompile (default-testCompile) @ bibimbap --- +[INFO] Recompiling the module because of changed dependency. +[INFO] Compiling 32 source files with javac [debug release 21] to target/test-classes +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[INFO] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/controller/api/GameLikeControllerTest.java: /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/controller/api/GameLikeControllerTest.java uses or overrides a deprecated API. +[INFO] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/controller/api/GameLikeControllerTest.java: Recompile with -Xlint:deprecation for details. +[INFO] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java: /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java has additional uses or overrides of a deprecated API that is marked for removal. +[INFO] +[INFO] --- surefire:3.5.5:test (default-test) @ bibimbap --- +[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider +[INFO] +[INFO] ------------------------------------------------------- +[INFO] T E S T S +[INFO] ------------------------------------------------------- +[INFO] Running com.pandoli365.bibimbap.BibimbapApplicationTests +02:41:31.807 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.pandoli365.bibimbap.BibimbapApplicationTests]: BibimbapApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +02:41:31.866 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.pandoli365.bibimbap.BibimbapApplication for test class com.pandoli365.bibimbap.BibimbapApplicationTests + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + + :: Spring Boot :: (v3.5.16) + +2026-09-22T02:41:32.025Z INFO 206 --- [bibimbap] [ main] c.p.bibimbap.BibimbapApplicationTests : Starting BibimbapApplicationTests using Java 21.0.11 with PID 206 (started by root in /tmp/bibimbap-readiness-20260922) +2026-09-22T02:41:32.026Z INFO 206 --- [bibimbap] [ main] c.p.bibimbap.BibimbapApplicationTests : The following 1 profile is active: "dev" +Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build as described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3 +OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended +WARNING: A Java agent has been loaded dynamically (/root/.m2/repository/net/bytebuddy/byte-buddy-agent/1.17.8/byte-buddy-agent-1.17.8.jar) +WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning +WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information +WARNING: Dynamic loading of agents will be disallowed by default in a future release +2026-09-22T02:41:33.341Z INFO 206 --- [bibimbap] [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index +2026-09-22T02:41:33.407Z WARN 206 --- [bibimbap] [ main] o.s.w.s.resource.ResourceHandlerUtils : Appended trailing slash to static resource location: file:///app/uploads/game/profile/ +2026-09-22T02:41:33.460Z INFO 206 --- [bibimbap] [ main] c.p.bibimbap.BibimbapApplicationTests : Started BibimbapApplicationTests in 1.546 seconds (process running for 2.035) +2026-09-22T02:41:33.464Z INFO 206 --- [bibimbap] [ main] c.p.b.config.PermissionCatalogVerifier : [RBAC] 권한 카탈로그 시드 완료: 4 키 +2026-09-22T02:41:33.465Z INFO 206 --- [bibimbap] [ main] c.p.bibimbap.config.BadgeCatalogSeeder : [BADGE] 배지 카탈로그 시드 완료: 2 종 +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.743 s -- in com.pandoli365.bibimbap.BibimbapApplicationTests +[INFO] Running com.pandoli365.bibimbap.controller.WebMvcControllerTest +[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.077 s -- in com.pandoli365.bibimbap.controller.WebMvcControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.TagControllerTest +[INFO] Tests run: 19, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.023 s -- in com.pandoli365.bibimbap.controller.TagControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.AdminConsoleControllerTest +[INFO] Tests run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s -- in com.pandoli365.bibimbap.controller.AdminConsoleControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.SearchControllerTest +[INFO] Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.010 s -- in com.pandoli365.bibimbap.controller.SearchControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.JamAwardControllerTest +[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 s -- in com.pandoli365.bibimbap.controller.JamAwardControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.JamScoringControllerTest +[INFO] Tests run: 19, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.021 s -- in com.pandoli365.bibimbap.controller.JamScoringControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.PostControllerTest +[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 s -- in com.pandoli365.bibimbap.controller.PostControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.JamControllerTest +[INFO] Tests run: 14, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s -- in com.pandoli365.bibimbap.controller.JamControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.JamAdminControllerTest +[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 s -- in com.pandoli365.bibimbap.controller.JamAdminControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.JamVoteControllerTest +[INFO] Tests run: 23, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 s -- in com.pandoli365.bibimbap.controller.JamVoteControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.JamJudgeAdminControllerTest +[INFO] Tests run: 14, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s -- in com.pandoli365.bibimbap.controller.JamJudgeAdminControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.api.GameLikeControllerTest +[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.017 s -- in com.pandoli365.bibimbap.controller.api.GameLikeControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.api.UserControllerCsrfTest +[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.283 s -- in com.pandoli365.bibimbap.controller.api.UserControllerCsrfTest +[INFO] Running com.pandoli365.bibimbap.controller.api.GameUploadControllerSecurityTest +2026-09-22T02:41:34.050Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.zip, size=701, contentType=application/zip +2026-09-22T02:41:34.053Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload completed. gameUuid=2b520de2-3dc1-46d6-a932-67aed5056a4d, webglPath=/game/2b520de2-3dc1-46d6-a932-67aed5056a4d/index.html, entryCount=5, extractedBytes=56 +2026-09-22T02:41:34.054Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.zip, size=701, contentType=application/zip +2026-09-22T02:41:34.055Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.txt, size=701, contentType=text/plain +2026-09-22T02:41:34.056Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.zip, size=701, contentType=application/zip +2026-09-22T02:41:34.058Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.zip, size=537919488, contentType=application/zip +2026-09-22T02:41:34.059Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.zip, size=701, contentType=application/zip +2026-09-22T02:41:34.060Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload completed. gameUuid=cf77c6c7-139d-49ab-9c2d-41143613c3fd, webglPath=/game/cf77c6c7-139d-49ab-9c2d-41143613c3fd/index.html, entryCount=5, extractedBytes=56 +2026-09-22T02:41:34.061Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.zip, size=9, contentType=application/zip +2026-09-22T02:41:34.062Z INFO 206 --- [bibimbap] [ main] c.p.b.c.api.GameUploadController : WebGL zip upload request received. fileName=build.zip, size=701, contentType=application/zip +[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 s -- in com.pandoli365.bibimbap.controller.api.GameUploadControllerSecurityTest +[INFO] Running com.pandoli365.bibimbap.controller.api.GameCommentControllerTest +[INFO] Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 s -- in com.pandoli365.bibimbap.controller.api.GameCommentControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.api.GameReviewControllerTest +2026-09-22T02:41:34.082Z WARN 206 --- [bibimbap] [ main] c.p.b.c.api.GameReviewController : [BADGE] 리뷰 평판 훅 실패 userId=7 reviewId=50 + +java.lang.RuntimeException: boom + at com.pandoli365.bibimbap.badge.ReputationService.record(ReputationService.java:22) ~[classes/:na] + at com.pandoli365.bibimbap.controller.api.GameReviewController.createReview(GameReviewController.java:222) ~[classes/:na] + at com.pandoli365.bibimbap.controller.api.GameReviewControllerTest.createReview(GameReviewControllerTest.java:525) ~[test-classes/:na] + at com.pandoli365.bibimbap.controller.api.GameReviewControllerTest.createReviewSucceedsEvenWhenReputationHookThrows(GameReviewControllerTest.java:447) ~[test-classes/: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.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:775) ~[junit-platform-commons-1.12.2.jar:1.12.2] + at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:479) ~[junit-platform-commons-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:152) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:91) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:216) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:212) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:156) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.apache.maven.surefire.junitplatform.LauncherAdapter.executeWithoutCancellationToken(LauncherAdapter.java:60) ~[surefire-junit-platform-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.junitplatform.LauncherAdapter.execute(LauncherAdapter.java:52) ~[surefire-junit-platform-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:203) ~[surefire-junit-platform-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:168) ~[surefire-junit-platform-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:136) ~[surefire-junit-platform-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) ~[surefire-booter-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) ~[surefire-booter-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) ~[surefire-booter-3.5.5.jar:3.5.5] + at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) ~[surefire-booter-3.5.5.jar:3.5.5] + +[INFO] Tests run: 24, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.020 s -- in com.pandoli365.bibimbap.controller.api.GameReviewControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.JamAwardAdminControllerTest +[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 s -- in com.pandoli365.bibimbap.controller.JamAwardAdminControllerTest +[INFO] Running com.pandoli365.bibimbap.controller.BadgeManageControllerTest +[INFO] Tests run: 14, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 s -- in com.pandoli365.bibimbap.controller.BadgeManageControllerTest +[INFO] Running com.pandoli365.bibimbap.util.TagSanitizerTest +[INFO] Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s -- in com.pandoli365.bibimbap.util.TagSanitizerTest +[INFO] Running com.pandoli365.bibimbap.jam.JamLifecycleTest +[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 s -- in com.pandoli365.bibimbap.jam.JamLifecycleTest +[INFO] Running com.pandoli365.bibimbap.jam.JamAwardServiceTest +[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 s -- in com.pandoli365.bibimbap.jam.JamAwardServiceTest +[INFO] Running com.pandoli365.bibimbap.jam.JamEvalWindowTest +[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 s -- in com.pandoli365.bibimbap.jam.JamEvalWindowTest +[INFO] Running com.pandoli365.bibimbap.service.PostMarkdownServiceTest +[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 s -- in com.pandoli365.bibimbap.service.PostMarkdownServiceTest +[INFO] Running com.pandoli365.bibimbap.service.FeedParserTest +[Fatal Error] :1:1: Content is not allowed in prolog. +[Fatal Error] :2:10: DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true. +[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.022 s -- in com.pandoli365.bibimbap.service.FeedParserTest +[INFO] Running com.pandoli365.bibimbap.service.BadgeServiceTest +[INFO] Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s -- in com.pandoli365.bibimbap.service.BadgeServiceTest +[INFO] Running com.pandoli365.bibimbap.service.UnityFeedPollerTest +[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s -- in com.pandoli365.bibimbap.service.UnityFeedPollerTest +[INFO] Running com.pandoli365.bibimbap.security.SsrfSafeFetcherTest +[INFO] Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.126 s -- in com.pandoli365.bibimbap.security.SsrfSafeFetcherTest +[INFO] Running com.pandoli365.bibimbap.security.JamRoleGateTest +[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s -- in com.pandoli365.bibimbap.security.JamRoleGateTest +[INFO] Running com.pandoli365.bibimbap.security.PermissionGateTest +[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s -- in com.pandoli365.bibimbap.security.PermissionGateTest +[INFO] Running com.pandoli365.bibimbap.security.ZipSecurityTest +[INFO] Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.656 s -- in com.pandoli365.bibimbap.security.ZipSecurityTest +[INFO] +[INFO] Results: +[INFO] +[INFO] Tests run: 362, Failures: 0, Errors: 0, Skipped: 0 +[INFO] +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ bibimbap --- +[INFO] Copying 1 resource from src/main/resources to target/classes +[INFO] Copying 2 resources from src/main/resources to target/classes +[INFO] +[INFO] --- compiler:3.14.1:compile (default-compile) @ bibimbap --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ bibimbap --- +[INFO] skip non existing resourceDirectory /tmp/bibimbap-readiness-20260922/src/test/resources +[INFO] +[INFO] --- compiler:3.14.1:testCompile (default-testCompile) @ bibimbap --- +[INFO] Recompiling the module because of changed dependency. +[INFO] Compiling 32 source files with javac [debug release 21] to target/test-classes +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[61,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[65,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[68,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[71,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[74,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[77,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[80,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[83,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[86,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[89,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[92,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[95,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[98,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[101,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[104,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[107,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[110,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[113,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[116,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[WARNING] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java:[119,6] org.springframework.boot.test.mock.mockito.MockBean in org.springframework.boot.test.mock.mockito has been deprecated and marked for removal +[INFO] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/controller/api/GameLikeControllerTest.java: /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/controller/api/GameLikeControllerTest.java uses or overrides a deprecated API. +[INFO] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/controller/api/GameLikeControllerTest.java: Recompile with -Xlint:deprecation for details. +[INFO] /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java: /tmp/bibimbap-readiness-20260922/src/test/java/com/pandoli365/bibimbap/BibimbapApplicationTests.java has additional uses or overrides of a deprecated API that is marked for removal. +[INFO] +[INFO] --- surefire:3.5.5:test (default-test) @ bibimbap --- +[INFO] Skipping execution of surefire because it has already been run for this configuration +[INFO] +[INFO] --- war:3.4.0:war (default-war) @ bibimbap --- +[INFO] Packaging webapp +[INFO] Assembling webapp [bibimbap] in [/tmp/bibimbap-readiness-20260922/target/bibimbap-0.0.1-SNAPSHOT] +[INFO] Processing war project +[INFO] Copying webapp resources [/tmp/bibimbap-readiness-20260922/src/main/webapp] +[INFO] Building war: /tmp/bibimbap-readiness-20260922/target/bibimbap-0.0.1-SNAPSHOT.war +[INFO] +[INFO] --- spring-boot:3.5.16:repackage (default-cli) @ bibimbap --- +[INFO] Replacing main artifact /tmp/bibimbap-readiness-20260922/target/bibimbap-0.0.1-SNAPSHOT.war with repackaged archive, adding nested dependencies in BOOT-INF/. +[INFO] The original artifact has been renamed to /tmp/bibimbap-readiness-20260922/target/bibimbap-0.0.1-SNAPSHOT.war.original +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 19.193 s +[INFO] Finished at: 2026-09-22T02:41:47Z +[INFO] ------------------------------------------------------------------------ diff --git a/.atp/work-session/20260922-114058/artifacts/db-observations.txt b/.atp/work-session/20260922-114058/artifacts/db-observations.txt new file mode 100644 index 0000000..a8559ff --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/db-observations.txt @@ -0,0 +1,2 @@ +Existing local dev: 35 tables/views; game_likes UNIQUE(game_id,user_key) present; active feed sources=0; post_categories slugs=notice,devlog,showcase,resources,industry. Local live schema has no tables; this is not evidence about production. +Isolated PostgreSQL 16 with db/schema.sql: post_categories count=0. New user and recruit persisted via HTTP in isolated DB only. diff --git a/.atp/work-session/20260922-114058/artifacts/dependencies.log b/.atp/work-session/20260922-114058/artifacts/dependencies.log new file mode 100644 index 0000000..33666f2 --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/dependencies.log @@ -0,0 +1,41 @@ +[INFO] Scanning for projects... +[INFO] +[INFO] ----------------------< com.pandoli365:bibimbap >----------------------- +[INFO] Building bibimbap 0.0.1-SNAPSHOT +[INFO] from pom.xml +[INFO] --------------------------------[ war ]--------------------------------- +[INFO] +[INFO] --- dependency-check:12.2.2:check (default-cli) @ bibimbap --- +[INFO] + +Dependency-Check is an open source tool performing a best effort analysis of 3rd party dependencies; false positives and false negatives may exist in the analysis performed by the tool. Use of the tool and the reporting provided constitutes acceptance for use in an AS IS condition, and there are NO warranties, implied or otherwise, with regard to the analysis or its use. Any use of the tool and the reporting provided is at the user's risk. In no event shall the copyright holder or OWASP be held liable for any damages whatsoever arising out of or in connection with the use of this tool, the analysis performed, or the resulting report. + + + About ODC: https://dependency-check.github.io/DependencyCheck/general/internals.html + False Positives: https://dependency-check.github.io/DependencyCheck/general/suppression.html + + +[INFO] Analysis Started +[INFO] Finished Archive Analyzer (0 seconds) +[INFO] Finished File Name Analyzer (0 seconds) +[INFO] Finished Jar Analyzer (0 seconds) +[INFO] Finished Dependency Merging Analyzer (0 seconds) +[INFO] Finished Hint Analyzer (0 seconds) +[INFO] Finished Version Filter Analyzer (0 seconds) +[INFO] Created CPE Index (0 seconds) +[INFO] Finished CPE Analyzer (1 seconds) +[INFO] Finished False Positive Analyzer (0 seconds) +[INFO] Finished NVD CVE Analyzer (0 seconds) +[WARNING] Sonatype OSS Index Analyzer disabled due to missing credentials. Authentication with token is now required, and OSS Index is migrating to Sonatype Guide. See https://dependency-check.github.io/DependencyCheck/analyzers/oss-index-analyzer.html for more information on authentication with Sonatype Guide OSS Index. +[INFO] Finished Vulnerability Suppression Analyzer (0 seconds) +[INFO] Finished Known Exploited Vulnerability Analyzer (0 seconds) +[INFO] Finished Dependency Bundling Analyzer (0 seconds) +[INFO] Finished Unused Suppression Rule Analyzer (0 seconds) +[INFO] Analysis Complete (1 seconds) +[INFO] Writing HTML report to: /tmp/bibimbap-readiness-20260922/target/dependency-check-report.html +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 4.628 s +[INFO] Finished at: 2026-09-22T02:43:03Z +[INFO] ------------------------------------------------------------------------ diff --git a/.atp/work-session/20260922-114058/artifacts/dependency-summary.txt b/.atp/work-session/20260922-114058/artifacts/dependency-summary.txt new file mode 100644 index 0000000..b481715 --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/dependency-summary.txt @@ -0,0 +1 @@ +dependency-check:check BUILD SUCCESS. autoUpdate=false; 50 dependencies (40 unique), 0 reported vulnerabilities. OSS Index disabled due to missing credentials. NVD freshness not verified. Provided scope excluded by pom. Not current-CVE clearance. diff --git a/.atp/work-session/20260922-114058/artifacts/edge.json b/.atp/work-session/20260922-114058/artifacts/edge.json new file mode 100644 index 0000000..cdcbe74 --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/edge.json @@ -0,0 +1,31 @@ +[ + { + "path": "/posts?categoryId=abc", + "status": 500 + }, + { + "path": "/posts?categoryId=9223372036854775808", + "status": 500 + }, + { + "path": "/games/search?sort=invalid", + "status": 200 + }, + { + "path": "/posts/99999", + "status": 200 + }, + { + "path": "/recruit/99999", + "status": 200 + }, + { + "path": "/jams/nonexistent-readiness", + "status": 200 + }, + { + "path": "/recruit/1", + "status": 200, + "persisted_title_rendered": true + } +] \ No newline at end of file diff --git a/.atp/work-session/20260922-114058/artifacts/flow.json b/.atp/work-session/20260922-114058/artifacts/flow.json new file mode 100644 index 0000000..cbf08c0 --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/flow.json @@ -0,0 +1,149 @@ +[ + { + "path": "/signup", + "method": "GET", + "csrf": false, + "status": 200, + "expected": 200, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/signup", + "method": "POST", + "csrf": false, + "status": 403, + "expected": 403, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/signup", + "method": "POST", + "csrf": true, + "status": 200, + "expected": 200, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/login", + "method": "POST", + "csrf": false, + "status": 403, + "expected": 403, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/login", + "method": "POST", + "csrf": true, + "status": 200, + "expected": 200, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "check": "login_session_id_rotated", + "passed": true + }, + { + "path": "/profile", + "method": "GET", + "csrf": false, + "status": 200, + "expected": 200, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/posts/new", + "method": "GET", + "csrf": false, + "status": 403, + "expected": 403, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/recruit/new", + "method": "GET", + "csrf": false, + "status": 200, + "expected": 200, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/recruit/new", + "method": "POST", + "csrf": false, + "status": 403, + "expected": 403, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/recruit/new", + "method": "POST", + "csrf": true, + "status": 200, + "expected": 200, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/recruit/1", + "method": "GET", + "csrf": false, + "status": 200, + "expected": 200, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/logout", + "method": "POST", + "csrf": true, + "status": 302, + "expected": 302, + "passed": true, + "cookie_secure": [ + false + ] + }, + { + "path": "/profile", + "method": "GET", + "csrf": false, + "status": 302, + "expected": 302, + "passed": true, + "cookie_secure": [ + false + ] + } +] \ No newline at end of file diff --git a/.atp/work-session/20260922-114058/artifacts/home-390.png b/.atp/work-session/20260922-114058/artifacts/home-390.png new file mode 100644 index 0000000000000000000000000000000000000000..17d9a34ff03eaf4b76f6597f8d9c5e833fb2c839 GIT binary patch literal 92306 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�OsNbAy|9O=a!0< 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 literal 0 HcmV?d00001 diff --git a/.atp/work-session/20260922-114058/artifacts/war.sha256 b/.atp/work-session/20260922-114058/artifacts/war.sha256 new file mode 100644 index 0000000..6d15fb9 --- /dev/null +++ b/.atp/work-session/20260922-114058/artifacts/war.sha256 @@ -0,0 +1 @@ +848570a66ba1ea1aaa9753d54394b843839d31fb01df4f67bc7468c201d9d2e5 bibimbap-0.0.1-SNAPSHOT.war diff --git a/.atp/work-session/20260922-114058/report.md b/.atp/work-session/20260922-114058/report.md new file mode 100644 index 0000000..426776a --- /dev/null +++ b/.atp/work-session/20260922-114058/report.md @@ -0,0 +1,72 @@ +--- +schema_version: 2 +profile: research-lite +session_id: 20260922-114058 +started_at: 2026-09-22T11:40:58.902204+09:00 +ended_at: 2026-09-22T11:50:01.878221+09:00 +user_request: 지금까지 작업된 결과물들 검증과 라이브 출시 준비 상태 판정 +--- +# Summary +검증 완료: 현재 HEAD 1848394의 라이브 출시는 NO-GO. 전체 테스트 362/362와 live WAR 빌드, 공개 화면 16회, 독립 DB 인증/모집글 흐름은 통과했다. 운영 설정 파일이 WAR에서 제외되고, 기본 배포 이미지가 dev 프로필이며, 새 DB에는 포스트 카테고리 시드가 없다. + +상세 보고서: [release-readiness](../../../docs/analysis/2026-09-22-release-readiness.md). (프로젝트 루트 기준 docs/analysis/2026-09-22-release-readiness.md) +# Invocations +- id: inv-001 + layer: orchestrator + name: sequential-readiness-self-check + parent_invocation_id: null + input_digest: 전체 결과물 검증 및 라이브 적합성 판정 + output_digest: 362 tests PASS; build PASS; release NO-GO + artifacts: [artifacts/build.log, artifacts/browser.json, artifacts/flow.json, artifacts/live-http.json, artifacts/edge.json, research/graph-query.txt] + concerns: [운영 설정 패키징 누락, dev 고정 이미지, 새 DB 카테고리 시드 누락, 운영 L3 미완료] + model_choice: {tier: large, rationale: 다수 기능과 배포 산출물의 실행 증거 대조} +# Advisor Invocation Decision Log +- advisor: all + decision: skip + rationale: 'skip: no-codex-hooks; tier_b_sequential self-check' + checked_at: 2026-09-22T11:40:58.902204+09:00 +# Decisions +- general_task; tier_b_sequential; 독립 advisor 검토 아님. +- 검증 범위: 전체 Maven 테스트/WAR, 배포 구성/DB 계약, 가능한 로컬 런타임, 미완료 출시 조건. +- 소스 코드 변경 없음. graphify는 기존 그래프 가용성과 최신성을 확인하고 근거는 현재 소스와 대조. +# Open Items +- 선재 untracked: .atp/work-session/20260724-095414/, .atp/work-session/20260826-093449/, ~/ + +# Phase self-checklist +- 요구: 현재 커밋의 품질 검증과 라이브 Go/No-Go; 수정/배포 요청 아님. +- 조사: docs-first, 기존 graph 어휘 확장+BFS로 보조 탐색 후 현재 소스 대조. +- 설계: 검증 표에 성공/실패/미검증을 분리; 새 임시 DB에만 테스트 쓰기. AC self-audit: 전체 테스트 성공과 운영 출시 승인을 독립 판정; 미검증을 PASS로 취급하지 않음. +- 구현: 제품 코드 0줄 변경. 분석 문서/증거만 생성하여 코드 수정 전 계획 승인 게이트 대상 없음. +- 검증: L1 PASS, L2 실행한 실제 PostgreSQL 경로 PASS/초기화 공백 별도 기록, L3 부분 PASS. 출시 게이트 FAIL을 숨기지 않음. +- 문서화: docs/analysis 보고서 및 index 연결. + +# verified_by_me +- L1: JDK 21; mvn -o -B -P live test package spring-boot:repackage; 362 tests, failures/errors/skipped 0; 실행형 WAR PASS. +- L2: local PostgreSQL 16 runtime contracts PASS (signup/login/recruit and local constraint/category reads). 전체 mapper 계약은 skipped: harness 없음, 전수 시드/범위 미정. +- L3: 공개 화면 8개 × desktop/mobile PASS; 독립 live WAR auth/recruit HTTP scenario PASS. 전체 출시 게이트는 미완료. +- 로그 스캔: warn: 컴파일 WARNING 200줄(중복 포함), 의존성 OSS Index 제외 경고 1건; runtime은 정적 경로 안내 WARN과 의도적으로 재현한 오류 입력의 ERROR 3건. clean으로 판정하지 않음. +- 운영 Secure 설정 패키징 누락과 세션 Secure=false 실측 확인. + +# needs_user_verification +- 실제 배포 환경 지정 후 운영 이미지/HTTPS/domain/프록시/DB schema·migration 증거 확보. +- staging 실제 Unity 빌드 업로드·실행·교체/좋아요/리뷰/배지/잼/관리자 전체 시나리오. +- 최신 CVE 데이터 기반 mvn dependency-check:check 결과와 백업/복구/부하/운영 모니터링. +- 프로젝트 게이트: docs/maintenance/post-deploy-verification-checklist.md 전항목 검증. 해당 환경 미지정으로 원격 실행하지 않음. + +# graph_refresh +skip: 제품 코드 변경 0; 기존 graph는 탐색 보조로만 사용. 재생성 없음. + +# user_signals +positive: [] +negative: [] + +# Retrospective +순차 self-check로 완료했으며 독립 advisor 회고가 아니다. 단위 테스트 362개 통과와 live WAR 빌드 성공은 설정 파일 포함/운영 쿠키 정책을 보장하지 않았다. 새 DB로 시작하는 검증은 기존 dev 데이터가 가리는 시드 누락을 드러냈다. 이 교훈은 이번 analysis의 재검증 순서에 기록하고 제품 코드/정책 확대 변경은 하지 않았다. + +# Additional Decisions +- 독립 임시 환경은 로컬에 생성하고 검증 종료 시 정리한다. 기존 bibimbap-app/db는 재시작/데이터 변경하지 않는다. +- 부족한 L3 증거는 출시 보류 이유이며 분석 작업 자체의 미완료로 감추지 않는다. +- 커밋은 CLAUDE.md의 feat/* 표준 승인에 따라 문서·증거만 수행. push 없음. +- 임시 app/db 컨테이너·해당 익명 볼륨·네트워크 정리 완료. WAR/전체 브라우저 캡처/의존성 HTML은 /tmp/bibimbap-readiness-*에 남김(검증 참고용). + +- 저장한 로그는 줄끝 공백만 정규화했다. HTTP 관측의 세션 ID는 삭제했다. diff --git a/.atp/work-session/20260922-114058/research/graph-query.txt b/.atp/work-session/20260922-114058/research/graph-query.txt new file mode 100644 index 0000000..0235602 --- /dev/null +++ b/.atp/work-session/20260922-114058/research/graph-query.txt @@ -0,0 +1,33 @@ +Graph vocabulary expansion: test, verification, deploy, security, upload, mapper, session +BFS depth=2; roots=['ZipSecurityTest', 'GameUploadAuditMapper', 'post-deploy-verification-checklist.md'] +Reached nodes=54 +{'label': 'GameUploadAuditMapper', 'source_file': 'src/main/java/com/pandoli365/bibimbap/mapper/GameUploadAuditMapper.java', 'source_location': 'L10'} +{'label': 'post-deploy-verification-checklist.md', 'source_file': 'docs/development/local-dev-setup.md', 'source_location': '113'} +{'label': 'ZipSecurityTest', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L31'} +{'label': '.uploadWebglZip()', 'source_file': 'src/main/java/com/pandoli365/bibimbap/controller/api/GameUploadController.java', 'source_location': 'L113'} +{'label': 'GameUploadController', 'source_file': 'docs/development/local-dev-setup.md', 'source_location': '89,93'} +{'label': '.writeEntry()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L362'} +{'label': '.extractZip_rejectsBackslash()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L62'} +{'label': 'SSRF DNS 캐시 운영 참고 (networkaddress.cache.ttl=30)', 'source_file': 'docs/development/local-dev-setup.md', 'source_location': '111-113'} +{'label': '.webglZip_returns403_whenReplaceUuidNotOwned()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/controller/api/GameUploadControllerSecurityTest.java', 'source_location': 'L256'} +{'label': '.webglZip_returns403_whenJamModeWithoutPermission()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/controller/api/GameUploadControllerSecurityTest.java', 'source_location': 'L151'} +{'label': '.webglZip_allowsReplace_whenOwner()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/controller/api/GameUploadControllerSecurityTest.java', 'source_location': 'L279'} +{'label': '.extractZip_rejectsNulByte()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L82'} +{'label': '.makeLargeSingleEntryZip()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L311'} +{'label': '.extractZip_rejectsTooLongName()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L92'} +{'label': '.insertAudit()', 'source_file': 'src/main/java/com/pandoli365/bibimbap/mapper/GameUploadAuditMapper.java', 'source_location': 'L13'} +{'label': '.putEntry()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/controller/api/GameUploadControllerSecurityTest.java', 'source_location': 'L108'} +{'label': '.webglZip_returns413_whenOriginalTooLarge()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/controller/api/GameUploadControllerSecurityTest.java', 'source_location': 'L228'} +{'label': '.assertZipType_acceptsNullMimeWithZipExt()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L223'} +{'label': '.assertMagic_rejectsNonZipMagic()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L230'} +{'label': '.extractZip_rejectsDriveLetter()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L72'} +{'label': '.audit()', 'source_file': 'src/main/java/com/pandoli365/bibimbap/controller/api/GameUploadController.java', 'source_location': 'L344'} +{'label': '.makeZip()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L287'} +{'label': 'SsrfSafeFetcher', 'source_file': '', 'source_location': ''} +{'label': '.assertMagic()', 'source_file': 'src/main/java/com/pandoli365/bibimbap/security/ZipSecurity.java', 'source_location': 'L90'} +{'label': '.assertUnityBuild()', 'source_file': 'src/main/java/com/pandoli365/bibimbap/security/ZipSecurity.java', 'source_location': 'L171'} +{'label': '.extractZip_rejectsEmptyZip()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L115'} +{'label': 'Local Dev Setup — 로컬 개발 환경 설정', 'source_file': 'docs/development/local-dev-setup.md', 'source_location': '1-3'} +{'label': '.makeMultiLargeEntryZip()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L329'} +{'label': '.assertMagic_acceptsValidZip()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/security/ZipSecurityTest.java', 'source_location': 'L238'} +{'label': '.webglZip_passesGate_whenAuthenticatedNonJam()', 'source_file': 'src/test/java/com/pandoli365/bibimbap/controller/api/GameUploadControllerSecurityTest.java', 'source_location': 'L166'} \ No newline at end of file diff --git a/.atp/work-session/20260922-114058/wait-wakeup-events.jsonl b/.atp/work-session/20260922-114058/wait-wakeup-events.jsonl new file mode 100644 index 0000000..0413d35 --- /dev/null +++ b/.atp/work-session/20260922-114058/wait-wakeup-events.jsonl @@ -0,0 +1,2 @@ +{"event": "await_capability_checked", "at": "2026-09-22T11:40:58.902204+09:00", "formal_adapter_enabled": false, "host_managed_subagent_orchestration": "unsupported", "selected_mode": "tier_b_sequential", "profile_ref": "codex-team/SKILL.md \u00a71/7", "reason": "skip: no-codex-hooks"} +{"event": "wait_wakeup_capability_unavailable", "at": "2026-09-22T11:40:58.902204+09:00", "formal_adapter_enabled": false, "host_managed_subagent_orchestration": "unsupported", "selected_mode": "tier_b_sequential", "profile_ref": "codex-team/SKILL.md \u00a71/7", "reason": "skip: no-codex-hooks"} diff --git a/docs/analysis/2026-09-22-release-readiness.md b/docs/analysis/2026-09-22-release-readiness.md new file mode 100644 index 0000000..ec4465a --- /dev/null +++ b/docs/analysis/2026-09-22-release-readiness.md @@ -0,0 +1,73 @@ +# 2026-09-22 출시 준비 상태 검증 + +**판정: 현재 산출물 그대로 라이브 출시 보류(NO-GO).** 기본 동작과 빌드는 통과했으나 운영 설정 패키징 결함이 재현됐고, 신규 DB 초기화·운영 환경 검증이 남아 있다. 검증 대상은 `feat/v2`의 `184839434c94d500cdf6e74ae77b4b4c658dcc4c`이다. 코드 수정·운영 배포·원격 push는 수행하지 않았다. + +ATP Tier B 순차 self-check로 수행했다. 독립 advisor 검토 또는 전체 보안 감사 결과가 아니다. [세션과 증거](../../.atp/work-session/20260922-114058/report.md). + +## 실행 결과 + +| 검증 | 결과 | 실제 검증 범위 | +| --- | --- | --- | +| 전체 테스트 + 실행형 live WAR | PASS | JDK 21 컨테이너의 독립 HEAD 복사본에서 `mvn -o -B -P live test package spring-boot:repackage`; 362 tests, failure/error/skip 0 | +| live WAR 기동 | PASS | 독립 PostgreSQL 16 + `db/schema.sql`, live 프로필, DB search_path는 테스트용 dev; 운영 DB 검증 아님 | +| 공개 화면 브라우저 | PASS | 개발 인스턴스의 `/`, `/posts`, `/recruit`, `/jams`, `/login`, `/signup`, `/terms`, `/operation-policy` × 폭 1440/390 = 16회. 응답 200, JS 예외·실패 리소스·가로 넘침 0 | +| HTTP 기능 흐름 | PASS | 독립 live WAR에서 회원가입/로그인/로그아웃, 세션 ID 교체, 프로필, 모집글 생성·상세의 저장한 제목 출력 | +| 인증·CSRF 일부 계약 | PASS | 회원가입/로그인/모집글의 토큰 없는 POST 403, 토큰 있는 정상 요청 200, 일반 계정 `/posts/new` 403, 로그아웃 후 프로필 접근 리다이렉트 | +| DB 확인 | 부분 PASS | 기존 dev의 좋아요 UNIQUE 제약·카테고리 5종 확인. 신규 DB 카테고리는 아래 실패 | +| 의존성 스캔 | 제한적 PASS | `mvn -B dependency-check:check`: 50개(40 unique), 탐지 취약점 0. 캐시 갱신 꺼짐, 최신성 미검증, OSS Index 인증 없어 제외, provided scope 제외 | +| 실제 운영 배포 게이트 | 미수행 | 운영 URL·접근 환경·배포 절차·실제 Unity 빌드가 지정되지 않음 | + +호스트 Java 미설치로 `./mvnw -o test`는 실행하지 못해 기존 Maven/JDK 컨테이너의 별도 디렉터리에서 실행했다. 개발 인스턴스의 컴파일 디렉터리는 변경하지 않았다. 의존성 플러그인은 Maven offline 모드를 거부하여 일반 실행으로 재검증했다. 위 테스트는 실 DB 매퍼 전체·전체 권한 조합·부하·장애복구를 보장하지 않는다. + +## 수정 또는 배포 전 해소가 필요한 항목 + +### R1 — P1: live 설정 파일이 WAR에서 제외됨 + +- 근거: `pom.xml:278`에서 `application-*.properties`를 제외한다. dev에도 `pom.xml:241`의 같은 제외 규칙이 있다. +- `src/main/resources/application-live.properties:3`의 `server.servlet.session.cookie.secure=true`가 산출물에 포함되지 않는다. +- 실제 live WAR에는 `WEB-INF/classes/application.properties`만 있고 `application-live.properties`가 없다. 기본 파일의 active profile은 `live`임을 확인했다. +- 독립 WAR 런타임에서 익명 세션과 로그인 후 모두 `JSESSIONID; Path=/; HttpOnly; SameSite=Lax`이며 `Secure`가 없었다. HTTP 시험이므로 운영 TLS/프록시의 쿠키 정책을 추정하지 않는다. 확인된 결함은 명시한 Secure 강제 설정이 패키징에서 사라진다는 점이다. +- 조치: 프로필 설정 리소스를 포함하도록 빌드를 수정하고, 실제 배포 산출물과 운영 HTTPS 응답의 쿠키 속성을 함께 검증한다. WAR 엔트리/실행 프로필/쿠키 속성 회귀 검증이 필요하다. + +### R2 — P1: 배포 이미지 경로가 dev 프로필로 고정됨 + +- 근거: `Dockerfile:30`은 `mvn -B -P dev ...`로 빌드한다. `docker-compose.yml`에는 live 프로필 강제 설정이 없다. +- 문서는 base compose를 배포 이미지 경로로 안내하지만, 현재 그 경로는 기본적으로 dev 프로필 산출물이다. 개발용 compose 자체는 결함이 아니며, 이를 그대로 라이브 배포 경로로 쓰는 것이 문제다. +- 조치: 운영 빌드/실행 프로필과 DB search_path를 명시한 별도 배포 구성을 확정하고, 그 실제 이미지로 재검증한다. 이번 live WAR 직접 실행은 Dockerfile 이미지 검증을 대체하지 않는다. + +### R3 — P1: 새 DB 초기화에 기본 포스트 카테고리 시드가 빠짐 + +- 근거: `docker-compose.yml:22`는 `db/schema.sql`만 초기 적용한다. `db/apply-local-ddl.sh:46`의 기본 대상은 `docs/*-ddl.sql`이므로 `db/migrations/20260724-post-categories-seed.sql`이 포함되지 않는다. +- 실측: 기존 dev 카테고리는 `notice/devlog/showcase/resources/industry` 5종, 새 PostgreSQL에 schema.sql만 적용하면 0종이다. 새 환경에서는 카테고리 탭이 기존 결과물과 다르게 나온다. +- 조치: 신규 설치와 기존 DB 업그레이드 양쪽의 migration 목록·실행 순서·적용 확인 절차에 이 시드를 포함한다. 좋아요 UNIQUE도 운영 DB에서 별도 확인한다. 로컬 적용 사실을 운영 적용 증거로 사용하지 않는다. + +### R4 — P2: 잘못된 입력/없는 정적 리소스를 500으로 처리함 + +- 근거: `src/main/java/com/pandoli365/bibimbap/controller/api/ApiExceptionControllerAdvice.java:38`의 전역 `Exception` 핸들러가 기본 예외를 500으로 변환한다. +- 독립 live WAR 재현: `/posts?categoryId=abc`, `/posts?categoryId=9223372036854775808`, `/css/readiness-missing.css`가 모두 500. 앞의 두 요청은 입력 오류, 마지막 요청은 리소스 부재다. +- 조치: 입력 변환 오류는 400, 없는 리소스는 404로 보존하도록 구체적인 예외 처리를 적용하고 회귀 테스트를 추가한다. 정상 브라우저 16회에서 실제 참조 리소스 실패는 없었다. + +### R5 — P2: 모집글 작성의 CSRF 폴백 미완료 + +- 근거: `src/main/webapp/WEB-INF/views/recruit-form.jsp:403` 이후 JS helper 미존재 분기는 CSRF 헤더 없이 전송하며 hidden `_csrf`도 없다. +- 서버는 `RecruitController.java:65` 이후 검증으로 토큰 없는 요청을 403 처리한다. **CSRF 우회가 아니라 helper/JS 장애 시 정상 작성도 거부되는 폴백 가용성 문제**다. 정상 helper 경로의 모집글 저장·조회는 이번에 통과했다. +- 조치: hidden 토큰과 fetch 폴백을 보완하고 정상/폴백/토큰 누락의 동작을 각각 확인한다. + +## 라이브 승인에 필요한 추가 증거 + +1. R1~R3 해소 후 **실제 배포 이미지**를 staging에서 실행해 프로필·운영 HTTPS 쿠키·DB migrations를 확인한다. +2. 실제 Unity WebGL 빌드 업로드 → 실행 → 교체 → 소유권 거부, 좋아요·리뷰·배지, 잼 참가·심사·투표·시상, 운영자 포스팅의 전체 시나리오를 검증한다. 이번 HTTP 검증은 이 흐름들을 포함하지 않는다. +3. [배포 후 체크리스트](../maintenance/post-deploy-verification-checklist.md)의 실 HTTPS 외부 fetch·피드 폴링·자산 경로·DNS TTL을 실제 환경에서 완료한다. +4. 의존성 DB를 갱신한 스캔 결과와 제외된 런타임 의존성 범위를 확인한다. 이번 0건 결과를 최신 CVE 안전 판정으로 쓰지 않는다. +5. DB/업로드 백업의 복구, 배포 rollback, 오류·디스크·업로드 제한 모니터링, 예상 트래픽의 부하 검증 결과를 확보한다. 저장소만으로 운영 준비 완료를 판정할 수 없다. + +R4/R5는 함께 보완하는 것이 좋다. 우선순위는 운영 프로필과 설정 패키징 → DB 초기화/업그레이드 재현 → 핵심 사용자 E2E 및 운영 증거다. 현재는 staging 검증을 진행할 수 있는 상태이며 라이브 출시 승인 상태는 아니다. + +## 증거와 한계 + +- [빌드 로그](../../.atp/work-session/20260922-114058/artifacts/build.log): 컴파일 WARNING 200줄(중복 포함, 주로 MockBean deprecation), ERROR 0. 테스트 실패 없음. +- [브라우저 결과](../../.atp/work-session/20260922-114058/artifacts/browser.json), [모바일 홈](../../.atp/work-session/20260922-114058/artifacts/home-390.png), [포스트 화면](../../.atp/work-session/20260922-114058/artifacts/posts-1440.png). +- [live WAR HTTP](../../.atp/work-session/20260922-114058/artifacts/live-http.json), [인증·작성 흐름](../../.atp/work-session/20260922-114058/artifacts/flow.json), [경계 입력](../../.atp/work-session/20260922-114058/artifacts/edge.json). +- `edge.json`의 없는 post/recruit/jam 항목 200은 목록 리다이렉트를 따라간 최종 응답이다. 해당 컨트롤러의 의도한 리다이렉트이며 새 결함으로 판정하지 않았다. +- [의존성 스캔 로그](../../.atp/work-session/20260922-114058/artifacts/dependencies.log), [검증 WAR 해시](../../.atp/work-session/20260922-114058/artifacts/war.sha256). +- 기존 graph는 7월 소스 기준이며 JSP가 누락되는 한계가 있다. 탐색 보조로만 사용하고 모든 발견은 현재 소스와 실행 결과로 대조했다. diff --git a/docs/analysis/index.md b/docs/analysis/index.md index 550be60..602805c 100644 --- a/docs/analysis/index.md +++ b/docs/analysis/index.md @@ -4,5 +4,7 @@ ## 목록 +- [2026-09-22-release-readiness.md](./2026-09-22-release-readiness.md) — 362개 테스트·live WAR·실 DB 인증/모집글·공개 화면 16회 검증. 출시 보류: live 설정 패키징 누락, dev 고정 이미지 경로, 신규 DB 카테고리 시드 공백 및 운영 검증 미완료. + - [2026-06-16-project-analysis.md](./2026-06-16-project-analysis.md) — bibimbap 전면 코드 분석(D1 아키텍처/D2 보안/D3 품질·기술부채/D4 도메인). 보안 기초는 견고(SQLi 0·PBKDF2·CSRF 더블서밋)하나 프로토타입 잔재 dead code·미완성 기능·서비스 레이어 부재가 주요 부채. `perspective: neutral`, work-session 20260616-111711 distill. - [2026-06-30-frontend-component-review.md](./2026-06-30-frontend-component-review.md) — JSP 프론트엔드 컴포넌트 중복/유지보수·확장성 검토. CSS 토큰 23개 파일 중복(P0)·JS 유틸리티 함수 중복(P1)·BibimbapModal 호출 패턴 혼존(P1)·recruit-form CSRF 폴백 갭(P0-보안)·날짜 포맷 함수 편재(P2). work-session 20260630-113258 distill.