Details
Description
First case:
- SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=ee2cb548-6f16-4131-a28b-3bad50e2399c&open=ee2cb548-6f16-4131-a28b-3bad50e2399c
- GitHub link: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/api/InvalidIdentifierFormatException.java#L18
Second case:
- SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=94ecd0ac-aa28-433b-902c-bc6240653e99&open=94ecd0ac-aa28-433b-902c-bc6240653e99
- GitHub link: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/api/PatientIdentifierException.java#L18
Third case:
- SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=38574178-18f9-49de-a198-b8193f0f2970&open=38574178-18f9-49de-a198-b8193f0f2970
- GitHub link: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/api/ValidationException.java#L28
Fourth case:
- first SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=bfd52d23-e781-4331-b2c7-f752338bfc3f&open=bfd52d23-e781-4331-b2c7-f752338bfc3f
- second SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=c79e7e55-0643-4eb8-8059-941d779b56f4&open=c79e7e55-0643-4eb8-8059-941d779b56f4
- GitHub link: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/hl7/handler/ProposingConceptException.java#L22-L24
Fifth case:
- SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=2d3c5d67-6e09-4dcd-b594-04893812511a&open=2d3c5d67-6e09-4dcd-b594-04893812511a
- GitHub link: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/module/MandatoryModuleException.java#L27
Sixth case:
- SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=a746562b-1c6b-41a5-9ee0-099386c7b463&open=a746562b-1c6b-41a5-9ee0-099386c7b463
- GitHub link: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/module/OpenmrsCoreModuleException.java#L30
Seventh case:
- SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=138468a6-b3ac-45f5-b05f-46522cb1e24b&open=138468a6-b3ac-45f5-b05f-46522cb1e24b
- GitHub link: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/util/CycleException.java#L16
Eighth case:
- SonarQube link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=a87d3ea2-0ca9-40f1-901b-3a03b0fcc023&open=a87d3ea2-0ca9-40f1-901b-3a03b0fcc023
- GitHub link: https://sonar.openmrs.org/project/issues?id=org.openmrs%3Aopenmrs&issues=a87d3ea2-0ca9-40f1-901b-3a03b0fcc023&open=a87d3ea2-0ca9-40f1-901b-3a03b0fcc023
Problem:
Non-final fields can be modified. The exception object should be unmodifiable for its short lifetime after it is created.
Solution:
Make all the exception class fields final.