Skip to content

task/JS-927b fix PMD rule violations#1198

Merged
Christian-Cubos-cgi merged 29 commits into
masterfrom
task/JS-927b
Jul 23, 2026
Merged

task/JS-927b fix PMD rule violations#1198
Christian-Cubos-cgi merged 29 commits into
masterfrom
task/JS-927b

Conversation

@Christian-Cubos-cgi

@Christian-Cubos-cgi Christian-Cubos-cgi commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

JIRA link (if applicable)

https://tools.hmcts.net/jira/browse/JS-927

Change description

As a developer I want to reduce the PMDs on Juror api

[ x] AI-assisted

AI Specific Change description

The code was reviewed by Codex at a high level

Does this PR introduce a breaking change? (check one with "x")

[ ] Yes
[x] No

EPatterson1 and others added 20 commits July 17, 2026 10:08
* Removing empty constructor in JurorDigitalApplication.java

* Migrating from throws in method definition to JavaDoc comment

* Moving jwtPayload definition closer to usage

* Remove PMD.TooManyFields as it wasn't picked up. PMD.TooManyMethods was

* Changing bureauJurorDetail to BUREAU_JUROR_DETAIL to match RegEx required

* Removing abstract keyword from DisCode.java, making class final and providing a private constructor

* Removing abstract keyword from IPoolStatus.java, making class final and providing a private constructor

* Adding IllegalArgumentException to private constructors - copying ReasonableAdjustmentQueries.

* Making ReasonableAdjustmentQueries.java final not abstract

* Changing names of final variables, moving all declarations to top and suppress warnings on BooleanExpression which it wants to be Boolean

* StatsExcusalsQueries.java: Changing names of final variables, moving all declarations to top and suppress warnings on BooleanExpression which it wants to be Boolean

* Migrating THistoryCode.java to use private constructors and be final

* Suppress warnings on BooleanExpression in UserQueries.java

* JurorCommsNotifyTemplateType.java: removing unused fields and unrequired constructors + changing naming structure to screaming snake case

* Abstracting unknown batch job object creation into private helper method

* UrgentStatusScheduler.java: inverting if condition and suppressing CognitiveComplexity - I think this is fine to read and only just breaches (17 > 15)

* Adding @FunctionalInterface to AssignOnUpdateService.java

* Remove throws AutoAssignException from autoAssign method signature

* Remove throws AutoAssignException from method signatures and suppressing warnings on CouplingBetweenObjects

* Making BureauBacklogAllocateService.java a @FunctionalInterface

* Suppressing warnings on objects in loops for LinkedLists, preserving stack trace on BureauBacklogAllocateException

* Making BureauOfficerAllocatedRepliesService.java a FunctionalInterface

* Making BureauProcessService.java a FunctionalInterface

* Making CourtCatchmentService.java a FunctionalInterface

* Making DashboardDeferralExcusalService.java a FunctionalInterface

* Migrate from HashMap to ConcurrentHashMap, suppress complexity warnings and flipping if condition in process function

* Removing control flow with Exceptions and suppressing Cyclomatic Complexity in JurorCommsNotificationServiceImpl.java

* JurorCommsNotifyPayLoadServiceImpl.java: adding appropriate suppressions, migrating to ConcurrentHashMap, renaming "setUp" methods to "get"

* JurorCommsSentToCourtServiceImpl.java: adding suppressions to process method and bubbling exceptions up appropriately

* JurorCommsWeeklyInfoServiceImpl.java: adding suppressions to process method and bubbling exceptions up appropriately

* JurorDashboardCalculateService.java: suppressing TooManyMethods warning - all needed

* JurorDashboardCalculateServiceImpl.java: suppressing TooManyMethods warning - all needed

* JurorDashboardDataServiceImpl.java: Condensing variable declaration and assignment

* JurorDashboardServiceImpl.java: Adding suppressions, using IsEmpty over size() > 0 and foreach over for with count

* JurorDashboardSmartSurveyImportImpl.java: Adding suppressions, inverting if conditions, migrate to ConcurrentHashMap, extracting object instantion in loops to static methods and bubbling exceptions up appropriately

* JurorExpenseCalcService.java: Annotating with @FunctionalInterface

* JurorExpenseCalcServiceImpl.java: Suppressing cyclomatic complexity PMDs

* JurorResponseSearchService.java: @FunctionalInterface annotation

* JurorResponseSearchServiceImpl.java: making nested SearchResults class final

* JurorResponsesSummonedService.java: @FunctionalInterface annotation

* ResponseDisqualifyService.java: moving from throws in method signature to JavaDoc comment

* DisqualifyException.java: allow propagation of Throwable. ResponseDisqualifyServiceImpl.java: put throws in JavaDocs, propagate exceptions, suppress Exception control flow due to it being appropriate use here

* ResponseExcusalServiceImpl.java: JavaDoc comments over throws, suppressing cyclomatic complexity and exceptions as flow control

* Adding @FunctionalInterface in ResponseMergeService.java, ResponsePhoneLogService.java and ResponseStatusUpdateService.java

