devyeony opened a new pull request, #5035: URL: https://github.com/apache/zeppelin/pull/5035
> This PR is a rebased version of [#5022](https://github.com/apache/zeppelin/pull/5022) > The previous PR was automatically closed because the branch was deleted, so I recreated the branch and opened this new PR. ### What is this PR for? This PR fixes the issue that occurs when `zeppelin.jobmanager.enable` is set to `false`. In this case, the server sends no response, causing the Job Manager page in both classic and new UIs to show an infinite loading indicator. This behavior confuses users and gives the impression that the page is broken. To improve user experience, this PR introduces explicit server-side handling that returns an explicit "not allowed" response when the Job Manager is disabled via configuration. Additionally, both classic and new UIs have been updated to properly handle this response and display a user-friendly message: **"Job Manager is disabled in the current configuration."** This change ensures users are informed about the disabled state instead of encountering an endless loading screen. ### What type of PR is it? Improvement ### Todos * [x] Implement server-side forbidden response when Job Manager is disabled * [x] Add `JOB_MANAGER_DISABLED` WebSocket message and corresponding handling in both Classic and New UI * [x] Add unit and integration tests covering the new behavior **Note:** * Although REST API tests have been implemented, the current frontend (both Classic and New UI) interacts with the Job Manager primarily through WebSocket communication. Therefore, the functional verification and actual handling of the "Job Manager disabled" scenario have been focused on the WebSocket path. The REST API tests are prepared to ensure future compatibility if the REST endpoints are used. * In the user-request handling method, a ForbiddenException triggers sending a clear error message to the client so the UI can inform the user that the Job Manager is disabled. However, during broadcast events where no direct client request is involved, the exception is logged at debug level and silently skipped to avoid unnecessary noise or client interruptions. ### What is the Jira issue? [[ZEPPELIN-6216]](https://issues.apache.org/jira/browse/ZEPPELIN-6216) ### How should this be tested? * Automated tests have been added to cover the new behavior when the Job Manager is disabled: * Unit tests in `JobManagerServiceTest` verify that forbidden exceptions are thrown. * REST API tests in `NotebookRestApiTest` check that HTTP 403 responses with appropriate messages are returned. * WebSocket and server event handling tests in `NotebookServerTest` ensure no unexpected exceptions occur and proper notification messages are sent. * Manual testing steps: 1. Set `zeppelin.jobmanager.enable` to `false` via `ZeppelinConfiguration`. 2. Access the Job Manager page in both classic and new UI. 3. Confirm that instead of infinite loading, a clear message stating **"Job Manager is disabled in the current configuration."** is displayed. ### Screenshots (if appropriate) * AS-IS (New UI) <img width="862" height="362" alt="AS-IS NEW UI" src="https://github.com/user-attachments/assets/e2a1288f-5952-4ea0-a31b-a267f49f171e" /> * AS-IS (Classic UI) <img width="864" height="424" alt="AS-IS CLASSIC UI" src="https://github.com/user-attachments/assets/bc111aff-e95c-4427-a266-af7f9f600407" /> * TO-BE (New UI) <img width="870" height="305" alt="TO-BE NEW UI" src="https://github.com/user-attachments/assets/0555e5dc-2ee8-4000-b1eb-c7d2259e96b1" /> * TO-BE (Classic UI) <img width="875" height="275" alt="TO-BE CLASSIC UI" src="https://github.com/user-attachments/assets/e0a87e98-fde8-467b-9df3-d9ada39deb36" /> ### Questions: * Does the license files need to update? No * Is there breaking changes for older versions? No * Does this needs documentation? No -- 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: reviews-unsubscr...@zeppelin.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org