pilichoumao opened a new pull request, #6405:
URL: https://github.com/apache/rocketmq-dashboard/pull/6405

   ### Which Issue(s) This PR Fixes
   
   Fixes #6404.
   
   ### Brief Description
   
   CSV imports reject more than 100 nonblank data records only after parsing 
and mapping the entire file. A file that cannot be imported still allocates 
every excess record; with 101 valid rows and a malformed tail, the UI reports 
the tail error rather than stopping at the limit.
   
   Move the existing check into the shared parser's completed-record boundary. 
Keep the header, blank lines and quoted multiline cells out of the data-record 
count. Reuse the current limit/message. Both Topic and Consumer upload 
regressions verify rejection without an import request and successful recovery 
with a new file scoped to the selected instance.
   
   No new file-byte or cell-size policy: File.text() still reads the file and a 
huge individual cell is outside this fix. README makes this boundary explicit. 
#6069's file-read ownership behavior is preserved; #5574 handles validation 
i18n separately.
   
   ### How Did You Test This Change?
   
   Baseline: `rocketmq-studio@779b8c0e7aed2396d3cc72743dcd544ea48e9ae6`. macOS, 
Node 22.19.0, npm 11.11.1, repository-pinned dependencies installed with npm 
ci. Serial runs: one Vitest fork, file parallelism disabled, Node old-space 
768MiB for tests / 1024MiB for checks and build, UV_THREADPOOL_SIZE=1, 
GOMAXPROCS=1.
   
   - Same added tests on unchanged production: 3 fail / 3 pass. With the fix: 
6/6 pass. Covers the actual parser, both File-upload page flows, 99/100 
records, BOM/CRLF, blank rows, quoted multiline cells and recovery after 
failure.
   - `npm test -- --maxWorkers=1 --pool=forks --no-file-parallelism`: 159 
files; 1608 pass / 2 fail. **The full suite is not green.** Both unchanged 
failures reproduce on a clean archive of the exact baseline with the same 
dependencies/runtime/flags: Producer.test.tsx `discards a slow connection 
response after the topic changes` (pointer-events:none), and 
UserManagement.test.tsx `exports all users that match the active filters` 
(search undefined instead of ops).
   - Independent comparison using those two complete files and the same command 
flags: clean baseline 29 pass / 2 fail; patched branch 29 pass / 2 fail, same 
cases and causes. Neither file is modified in this PR; the failures are 
retained rather than skipped.
   - `npm run lint`: pass, 0 errors and 10 warnings in untouched files. 
Targeted Prettier check and `git diff --check`: pass.
   - `npm run license:test`: 5/5 pass.
   - `npm run build`: TypeScript and Vite pass; license:check passes for 133 
actual components and 140 license files.
   
   ### Checklist
   
   - [x] One coherent change; no unrelated test repairs
   - [x] Conventional Commit
   - [x] Regression tests added; existing ASF headers retained
   - [x] Existing UI message reused; no new translation strings
   - [x] Behavior and resource limits documented
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to