* ResponseStatusUpdateServiceImpl.java: Appropriate suppressions, inverting if conditions, removing empty quotes in string concatenation

* ResponseUpdateService.java: remove final from parameters

* ResponseUpdateServiceImpl.java: adding suppressions where needed, removing default case on enum switch, remove unused vars, inverted if conditions for x != y to x == y and else, JavaDoc for exceptions

* ScheduledService.java: adding @FunctionalInterface annotation

* UserServiceImpl.java: remove unused packages, adding appropriate suppressions, adding JavaDocs for exceptions, flip if conditions, methods for object creation in for loop (including appending StringBuilder via chain)

* InvalidJwtAuthenticationException.java: changing Throwable parameter to be "cause" and not "t"

* NotifyConfig.java: Integer.valueOf to Integer.parseInt

* SecurityConfig.java: suppress warnings on "throws Exception" because .build on AuthenticationManager does the same, inherited problem.

* SecurityConfigEndpoints.java: suppress warnings on "throws Exception" because .build on AuthenticationManager does the same, inherited problem. Also removing "throws Exception" from protected method which does not need it.

* BureauJwtAuthenticationProvider.java: putting exception type thrown into JavaDoc comment

* BureauJwtPayload.java: Migrate HashMap to ConcurrentHashMap

* BureauPreAuthenticationTokenFilter.java: explicitly call super()

* HmacJwtAuthenticationProvider.java: Suppress cyclomatic complexity and JavaDoc for exception thrown

* HmacPreAuthenticationTokenFilter.java: explicit call to super()

* JurorErJwtAuthenticationProvider.java: moving exception from method signature to JavaDoc comment.

* PublicJwtAuthenticationProvider.java: moving exception from method signature to JavaDoc comment.

* PublicPreAuthenticationTokenFilter.java: explicit call to super()

* JurorResponseDto.java: suppress PMDs as many complain about too many fields which is more tolerable in DTOs

* JurorDetailDto.java: suppress PMDs as many complain about too many fields which is more tolerable in DTOs

* HolidaysQueries.java: renaming and moving static final fields to top, suppressing warning on LinguisticNaming - BooleanExpression is fine for "is..." method name

* JurorResponse.java: suppressions around fields and false positive on PrePersist unused method

* JurorResponseQueries.java: ordering and renaming static final fields, suppressing warnings on naming as predicate is ok for "is..." methods

* EmailNotification.java: fields at the top and explicit super call in constructor

* Notification.java: removing abstract keyword (no abstract methods) and adding protected constructor which throws IllegalArgumentException on instantiation

* NotificationReceipt.java: removing abstract keyword (no abstract methods) and adding protected constructor which throws IllegalArgumentException on instantiation

* NotifyAdapter.java: place throws NotifyApiException into JavaDoc not method signature.

* NotifyAdapterImpl.java: suppress complexity, JavaDoc for exceptions over method signature, inverting if conditions so the positive case, not negative, is in the if.

* NotifyTemplateType.java: removing excess brackets

* SmsNotification.java: fields at top + explicit super() call in constructor

* HolidaysDateService.java / HolidaysService.java: @FunctionalInterface annotation added

* HolidaysServiceImpl.java: simpler array instantiation and foreach over for

* JurorNotificationService.java: remove throws from method signature, covered in JavaDoc

* JurorNotificationServiceImpl.java: JavaDoc for throws, ConcurrentHashMap used over HashMap and suppress warnings on acceptable exception throwing

* JurorPersistenceService.java: @FunctionalInterface added and remove final keyword from parameter

* JurorServiceImpl.java: suppress warnings around complexity, imports and coupling

* MessagesServiceImpl.java: suppress warnings around complexity, control flow and imports. Migrate to ConcurrentHashMap and extract object creation to functions inside for loops

* PublicAuthenticationService.java: @FunctionalInterface added.

* PublicAuthenticationServiceImpl.java: Suppress warnings around complexity, invert if conditions, explicit super call in JurorAlreadyRespondedException

* StraightThroughProcessingServiceException.java: removing duplicate calls in subclasses to identical method in super class, removing synchronized keyword from the fillInStackTrace method

* UploadController.java: single parameter needn't be named

* Deadline.java: simplifying if statement into one-line return

* FileUploads.java: document empty constructor

* LaUserId.java: document empty constructor and rename parameter in equals method to be "object" not "o"

* FileUploadsRepository.java: suppress warnings on naming as underscore required in field name

* LaNotificationServiceImpl.java: suppress warnings, move variables closer to use and use ConcurrentHashMap over HashMap

* JurorAudit.java: Suppress warnings around too many fields

* PncCheckServiceClient.java / SchedulerServiceClient.java: Adding @FunctionalInterface annotation

* PncCheckServiceClientImpl.java / SchedulerServiceClientImpl.java: Suppress warnings around exception as flow control, appropriate.

* CreatePoolController.java: suppress warnings on CouplingBetweenObjects

* JurorExpenseController.java: Suppressions on Naming (because ResponseEntity<Void> is fine) and coupling

* JurorManagementController.java / JurorRecordController.java: suppressing coupling between objects warnings

