-
Notifications
You must be signed in to change notification settings - Fork 30
CORS Configuration for Admin API Services #87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Warning Rate limit exceeded@vishwab1 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 18 minutes and 17 seconds before requesting another review. β How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. π¦ How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. π Files selected for processing (1)
WalkthroughThis update centralizes and enhances CORS (Cross-Origin Resource Sharing) configuration for the admin API. It removes all Changes
Sequence Diagram(s)sequenceDiagram
participant Browser
participant SpringApp
participant JwtFilter
participant Controller
Browser->>SpringApp: HTTP Request (with Origin header)
SpringApp->>JwtFilter: Pass request to filter
JwtFilter->>JwtFilter: Check if Origin is allowed
alt Origin allowed
JwtFilter->>SpringApp: Add CORS headers to response
else Origin not allowed
JwtFilter->>SpringApp: Log warning, no CORS headers
end
alt OPTIONS request
JwtFilter-->>Browser: Respond 200 OK (no JWT validation)
else Other methods
JwtFilter->>JwtFilter: Validate JWT
JwtFilter->>Controller: Forward request
Controller-->>JwtFilter: Handle business logic
JwtFilter-->>Browser: Return response (with CORS headers if allowed)
end
Suggested reviewers
Poem
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. πͺ§ TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
π Outside diff range comments (3)
src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java (1)
64-70: String comparison bug β use.equals, not==
masterRes == "Data Updated"&masterRes == "Invalid Master Type"rely on
reference equality and will fail unpredictably.-if (masterRes == "Data Updated") { +if ("Data Updated".equals(masterRes)) { ... - if (masterRes == "Invalid Master Type") { + if ("Invalid Master Type".equals(masterRes)) {Same issue repeats in the other methods.
Fixing this prevents false-negatives in response handling.Also applies to: 104-112
src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)
122-127: DuplicatesendErrorcall β response is written twiceLines 122β127 call
response.sendErrortwo times in succession,
once before and once after the log statement. The second invocation is
redundant and risksIllegalStateException(βCommitted responseβ).-logger.warn("No valid authentication token found"); -response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token"); - -logger.warn("No valid authentication token found"); -response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token"); +logger.warn("No valid authentication token found"); +response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token");logs/admin-api.log.json (1)
1-164: Remove log artefacts from source controlRuntime log files do not belong in the repository; they bloat history,
risk leaking sensitive info, and trigger noisy diffs.
Addlogs/to.gitignoreand delete this file from the PR.
β»οΈ Duplicate comments (8)
src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java (1)
28-32: Same pre-flight caveat as noted forUomControllerThe
CrossOriginimport removal is correct.
The controller still constrains routes withheaders = "Authorization", which prevents OPTIONS pre-flight mapping and will break CORS from browsers. Apply the same fix recommended in the previous comment.src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java (1)
26-30: Duplicate: global CORS OK, but OPTIONS still blockedSee the earlier comment β remove the hard
headers="Authorization"constraint to allow browser pre-flights.src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java (1)
28-32: Duplicate: CORS import removed, pre-flight issue remainsSame recommendation: drop the
headers="Authorization"attribute so that global CORS can respond to OPTIONS requests.src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java (1)
100-104: Blank line marks removed annotation β revisitheaders="Authorization"Line 102 was modified when the
@CrossOriginannotation was deleted. Endpoints in this class still includeheaders = "Authorization"(e.g.saveCdssDetails). The same pre-flight concern applies: OPTIONS requests without that header will not be routed. Please consider removing that constraint across the controller.src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java (1)
24-30: Same CORS clean-up as previous controllerImport deletion aligns with global
CorsConfig. Just ensure no leftover@CrossOriginin this file.src/main/java/com/iemr/admin/controller/item/ItemController.java (1)
24-32: Consistent removal ofCrossOriginimportNo issues spotted; compilation should succeed as long as annotations were also deleted.
src/main/java/com/iemr/admin/controller/blocking/BlockingController.java (1)
24-32: Import cleanup verifiedMatches the global CORS refactor. Nothing else to flag here.
src/main/java/com/iemr/admin/controller/version/VersionController.java (1)
24-33: CORS import removal acknowledgedThe
/versionendpoint now relies on global CORS settings; change looks good.
π§Ή Nitpick comments (4)
src/main/environment/admin_example.properties (1)
28-28: Extend example for multiple origins.
The wildcardhttp://localhost:*covers local testing, but it may be helpful to illustrate how to specify multiple origins (e.g., comma-separated) in this sample file.src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java (2)
1801-1804: Null-safety for newisSanjeevaniflagFine to guard with
!= null, but consider a default value (false) to avoid three-state logic bleeding into persistence / JSON.-if (previl1.getIsSanjeevani() != null) { - resDataMap1.setIsSanjeevani(previl1.getIsSanjeevani()); -} +resDataMap1.setIsSanjeevani(Boolean.TRUE.equals(previl1.getIsSanjeevani()));
1860-1863: Duplicate pattern β refactor into helperThe
isSanjeevaninull-check is repeated here; extract into a small utility or setter method to keep controllers lean.src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)
134-151:isOriginAllowedbuilds regex on every request β pre-compute & cacheSplitting and converting every allowed origin to a regex for each hit
adds avoidable CPU overhead to all requests. Cache the compiled
patterns once in the constructor:-private boolean isOriginAllowed(String origin) { - ... - return Arrays.stream(allowedOrigins.split(",")) - .map(String::trim) - .anyMatch(pattern -> { - String regex = pattern - .replace(".", "\\.") - .replace("*", ".*") - .replace("http://localhost:.*", "http://localhost:\\d+"); - return origin.matches(regex); - }); -} +private final List<Pattern> originPatterns; + +public JwtUserIdValidationFilter(JwtAuthenticationUtil jwtAuthenticationUtil, + String allowedOrigins) { + this.jwtAuthenticationUtil = jwtAuthenticationUtil; + this.originPatterns = Arrays.stream( + Optional.ofNullable(allowedOrigins).orElse("").split(",")) + .map(String::trim) + .filter(s -> !s.isBlank()) + .map(this::toRegex) + .map(Pattern::compile) + .toList(); +} + +private boolean isOriginAllowed(String origin) { + return originPatterns.stream().anyMatch(p -> p.matcher(origin).matches()); +}
π Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
β Files ignored due to path filters (1)
logs/admin-api.log.json.2025-06-13.gzis excluded by!**/*.gz
π Files selected for processing (46)
logs/admin-api.log.json(1 hunks)src/main/environment/admin_ci.properties(1 hunks)src/main/environment/admin_example.properties(1 hunks)src/main/java/com/iemr/admin/config/CorsConfig.java(1 hunks)src/main/java/com/iemr/admin/controller/blocking/BlockingController.java(1 hunks)src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java(1 hunks)src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java(1 hunks)src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java(1 hunks)src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java(1 hunks)src/main/java/com/iemr/admin/controller/emailconfig/EmailConfigController.java(1 hunks)src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java(4 hunks)src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java(1 hunks)src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java(1 hunks)src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java(9 hunks)src/main/java/com/iemr/admin/controller/item/ItemController.java(1 hunks)src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java(1 hunks)src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java(1 hunks)src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java(1 hunks)src/main/java/com/iemr/admin/controller/nodalConfig/NodalConfigController.java(1 hunks)src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java(1 hunks)src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceTalukMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java(1 hunks)src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java(1 hunks)src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java(1 hunks)src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java(1 hunks)src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java(1 hunks)src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java(1 hunks)src/main/java/com/iemr/admin/controller/store/StoreController.java(1 hunks)src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java(1 hunks)src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java(1 hunks)src/main/java/com/iemr/admin/controller/uom/UomController.java(1 hunks)src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java(2 hunks)src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java(1 hunks)src/main/java/com/iemr/admin/controller/vanMaster/VanMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/version/VersionController.java(1 hunks)src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java(1 hunks)src/main/java/com/iemr/admin/utils/FilterConfig.java(1 hunks)src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java(4 hunks)
π§° Additional context used
𧬠Code Graph Analysis (1)
src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)
src/main/java/com/iemr/admin/utils/Constants.java (1)
Constants(3-9)
πͺ Biome (1.9.4)
logs/admin-api.log.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-8: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 8-9: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 9-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-37: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-38: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 38-39: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 39-40: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 40-41: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 41-42: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-43: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 43-44: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 44-45: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 45-46: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 46-47: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 47-48: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 48-49: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 49-50: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 50-51: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 51-52: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 52-53: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 53-54: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 54-55: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 55-56: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 56-57: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 57-58: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 58-59: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 59-60: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 60-61: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 61-62: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 62-63: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 63-64: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 64-65: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 65-66: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 66-67: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 67-68: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 68-69: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 69-70: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 70-71: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 71-72: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 72-73: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 73-74: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 74-75: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 75-76: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 76-77: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 77-78: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 78-79: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 79-80: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 80-81: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 81-82: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 82-83: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 83-84: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 84-85: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 85-86: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 86-87: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 87-88: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 88-89: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 89-90: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 90-91: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 91-92: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 92-93: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 93-94: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 94-95: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 95-96: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 96-97: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 97-98: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 98-99: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 99-100: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 100-101: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 101-102: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 102-103: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 103-104: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 104-105: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 105-106: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 106-107: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 107-108: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 108-109: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 109-110: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 110-111: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 111-112: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 112-113: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 113-114: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 114-115: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 115-116: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 116-117: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 117-118: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 118-119: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 119-120: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 120-121: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 121-122: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 122-123: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 123-124: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 124-125: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 125-126: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 126-127: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 127-128: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 128-129: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 129-130: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 130-131: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 131-132: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 132-133: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 133-134: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 134-135: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 135-136: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 136-137: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 137-138: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 138-139: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 139-140: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 140-141: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 141-142: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 142-143: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 143-144: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 144-145: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 145-146: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 146-147: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 147-148: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 148-149: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 149-150: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 150-151: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 151-152: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 152-153: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 153-154: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 154-155: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 155-156: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 156-157: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 157-158: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 158-159: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 159-160: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 160-161: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 161-162: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 162-163: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
β° Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: Analyze (java)
- GitHub Check: Package-test
π Additional comments (38)
src/main/environment/admin_ci.properties (1)
28-28: Ensure environment property coverage.
Ensure that theCORS_ALLOWED_ORIGINSenvironment variable is defined in all deployment environments and consider providing a sensible default for development or testing. Confirm that any additional environment-specific property files are updated accordingly.src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java (1)
25-25: Remove unused CrossOrigin import.
The import of@CrossOriginhas been removed to rely on the centralized CORS configuration. No remaining references to@CrossOriginexist in this class.src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java (1)
27-27: Remove unused CrossOrigin import.
Deleted the@CrossOriginannotation import as CORS is now configured globally.src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java (1)
29-29: Remove unused CrossOrigin import.
Eliminated the@CrossOriginimport; global CORS settings will handle cross-origin requests for these endpoints.src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java (1)
26-31: Letβs locate and review theJwtUserIdValidationFilterimplementation to confirm it skips preflight (OPTIONS) requests before enforcing authentication:#!/bin/bash # 1. Find the JWT filter class file rg -l "class JwtUserIdValidationFilter" --glob '*.java' # 2. Dump its content (first 200 lines) for inspection rg -l "class JwtUserIdValidationFilter" --glob '*.java' | xargs -I {} sed -n '1,200p' {}src/main/java/com/iemr/admin/controller/uom/UomController.java (1)
30-33: ```shell
#!/bin/bash
set -eLocate UomController.java in the repository
CONTROLLER_FILE=$(rg --files-with-matches 'class UomController' -t java)
echo "Found controller file: $CONTROLLER_FILE"Display lines around import statements and any RequestMapping usage
echo -e "\n--- Imports ---"
sed -n '1,50p' "$CONTROLLER_FILE"echo -e "\n--- @RequestMapping annotations ---"
rg -n -C2 '@RequestMapping' "$CONTROLLER_FILE"echo -e "\n--- Any occurrence of 'headers' attribute ---"
rg -n 'headers\s*=' "$CONTROLLER_FILE"</details> <details> <summary>src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java (1)</summary> `26-32`: **Import clean-up acknowledged** `CrossOrigin` import removal aligns with the new global CORS configuration. Nothing else to flag here. </details> <details> <summary>src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java (1)</summary> `53-56`: **Centralize CORS across TeleMedicine endpoints** Method-level `@CrossOrigin` annotations have been removed in favor of the new global `CorsConfig`. Please verify that your global configuration (allowed origins, HTTP methods, headers, credentials) correctly covers these endpoints and handles OPTIONS preflight requests as expected. </details> <details> <summary>src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java (1)</summary> `61-64`: **Remove method-level CORS annotations** Youβve dropped `@CrossOrigin` from the upload/download endpoints to rely on the centralized CORS setup. Ensure that the global CORS policy applies here tooβespecially for binary file transfers and OPTIONS preflight. </details> <details> <summary>src/main/java/com/iemr/admin/controller/store/StoreController.java (1)</summary> `55-58`: **Consolidated CORS for store-management APIs** All method-level `@CrossOrigin` markers have been removed in favor of the global configuration. Confirm that the new `CorsConfig` class (and associated properties) allow these `/createStore`, `/editStore`, `/getAllStore`, etc., endpoints to be invoked from approved origins, including proper handling of preflight requests. </details> <details> <summary>src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java (1)</summary> `52-55`: **Unified CORS via global config** Removed method-level CORS annotations; global CORS should now cover `getFacility`, `addFacility`, `editFacility`, `deleteFacility`, and `checkFacilityTypeCode`. Please test these endpoints under different origins (including preflight) to confirm the centralized settings are effective. </details> <details> <summary>src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java (1)</summary> `55-58`: **Global CORS policy for ServicePointController** Method-level `@CrossOrigin` annotations have been stripped out. Validate that the new `CorsConfig` and updated JWT filter correctly inject CORS headers (and short-circuit OPTIONS) for all `/servicePointMaster/*` endpoints. </details> <details> <summary>src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java (1)</summary> `32-32`: **Removed `@CrossOrigin` import; ensure global CORS applies** The per-method `@CrossOrigin` annotations have been removed in favor of a centralized `CorsConfig`. Verify that this configuration covers the `/createOrder`, `/UpdateOrder`, and `/deleteOrder` endpoints and correctly handles OPTIONS preflight requests before JWT validation. </details> <details> <summary>src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java (1)</summary> `31-31`: **Removed `@CrossOrigin` import; centralize CORS** Method-level CORS annotations were stripped out. Confirm that your global `CorsConfig` bean is picked up at startup and applies to `/createDrugtype`, `/getDrugtype`, `/editDrugtype`, and `/deleteDrugtype` paths, including preflight handling. </details> <details> <summary>src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java (1)</summary> `31-31`: **Removed `@CrossOrigin` import; verify CORS coverage** All method-level CORS declarations were removed. Please ensure your centralized CORS configuration covers endpoints like `/mapItemtoStrore`, `/editItemtoStrore`, `/deleteItemtoStrore`, and other mappings in this controller, including OPTIONS preflight support. </details> <details> <summary>src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java (1)</summary> `27-27`: **Removed `@CrossOrigin` import; verify global CORS mapping** The controller no longer uses `@CrossOrigin`. Make sure your global CORS setup includes `/createCalibrationStrip`, `/fetchCalibrationStrips`, `/deleteCalibrationStrip`, and `/updateCalibrationStrip`, and that preflight requests are permitted before authentication filters. </details> <details> <summary>src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java (1)</summary> `28-28`: **Removed `@CrossOrigin` import; ensure CORS on `/zonemaster`** With all method-level CORS annotations removed, confirm that your global `CorsConfig` applies to every `/zonemaster/**` endpoint, including proper handling of OPTIONS preflight ahead of JWT validation. </details> <details> <summary>src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java (1)</summary> `24-30`: ```shell #!/bin/bash # Re-run search for CrossOrigin annotations and imports in Java files rg --type java --line-number --no-heading '@CrossOrigin' rg --type java --line-number --no-heading '^import .*CrossOrigin'src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java (1)
29-35: Centralized CORS handling β looks good, but confirm filter coverage
@CrossOrigin-related imports/annotations have been removed. π
Please double-check that every endpoint in this controller is still reachable from the intended front-end origins once the newCorsConfig+JwtUserIdValidationFilterare active in all environments (dev / staging / prod).src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java (1)
35-40: Import cleanup aligns with global CORS configRemoval of
@CrossOriginimports is consistent with the new central configuration β nothing further to do.src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java (1)
32-37: Import tidy-up confirmed
CrossOriginimport dropped β consistent with new global CORS module.src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java (1)
31-36: CORS annotation removal OKNothing else modified; endpoints should inherit the global CORS rules.
src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java (1)
31-31: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
Centralizing CORS handling viaCorsConfigeliminates repetitive@CrossOriginusages in controllersβthis removal improves maintainability and ensures consistent policy enforcement.src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java (1)
31-31: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
Central CORS configuration now lives inCorsConfig; removing the per-controller annotations reduces duplication and potential inconsistencies.src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java (1)
28-28: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
All CORS policy is now managed centrally, so per-method annotations were (correctly) removed to streamline controller code.src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java (1)
28-28: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
This aligns with the new centralized CORS setup, ensuring consistent headers across all API endpoints.src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java (1)
32-32: Removed redundant CrossOrigin import/annotations in favor of global CORS config.
Eliminating scattered CORS annotations cleans up the controllers and delegates policy enforcement to the global configuration.src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java (1)
34-34: Ensure import for @Autowired is present
The addedimport org.springframework.beans.factory.annotation.Autowired;is necessary to support the numerous@Autowiredannotations in this controller.src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java (8)
114-115: Reformat status update call for readability
The split of theupdateFoetalMonitorTestMasterStatusinvocation across two lines improves clarity without altering behavior.
174-175: Reformat JSON deserialization
Refactored thefromJsoncall into two lines for better readability; logic remains unchanged.
194-195: Reformat JSON deserialization
Split thefromJsoninvocation over two lines to enhance readability. No functional changes.
242-243: Reformat JSON deserialization
Adjusted thefromJsoncall formatting to separate arguments for readability; behavior is identical.
270-271: Reformat JSON deserialization
Reorganized thefromJsoncall across lines to improve code clarity; no logic change.
303-304: Reformat JSON deserialization
Split thefromJsoninvocation for cleaner formatting; functionality is preserved.
330-331: Reformat JSON deserialization
ThefromJsoncall is now on two lines for clarity; logic remains the same.
357-358: Reformat JSON deserialization
Reformatted thefromJsoninvocation across two lines to enhance readability; no impact on behavior.src/main/java/com/iemr/admin/config/CorsConfig.java (1)
23-27: Nit: expose headers list duplicates whatβs already allowed
allowedHeaders("*")already permits all request headers, so
manually duplicating"Authorization"and"Jwttoken"in
exposedHeadersis sufficient.
No action required β just a heads-up.src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java (1)
49-53: OPTIONS short-circuit suppresses body but may omit CORS headers for disallowed originsYou return 200 for every OPTIONS request regardless of origin check
above, but CORS headers are only added whenisOriginAllowedreturns
true. Browsers will still block the caller if the pre-flight response
lacksAccess-Control-Allow-Origin.Consider:
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { - logger.info("OPTIONS request - skipping JWT validation"); - response.setStatus(HttpServletResponse.SC_OK); - return; + logger.info("OPTIONS request - skipping JWT validation"); + // Ensure we always give CORS response for allowed origins. + if (origin == null || !isOriginAllowed(origin)) { + response.sendError(HttpServletResponse.SC_FORBIDDEN, "CORS origin not allowed"); + } else { + response.setStatus(HttpServletResponse.SC_OK); + } + return; }
src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
π§Ή Nitpick comments (1)
logs/admin-api.log.json (1)
1-164: Review log file inclusion
This appears to be a generated runtime log; consider removing it from version control and addinglogs/(or the specific filename) to.gitignoreto prevent accidental commits and repository bloat.
π Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
β Files ignored due to path filters (1)
logs/admin-api.log.json.2025-06-13.gzis excluded by!**/*.gz
π Files selected for processing (46)
logs/admin-api.log.json(1 hunks)src/main/environment/admin_ci.properties(1 hunks)src/main/environment/admin_example.properties(1 hunks)src/main/java/com/iemr/admin/config/CorsConfig.java(1 hunks)src/main/java/com/iemr/admin/controller/blocking/BlockingController.java(1 hunks)src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java(1 hunks)src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java(1 hunks)src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java(1 hunks)src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java(1 hunks)src/main/java/com/iemr/admin/controller/emailconfig/EmailConfigController.java(1 hunks)src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java(3 hunks)src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java(1 hunks)src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java(1 hunks)src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java(9 hunks)src/main/java/com/iemr/admin/controller/item/ItemController.java(1 hunks)src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java(1 hunks)src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java(1 hunks)src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java(1 hunks)src/main/java/com/iemr/admin/controller/nodalConfig/NodalConfigController.java(1 hunks)src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java(1 hunks)src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceTalukMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java(1 hunks)src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java(1 hunks)src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java(1 hunks)src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java(1 hunks)src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java(1 hunks)src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java(1 hunks)src/main/java/com/iemr/admin/controller/store/StoreController.java(1 hunks)src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java(1 hunks)src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java(1 hunks)src/main/java/com/iemr/admin/controller/uom/UomController.java(1 hunks)src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java(2 hunks)src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java(1 hunks)src/main/java/com/iemr/admin/controller/vanMaster/VanMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java(1 hunks)src/main/java/com/iemr/admin/controller/version/VersionController.java(1 hunks)src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java(1 hunks)src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java(1 hunks)src/main/java/com/iemr/admin/utils/FilterConfig.java(1 hunks)src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java(4 hunks)
β Files skipped from review due to trivial changes (6)
- src/main/environment/admin_example.properties
- src/main/java/com/iemr/admin/controller/drugstrength/DrugStrength.java
- src/main/java/com/iemr/admin/controller/locationmaster/LocationMasterController.java
- src/main/java/com/iemr/admin/controller/labmodule/LabModuleController.java
- src/main/java/com/iemr/admin/controller/employeemaster/EmployeeMasterController.java
- src/main/java/com/iemr/admin/controller/snomedMapping/SnomedMappingController.java
π§ Files skipped from review as they are similar to previous changes (39)
- src/main/java/com/iemr/admin/controller/stockEntry/StockEntryController.java
- src/main/environment/admin_ci.properties
- src/main/java/com/iemr/admin/controller/vanServicePointMapping/VanServicePointMappingController.java
- src/main/java/com/iemr/admin/controller/emailconfig/EmailConfigController.java
- src/main/java/com/iemr/admin/controller/calibration/CalibrationController.java
- src/main/java/com/iemr/admin/controller/itemfacilitymapping/MItemFacilityMappingController.java
- src/main/java/com/iemr/admin/controller/drugtype/DrugtypeController.java
- src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceTalukMappingController.java
- src/main/java/com/iemr/admin/controller/store/StoreController.java
- src/main/java/com/iemr/admin/controller/villageMaster/VillageMasterController.java
- src/main/java/com/iemr/admin/controller/userParkingPlaceMap/UserParkingPlaceMapController.java
- src/main/java/com/iemr/admin/controller/manufacturer/ManufacturerController.java
- src/main/java/com/iemr/admin/controller/nodalConfig/NodalConfigController.java
- src/main/java/com/iemr/admin/controller/servicePoint/ServicePointController.java
- src/main/java/com/iemr/admin/controller/labmodule/SmartDiagnosticsController.java
- src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java
- src/main/java/com/iemr/admin/controller/questionnaire/QuestionnaireController.java
- src/main/java/com/iemr/admin/controller/createorder/CareStreamCreateOrderController.java
- src/main/java/com/iemr/admin/controller/item/ItemController.java
- src/main/java/com/iemr/admin/controller/version/VersionController.java
- src/main/java/com/iemr/admin/controller/rolemaster/RoleMasterController.java
- src/main/java/com/iemr/admin/controller/telemedicine/VideoConsultationController.java
- src/main/java/com/iemr/admin/controller/uptsu/FacilityController.java
- src/main/java/com/iemr/admin/controller/zonemaster/ZoneMasterController.java
- src/main/java/com/iemr/admin/controller/vanSpokeMapping/VanSpokeMappingController.java
- src/main/java/com/iemr/admin/controller/parkingPlace/ParkingPlaceController.java
- src/main/java/com/iemr/admin/controller/telemedicine/TeleMedicineController.java
- src/main/java/com/iemr/admin/controller/blocking/BlockingController.java
- src/main/java/com/iemr/admin/controller/uom/UomController.java
- src/main/java/com/iemr/admin/controller/vanMaster/VanMasterController.java
- src/main/java/com/iemr/admin/controller/stockExit/StockExitController.java
- src/main/java/com/iemr/admin/controller/foetalmonitormaster/FoetalMonitorController.java
- src/main/java/com/iemr/admin/controller/pharmacologicalcategory/PharmacologicalCategoryController.java
- src/main/java/com/iemr/admin/utils/FilterConfig.java
- src/main/java/com/iemr/admin/controller/provideronboard/ProviderOnBoardController.java
- src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java
- src/main/java/com/iemr/admin/config/CorsConfig.java
- src/main/java/com/iemr/admin/controller/employeemaster/EmployeeSignatureController.java
- src/main/java/com/iemr/admin/controller/supplier/SupplierMasterController.java
π§° Additional context used
πͺ Biome (1.9.4)
logs/admin-api.log.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-8: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 8-9: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 9-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-37: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-38: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 38-39: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 39-40: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 40-41: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 41-42: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-43: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 43-44: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 44-45: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 45-46: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 46-47: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 47-48: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 48-49: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 49-50: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 50-51: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 51-52: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 52-53: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 53-54: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 54-55: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 55-56: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 56-57: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 57-58: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 58-59: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 59-60: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 60-61: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 61-62: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 62-63: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 63-64: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 64-65: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 65-66: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 66-67: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 67-68: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 68-69: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 69-70: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 70-71: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 71-72: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 72-73: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 73-74: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 74-75: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 75-76: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 76-77: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 77-78: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 78-79: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 79-80: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 80-81: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 81-82: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 82-83: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 83-84: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 84-85: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 85-86: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 86-87: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 87-88: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 88-89: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 89-90: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 90-91: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 91-92: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 92-93: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 93-94: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 94-95: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 95-96: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 96-97: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 97-98: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 98-99: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 99-100: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 100-101: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 101-102: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 102-103: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 103-104: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 104-105: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 105-106: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 106-107: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 107-108: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 108-109: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 109-110: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 110-111: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 111-112: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 112-113: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 113-114: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 114-115: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 115-116: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 116-117: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 117-118: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 118-119: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 119-120: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 120-121: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 121-122: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 122-123: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 123-124: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 124-125: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 125-126: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 126-127: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 127-128: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 128-129: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 129-130: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 130-131: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 131-132: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 132-133: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 133-134: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 134-135: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 135-136: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 136-137: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 137-138: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 138-139: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 139-140: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 140-141: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 141-142: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 142-143: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 143-144: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 144-145: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 145-146: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 146-147: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 147-148: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 148-149: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 149-150: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 150-151: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 151-152: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 152-153: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 153-154: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 154-155: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 155-156: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 156-157: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 157-158: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 158-159: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 159-160: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 160-161: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 161-162: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 162-163: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
β° Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Analyze (java)
|



π Description
JIRA ID: 1246
Please provide a summary of the change and the motivation behind it. Include relevant context and details.
β Type of Change
βΉοΈ Additional Information
Please describe how the changes were tested, and include any relevant screenshots, logs, or other information that provides additional context.
Summary by CodeRabbit