* JurorResponseController.java: removing "throws" from updateResponseStatus method, JavaDoc already in place

* LetterController.java: suppress warnings around coupling

* RequestPoolController.java: suppress warnings around coupling and excessive imports

* StaffController.java: removing exception from changeStaffAssignment signature, JavaDoc present.

* TrialController.java: suppressing excessive imports

* UndeliverableResponseController.java: migrating exception from throws in signature to JavaDoc

* ReportController.java: remove "value" from @RequestParam when only one parameter used, suppress warnings on coupling & imports

* StandardReportRequest.java: Suppress warnings around too many fields

* DailyUtilisationReportJurorsResponse.java: removing unnecessary suppression

* DigitalSummonsRepliesReportResponse.java: removing unnecessary suppression

* GroupedTableData.java: varargs in removeDataTypes and @OverRide in getSize()

* MonthlyUtilisationReportResponse.java: remove unrequired suppression on class name

* ResponsesCompletedReportResponse.java: remove unrequired suppression on class name and suppress method naming warnings

* StandardTableData.java: Suppress warnings on method "of" short name

* WeekendAttendanceReportResponse.java: remove suppression on short class name

* YieldPerformanceReportResponse.java: making fields in TableHeading enum final

* EditJurorRecordRequestDto.java: Suppress TooManyFields

* JurorPaperResponseDto.java: Suppress TooManyFields

* ExpenseDetailsWithOriginalDto.java: remove "value" from @JsonIgnoreProperties when it's only parameter

* ContactLogListDto.java: suppress final on ContactLogDataDto parameters, may not be initialised

* CourtLocationDataDto.java: suppress final on parameters, may not be initialised

* JurorDetailsResponseDto.java: Remove excess parameters

* JurorOverviewResponseDto.java: Too many fields suppression

* JurorRecordSearchDto.java: suppress warnings around final field

* JurorStatusDto.java: Suppress warnings around short method name for "of" and renaming getActive() to isActive()

* PageDto.java: suppress warnings around short class name for "Sort"

* PoolCreatedMembersListDto.java: making fields final in nested class

* PoolHistoryListDto.java: suppress immutable field warnings on nested class

* PoolRequestSearchListDto.java: suppress cyclomatic complexity and inverting if condition

* LetterResponseData.java: remove abstract keyword and make protected constructor

* JurorToSendMessageBase.java: remove abstract keyword

* Appearance.java: ConcurrentHashMap over HashMap, suppressions around fields, methods and imports as well as default values which need specifying for @Default.Builder in Lombok.

* AppearanceId.java: short method name suppression

* BulkPrintData.java: suppress default boolean field warning as @Builder.Default needs it

* CodeType.java: remove unrequired suppressions

* CourtLocationQueries.java: remove abstract and make protected construct which throws IllegalArgumentException

* CsvBuilder.java: do not reassign data

* CurrentlyDeferredQueries.java: remove abstract keyword and implement IllegalArgumentException in protected constructor

* ExpenseRates.java: remove unrequired suppression

* ExpenseRatesDto.java: suppress warnings around default value on @Builder.Default (there's a todo there)

* IJurorStatus.java: remove abstract keyword and implement IllegalArgumentException in protected constructor

* Juror.java: suppress warnings around excessive imports and too many fields

* JurorPool.java: suppress warnings on too many fields and @PrePersist false positive.

* LowLevelFinancialAuditDetails.java: suppress unusued private fields as compositive primary key required and too many fields

* LowLevelFinancialAuditDetailsIncludingApprovedAmounts.java: suppress unusued private fields as compositive primary key required and too many fields

* ModJurorDetail.java: too many fields suppression.

* NotifyTemplateMapperMod.java: removing excess brackets and making a field final where required.

* PoliceCheck.java: removing unnecessary PoliceCheck on constants, suppress warning on linguistic naming as Character method which is essentially Boolean

* PoolComment.java: suppress warnings around unused private method which is called via @PreUpdate

* PoolRequestQueries.java: remove abstract keyword and provide protected constructor which throw IllegalArgumentException

* ReportsJurorPayments.java: suppress warnings on too many fields.

* SortMethod.java: seems to think Enum should be functional interface, suppressing.

* SortMethod.java: @FunctionalInterface added on nested interface

* User.java: suppress short class name, remove empty constructor, use EnumSet instead of new HashSet<>()

* Voters.java: suppress too many fields

* AbstractJurorResponse.java: suppress warnings on excessive imports and TooManyFields, renaming boolean methods to be isX() rather than getX()

* CombinedJurorResponse.java: suppress warnings about final fields conflict with @Builder.Default and unused private method which is called via @PrePersist

* HasActive.java: @FunctionalInterface annotation added and boolean methods should be of type isX()

* HasEnabled.java: @FunctionalInterface annotation

* ExcusalCodeEnum.java: move exception to javadoc from signature

* HistoryCodeMod.java: suppress warnings around too many public methods and fields on enum class

* PaymentMethod.java: suppress linguistic naming warning, isApplicableFunction is fine.

* JurorStatusGroup.java: making statusList final

* MissingInformation.java: inverting if condition

* MojException.java: suppress warnings on public count

* RestResponseEntityExceptionHandler.java: avoid reassigning body variable, migrate to ConcurrentHashMap and suppress too many methods

* AbstractReport.java: Suppression on coupling between objects, god class and warnings on method being abstract, concurrent hash map use, override annotation missing

* DataType.java: Override annotation and remove final keyword on getId(), suppress warnings on excessive public count

* ReportGroupBy.java: adding @OverRide annotations where missing

* ExpenseDataTypes.java: removing final on getId() method and removing PMD.ArrayIsStoredDirectly suppression

* PaymentStatusDataTypes.java: removing final on getId() method and removing PMD.ArrayIsStoredDirectly suppression

* PendingJurorTypes.java: removing final on getId() method and removing PMD.ArrayIsStoredDirectly suppression

* ReportsJurorPaymentsDataTypes.java: removing final on getId() method and removing PMD.ArrayIsStoredDirectly suppression

* AvailableListByDateReportBureau.java: Converting HashMap to ConcurrentHashMap

* AvailableListByDateReportCourt.java: Converting HashMap to ConcurrentHashMap

* PaymentStatusReport.java: Converting HashMap to ConcurrentHashMap

* DeferredListByCourtReport.java: removing unnecessary suppressions

* GroupByPaymentStatus.java: remove empty constructor - compiler generates these.

* GroupByPaymentType.java: suppress warning on Object being called isX as cast to boolean done after

* GroupByPoolStatusAndGraphReport.java: suppress warning on Object being called isX as cast to boolean done after

* ExpensePaymentByTypeReport.java: removing unused variable

* ExpensePaymentsUsingAdjustedLimitsReport.java: HashMap to ConcurrentHashMap, moving variables closer to use, extracting object instantiation in loops to private functions, making ExpensePaymentRecord final and suppressions

* JuryAttendanceAuditReport.java: migrate HashMap to ConcurrentHashMap

* ManualAdjustmentsToExpenseLimitsReport.java: extract object instantiation + suppressions

* OutgoingSMSMessagesReport.java: remove unused import, unrequired casting

* PoolAttendanceAuditReport.java: ConcurrentHashMap / HashMap migration

* PoolRatioReport.java: remove useless getLong()

* SummonedRespondedReport.java: HashMap -> ConcurrentHashMap

* WeekendAttendanceReport.java: using explicit types over var

* HasSize.java: use @FunctionalInterface annotation

* ActivePoolsRepositoryImpl.java: make CONFIRMED_FROM_BUREAU static and remove unnecessary unboxing with .intValue()

* AppearanceRepository.java: suppress warnings on too many methods.

* IAppearanceRepositoryImpl.java: suppress warnings on coupling between objects and excessive imports

* Making these interfaces @FunctionalInterface's

* IJurorPoolRepository.java: suppress too many methods warnings

* IJurorRepository.java: moving JUROR_FULL_NAME to top

* IPoolHistoryRepositoryImpl.java: extract the getPoolHistory to a method

* IPoolRequestSearchQueries.java: suppress too many methods warning

* JurorPoolQueries.java: suppress warnings on too many methods and BooleanExpression != Boolean, rename vars to be SCREAMING_SNAKE_CASE for static finals

* JurorPoolRepository.java: suppress warnings on TooManyMethods

* JurorPoolRepositoryImpl.java: suppressing warnings around complexity, imports and too many methods

* JurorRepositoryImpl.java: extending suppression on fetchFilteredJurorRecords to include Cyclomatic Complexity

* MessageQueries.java: move MESSAGES_DETAIL to top of class and rename to convention

* MessageTemplateRepositoryImpl.java: suppress warnings on cognitive complexity on messageSearch

* PoolRequestSearchQueries.java: suppress warnings on too many methods and linguistic naming for BooleanExpression

* RegionNotifyTemplateQueriesMod.java: moving fields to top and ensuring SCREAMING_SNAKE_CASE

* IJurorCommonResponseRepositoryModImpl.java: moving entityManager to top and renaming single letter vars

* JurorDigitalResponseRepositoryModImpl.java: making fields static and SCREAMING_SNAKE_CASE for QDigitalResponse and QUser

* CourtPrintLetterRepositoryImpl.java: removing unnecessary suppressions, suppress on cyclomatic complexity and remove default case on switch for enums

* DeferralDeniedLetterListRepositoryImpl.java: suppress warnings on cognitive complexity and deeply nested if statements + invert if condition on if(!cond)

* ExcusalRefusalLetterListRepositoryImpl.java: suppress warnings on cognitive complexity and deeply nested if statements, removing useless if statement, inverting condition for if(!cond)

* Annotate these interfaces with @FunctionalInterface

* AppSettingServiceImpl.java: using inline variables

* AssignOnUpdateServiceMod.java: @FunctionalInterface annotation added

* CourtDashboardServiceImpl.java: suppress warnings on coupling between objects, invert if condition and rename void method from getX()

* DeceasedResponseService.java: adding @FunctionalInterface annotation

* DeceasedResponseServiceImpl.java: suppress warnings around excessive imports

* DeferralResponseService.java: adding @FunctionalInterface annotation

* DeferralResponseServiceImpl.java: suppress warnings on complexity, inverting if conditions

* Annotating these interfaces with @FunctionalInterface

* FinancialAuditServiceImpl.java: remove unused method

* GenerateCoronerPoolNumberServiceImpl.java: remove default on newPoolNumber, chain append to StringBuilder and use StringBuilder instead of concatenation

* @FunctionalInterface annotation on GeneratePoolNumberService.java and HistoryTemplateService.java

* JurorHistoryService.java: suppress excessive public count for fields and methods

* JurorHistoryServiceImpl.java: suppress warnings on excessive public count, god class and too many methods. Adding missing @OverRide on methods

* JurorPaperResponseServiceImpl.java: suppressing warnings, removing unused parameters, inverting if conditions

* JurorRecordService.java: suppress warnings around excessive imports

* JurorRecordServiceImpl.java: remove dangling JavaDoc comments, inverting if condition and suppressing warnings

* ManagementDashboardServiceImpl.java: invert if condition, extract object creation to method and suppressions

* MessagingServiceImpl.java: suppress warnings

* PoolCreateService.java: remove "throws Exception" from signature

* PoolCreateServiceImpl.java: preserving stack trace with PoolCreateException.java and suppress warnings

* PoolMemberSequenceServiceImpl.java: moving variables closer to use in leftPadInteger(int intValue) method

* PoolRequestSearchServiceImpl.java: inverting if conditions and removing default case on enum switch

* PoolRequestServiceImpl.java: suppressing warnings

* ReissueLetterService.java: using Optional convention to override errors on Boolean return logic

* ReissueLetterServiceImpl.java: HashMap to ConcurrentHashMap migration, moving fields to top of class, object creation to function for inside loops and suppressions

* SjoTasksService.java: adding @FunctionalInterface annotation

* User.java: adding empty constructor back to allow tests to pass. Notification.java: remove protected constructor throwing IllegalArgumentException as this broke testing.

* JurorCommsNotificationServiceImpl.java: choosing suppressions over manual fix as this broke unit tests
* JS-568 Update to PMD7

* JS-568 openrewrite resolve pmd issues

* JS-568 Enums should be compared using == resolve pmd issues

* JS-568 PublicMemberInNonPublicType resolve pmd issues

* JS-568 fix pmd rule violation UnnecessaryFullyQualifiedName

* Task/JS-621 avoid selecting voters that match details of voters that need to be permanently disqualified. (#1140)

* task/JS-621 Excluded voters functionality

* Update CreatePoolController_loadVotersWithExcluded.sql

* Update CreatePoolController_createPool.sql

* Update VotersServiceImpl.java

* optimising exluded voters loop

* Update V2_106__add_excluded_voters_table.sql

* Update V2_109__add_excluded_voters_table.sql

* Task/JS-620 avoid selecting voters that match details of jurors known to be deceased (#1139)

* task/JS-620 Deceased voters

* Update CreatePoolController_createPool.sql

* updating the way deceased voters are retrieved

* optimising using a custom class

* Update VotersServiceImpl.java

* fixing merge conflicts

* Adding @FunctionalInterface annotation to AttendanceReportService.java

* Adding @FunctionalInterface annotation to CourtLetterPrintService.java

* Adding @FunctionalInterface annotation to CourtLetterService.java

* Adding @FunctionalInterface annotation to CourtroomService.java

* Adding @FunctionalInterface annotation to JudgeService.java

* Adding @FunctionalInterface annotation to FinancialAuditReportService.java

* Adding @FunctionalInterface annotation to JurorResponseRetrieveService.java

* Adding @FunctionalInterface annotation to JurySummoningMonitorReportService.java

* Adding @FunctionalInterface annotation to ReportService.java

* Adding @FunctionalInterface annotation to RequestInformationLetterService.java

* Adding @FunctionalInterface annotation to StaffService.java

* Adding @FunctionalInterface annotation to UndeliverableResponseService.java

* Adding @FunctionalInterface annotation to ValidationService.java

* Adding @FunctionalInterface annotation to VotersLocPostcodeTotalsService.java

* Adding @FunctionalInterface annotation to YieldPerformanceReportService.java

* Suppressed PMD.AvoidInstantiatingObjectsInLoops
Used explicit data types
in AttendanceReportServiceImpl.java

* Added suppressions for CyclomaticComplexity
Inverted if condition
in AttendanceReportServiceImpl.java

* CourtLetterServiceImpl.java: Added relevant suppressions,

* CourtLocationAuditServiceImpl.java: Replaced inefficient empty string checks

* CourtLocationUtils.java: Removed unused import

* DataUtils.java: Added relevant suppressions

* DisqualifyJurorServiceImpl.java: Added relevant suppressions

* ErAdministrationServiceImpl.java: Removed redundant default case in enum switch

* ErDashboardServiceImpl.java: Added relevant suppression(s)

* JurorAuditChangeService.java: Added relevant suppression(s)

* JurorAppearanceServiceImpl.java: Added relevant suppression(s), override annotation, and inverted if condition

* JurorAuditChangeServiceImpl.java: Added relevant suppression(s), ConcurrentHashMap implementation, simplified hasPropertyChanged logic, renamed setOriginalDateOfBirth to assignDefaultJurorDob

* ExpenseNumericLimit.java: Added underscores to max value for better readability

* JurorManagementConstants.java: Removed redundant protected access modifier

* JurorExpenseServiceImpl.java: Added relevant suppression(s), added ConcurrentHashMap implementation, inverted if condition, simplified logic in mapAppearancesToPendingApproval method

* JurorExpenseService.java: Added relevant suppression(s)

* JurorManagementServiceImpl.java: Added relevant suppression(s)

* JurorResponseRetrieveServiceImpl.java: Added relevant suppression(s)

* JurorUtils.java: Added relevant suppression(s)

* JurySummoningMonitorReportServiceImpl.java: Added final access modifier, refined string appending for readability

* LetterBase.java: Added relevant suppression(s)

* ManageDeferralsService.java: Added relevant suppression(s)

* ManageDeferralsServiceImpl.java: Added relevant suppression(s), inverted if condition(s)

* ManagePoolsServiceImpl.java: Added relevant suppression(s)

* NotifyUtil.java: Added relevant suppression(s)

* NullOrNonBlankValidator.java: Renamed variable to satisfy length complaints

* NumericStringValidator.java: Renamed variable to satisfy length complaints

* PaginationUtil.java: Added ConcurrentHashMap implementation

* PanelServiceImpl.java: Added relevant suppression(s)

* RepositoryUtils.java: Added relevant suppression(s)

* ResponseInspectorImpl.java: Added relevant suppression(s), collapsed  nested if statement(s)

* SearchPostcodeValidator.java: Renamed variable to satisfy length complaints

* SecurityUtil.java: Added final access modifier to constant, converted boolean logic to single return statement, added relevant suppression(s)

* StaffServiceImpl.java: Added relevant suppression(s), removed variable reassign

* StraightThroughProcessorServiceImpl.java: Added relevant suppression(s), removed unused fields in processJurorAgeDisqualification method, inverted if condition(s)

* SummonsRepliesReportServiceImpl.java: Added relevant suppression(s)

* SummonsReplyStatusUpdateServiceImpl.java: Added relevant suppression(s), inverted if condition

* UndeliverableResponseServiceImpl.java: Added relevant suppression(s)

* UserServiceModImpl.java: Added relevant suppression(s), removed redundant variable

* UtilisationReportService.java: Added final access modifier(s)

* UtilisationReportService.java: Added relevant suppression(s), removed redundant braces, added final access modifier(s),

* ValidateIfValidator.java: Removed redundant suppression

* VotersLocPostcodeTotalsServiceImpl.java: Added ConcurrentHashMap implementation, inverted if condition

* XeroxConstants.java: Added relevant suppression(s)

* YesNo10Converter.java: Returning a clone instead of exposing the array (for encapsulation purposes)

* YieldPerformanceReportServiceImpl.java: Added ConcurrentHashMap implementation

* StaffServiceImpl.java: Removed redundant suppression(s)

* TrialServiceImpl.java: Added relevant suppression(s)

* TrialServiceImpl.java: Added relevant suppression(s)

* StraightThroughProcessorServiceImpl.java: Reverted change

* AbstractControllerIntegrationTest.java: Added relevant suppression(s)

* AdministrationControllerITest.java: Added relevant suppression(s)

* AdministrationCourtRoomControllerITest.java: Added relevant suppression(s)

* AdministrationHolidaysControllerITest.java: Added relevant suppression(s)

* AdministrationJudgeControllerITest.java: Added relevant suppression(s)

* AbstractIntegrationTest.java: Added relevant suppression(s), addes final access modifier(s)

* AttendanceReportsITest.java: Added relevant suppression(s), added final access modifier(s)

* AuthenticationControllerITest.java: Added relevant suppression(s), narrowed scope of objects

* BallotPanelTrialReportITest.java: Added relevant suppression(s), removed unused methods

* BureauStaffControllerTest.java: Added relevant suppression(s), removed unused methods

* CompleteServiceControllerITest.java: Added relevant suppression(s)

* CourtCatchmentControllerTest.java: Added relevant suppression(s)

* CourtLocationControllerITest.java: Added relevant suppression(s)

* CreatePoolControllerITest.java: Added relevant suppression(s)

* DeceasedResponseControllerITest.java: Added relevant suppression(s)

* DeferralMaintenanceControllerITest.java: Added relevant suppression(s)

* DeferralRequestControllerITest.java: Added relevant suppression(s)

* DisqualifyJurorITest.java: Added relevant suppression(s), narrowed scope of objects

* ErAdministrationControllerITest.java: Added relevant suppression(s), narrowed scope of objects

* JurorCommsNotifyAdapterImplTest.java: Added relevant suppression(s), narrowed scope of objects

* JurorExpenseControllerITest.java: Added relevant suppression(s)

* JurorManagementControllerITest.java: Added relevant suppression(s)

* JurorPaperResponseControllerITest.java: Added relevant suppression(s)

* JurorRecordControllerITest.java: Added relevant suppression(s), used EnumSet instead of HashSet for enums

* JurorResponseControllerITest.java: Added relevant suppression(s)

* LaAuthenticationControllerITest.java: Added relevant suppression(s), narrowed scope of objects

* LaUserControllerITest.java: Added relevant suppression(s)

* LetterControllerITest.java: Added relevant suppression(s)

* ManagementDashboardControllerITest.java: Added relevant suppression(s)

* ManagePoolControllerITest.java: Added relevant suppression(s)

* MessagingControllerITest.java: Added relevant suppression(s)

* NotifyAdapterImplTest.java: Added relevant suppression(s)

* PanelControllerITest.java: Added relevant suppression(s)

* PanelListDetailedReportITest.java: Added relevant suppression(s)

* PanelMembersStatusReportITest.java: Added relevant suppression(s), removed unused methods

* PanelSummaryReportITest.java: Added relevant suppression(s)

* PncCheckServiceClientImplITest.java: Added relevant suppression(s)

* PoolHistoryControllerITest.java: Added relevant suppression(s)

* PoolSearchControllerITest.java: Added relevant suppression(s)

* PublicEndpointControllerIntegrationTest.java: Added relevant suppression(s)

* RequestPoolControllerITest.java: Added relevant suppression(s)

* ResponseUpdateControllerTest.java: Added relevant suppression(s)

* SjoTasksControllerITest.java: Added relevant suppression(s)

* StaffControllerITest.java: Added relevant suppression(s)

* SummonsRepliesReportsITest.java: Added relevant suppression(s)

* TrialControllerITest.java: Added relevant suppression(s)

* UserControllerITest.java: Added relevant suppression(s), narrowed scope of objects

* UtilisationReportsITest.java: Added relevant suppression(s), narrowed scope of objects

* WeekendAttendanceReportITest.java: Added relevant suppression(s)

* AdministrationControllerITest.java: Added relevant suppression(s), added relevant import(s)

* AdministrationCourtRoomControllerITest.java: Changed access modifier

* Added relevant RequiredArgsConstructor import(s)

* Refactored logic to satisfy PMDs relating inefficient null and empty checks.

* Adding and removing relevant suppression(s) to address IT and MAIN PMDs

* SecurityUtil.java: Refactored for improved readability

* CompleteServiceControllerITest.java: Added relevant RequiredArgsConstructor import

---------

Co-authored-by: EPatterson1 <140503822+EPatterson1@users.noreply.github.com>
Co-authored-by: akikrahman1 <149579836+akikrahman1@users.noreply.github.com>
* ValidateIfValidatorTest PMDs done

* AbstractValidatorTest PMDs done

* TestConstants.java PMDs done

* BigDecimalUtilsTest.java PMDs done

* PostgresqlContainer.java PMDs done

* LetterTestUtils.java PMDs done

* RequestInfoLetterTest.java PMDs done

* LetterBaseTest.java PMDs done. Added AvoidStringBufferField warning suppression.

* LetterBaseTest.java PMDs done.	Unnecessary qualifier 'java.time': 'LocalDate' is already in scope because it is imported in this file.

* JurorResponseUtilsTest.java PMDs done.

* JurorPoolUtilsTest.java PMDs done. Explicit type arguments can be replaced by a diamond: `new ArrayList<>()`

* TrialServiceImplTest.java PMDs done.

* PanelServiceImplTest.java PMDs done.

* ResponseInspectorImplTest.java PMDs done. Linguistics antipattern issues and final local variable name hearing02_01_2018 didn't match correct formatting

* LetterBaseTest.java PMDs done. Suppressing GodClass warning

* PanelServiceImplTest.java PMDs done.

* JurorResponseRetrieveServiceImplTest.java PMDs done.

* DisqualifyJurorServiceImplTest.java PMDs done.

* DisqualifyJurorDueToAgeServiceImplTest.java PMDs done.

* StaffServiceTest.java PMDs done.

* YieldPerformanceReportServiceImplTest.java PMDs done.

* SummonsRepliesReportServiceImplTest.java PMDs done.

* JurySummoningMonitorReportServiceImplTest.java PMDs done.

* AttendanceReportServiceImplTest.java PMDs done.

* ReissueLetterServiceTest.java PMDs done.

* ExemptionCertificateServiceTest.java PMDs done.

* CourtPostponementLetterServiceImplTest.java PMDs done.

* CourtLetterServiceTest.java PMDs done.

* CourtLetterPrintServiceTest.java PMDs done.

* JurorAuditChangeServiceTest.java PMDs done.

* JurorAppearanceServiceTest.java PMDs done.

* ErDashboardServiceImplTest.java PMDs done.

* JurorExpenseServiceTest.java PMDs done.

* ManageDeferralsServiceTest.java PMDs done.

* UndeliverableResponseServiceTest.java PMDs done.

* StraightThroughProcessorServiceImplTest.java PMDs done.

* PoolCreateServiceTest.java PMDs done.

* JurorResponseServiceImplTest.java PMDs done.

* JurorRecordServiceTest.java PMDs done.

* JurorPoolServiceImplTest.java PMDs done.

* JurorPaperResponseServiceImplTest.java PMDs done.

* ExcusalResponseServiceImplTest.java PMDs done.

* DeletePoolServiceTest.java PMDs done.

* DeceasedResponseServiceTest.java PMDs done.

* CourtLocationServiceTest.java PMDs done.

* CourtDashboardServiceImplTest.java PMDs done.

* CompleteServiceServiceImplTest.java PMDs done.

* AdministrationServiceImplTest.java PMDs done.

* UserRepositoryImplTest.java PMDs done.

* MessageTemplateRepositoryImplTest.java PMDs done.

* WeekendAttendanceReportTest.java PMDs done.

* UndeliverableListReportTest.java PMDs done.

* TrialStatisticsReportTest.java PMDs done.

* SummonedRespondedReportTest.java PMDs done.

* PostponedListByPoolReportTest.java PMDs done.

* PoolSelectionReportTest.java PMDs done.
* JS-568 Update to PMD7

* release5.26

* JS-568 update to ruleset

* JS-568 openrewrite resolve pmd issues

* JS-568 Enums should be compared using == resolve pmd issues

* JS-568 PublicMemberInNonPublicType resolve pmd issues

* Task/JS-621 avoid selecting voters that match details of voters that need to be permanently disqualified. (#1140)

* task/JS-621 Excluded voters functionality

* Update CreatePoolController_loadVotersWithExcluded.sql

* Update CreatePoolController_createPool.sql

* Update VotersServiceImpl.java

* optimising exluded voters loop

* Update V2_106__add_excluded_voters_table.sql

* Update V2_109__add_excluded_voters_table.sql

* Task/JS-620 avoid selecting voters that match details of jurors known to be deceased (#1139)

* task/JS-620 Deceased voters

* Update CreatePoolController_createPool.sql

* updating the way deceased voters are retrieved

* optimising using a custom class

* Update VotersServiceImpl.java

* fixing merge conflicts

* JS-568 fix erroneous codex changes

* JS-568 fix pmd rule violation UnnecessaryFullyQualifiedName

* JS-568 fix pmd rule violation UnnecessaryFullyQualifiedName

* updates to fix PMD failure

* Update JurorExpenseControllerITest.java

* Auto assignment and test utils pmds cleared

* JurorCommsNotificationServiceImplTest pmds done

* JurorCommsSentToCourtServiceImplTest pmds done

* JurorDashboardDataServiceImplTest pmds done

* JurorDashboardDataServiceImplTest pmds done

* JurorDashboardServiceImplTest pmds done

* PrintDataServiceImplTest solved some pmds

* PrintDataServiceImplTest solved some pmds

* ResponseExcusalServiceImplTest solved some pmds

* ResponseStatusUpdateThirdPartyRulesTest solved all pmds

* SecurityConfigTest solved pmds

* SecurityConfigTest solved pmds removed throws exception

* StraightThroughProcessorImplTest solved one pmd

* Changed method to final

* CreatePoolControllerTest removed Explicit type arg

* JurorRecordControllerTest removed

* CombinedExpenseDetailsDtoTest suppressed raw parameterised error

* Changed method names

* CombinedExpenseDetailsDtoTest suppressed raw param warning

* DeferredListByCourtReportTest solved override pmd

* AbstractGroupedReportTest suppressed short variable warning

* ExpensePaymentsUsingAdjustedLimitsReportTest suppressed underscore warning

* ManualAdjustmentsToExpenseLimitsReportTest suppressed underscore warning

* MessageTemplateRepositoryImplTest & UserRepositoryImplTest suppressed varargs warning

* CourtDashboardServiceImplTest solved linguistic name pmd

* CourtLocationServiceTest removed unused import

* DeletePoolServiceTest removed Type from diamond operator

* CourtLocationServiceTest removed unnecessary import suppression

* removed whitespace

* Suppressed multiple unit test should assert pmds

* TestUtils added multiple suppressions for pmd's. Singleton and refactor

* AutoAssignmentServiceImplTest Suppressed too many imports and methods warning.

* BureauBacklogAllocateServiceImplTest BureauBacklogCountServiceImplTest suppressed instantiating objets in loops

* PrintDataServiceImplTest Suppressed too many methods warning

* PrintDataServiceImplTest suppressed test should assert

* Finished adding suppressions for numerous files

* Removed unintended merge conflict issues

---------

Co-authored-by: EPatterson1 <140503822+EPatterson1@users.noreply.github.com>
Co-authored-by: akikrahman1 <149579836+akikrahman1@users.noreply.github.com>
@hmcts-jenkins-cnp
hmcts-jenkins-cnp Bot requested a deployment to preview July 17, 2026 11:18 Abandoned
added space in readme file to force rebuild
@Christian-Cubos-cgi
Christian-Cubos-cgi merged commit d90ef2d into master Jul 23, 2026
7 checks passed
@Christian-Cubos-cgi
Christian-Cubos-cgi deleted the task/JS-927b branch July 23, 2026 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants