From ff09d1b89a85d10af1f0c2c3b89054ba3c44e1ef Mon Sep 17 00:00:00 2001 From: Gustavo Henrique Santos Souza de Miranda Date: Sat, 6 Dec 2025 22:18:40 -0300 Subject: [PATCH] Fix null handling and validation in SamplingRate management MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit addresses potential runtime exceptions and improves input validation: - Replace Optional.of() with Optional.ofNullable() in SamplingRateRepository.findById() to properly handle cases where no sampling rate is found, preventing NullPointerException - Add null validation for id parameter in SamplingRateService.deleteSamplingRate() to ensure proper error handling before repository operations - Clean up code formatting in updateSamplingRate() validation block These changes enhance the robustness of the sampling rate management feature by preventing NPEs and providing clearer error messages for invalid inputs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .../com/mediamanager/repository/SamplingRateRepository.java | 2 +- .../service/samplingrate/SamplingRateService.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mediamanager/repository/SamplingRateRepository.java b/src/main/java/com/mediamanager/repository/SamplingRateRepository.java index e434b9b..4d2fd82 100644 --- a/src/main/java/com/mediamanager/repository/SamplingRateRepository.java +++ b/src/main/java/com/mediamanager/repository/SamplingRateRepository.java @@ -53,7 +53,7 @@ public class SamplingRateRepository { EntityManager em = entityManagerFactory.createEntityManager(); try{ SamplingRate samplingRate = em.find(SamplingRate.class, id); - return Optional.of(samplingRate); + return Optional.ofNullable(samplingRate); }finally { if (em.isOpen()) em.close(); } diff --git a/src/main/java/com/mediamanager/service/samplingrate/SamplingRateService.java b/src/main/java/com/mediamanager/service/samplingrate/SamplingRateService.java index 1b9144e..b347815 100644 --- a/src/main/java/com/mediamanager/service/samplingrate/SamplingRateService.java +++ b/src/main/java/com/mediamanager/service/samplingrate/SamplingRateService.java @@ -42,7 +42,8 @@ public class SamplingRateService { public Optional updateSamplingRate(Integer id, String value) { logger.info("Updating sampling rate:{}", value); if (value == null || value.trim().isEmpty()) { - throw new IllegalArgumentException("Sampling-Rate value cannot be null or empty");} + throw new IllegalArgumentException("Sampling-Rate value cannot be null or empty"); + } Optional existingSamplingRate = repository.findById(id); if(existingSamplingRate.isEmpty()) { logger.warn("Sampling rate not found with id:{}", id); @@ -55,6 +56,9 @@ public class SamplingRateService { } public boolean deleteSamplingRate(Integer id) { + if (id == null) { + throw new IllegalArgumentException("Sampling rate id cannot be null"); + } logger.info("Deleting sampling rate:{}", id); return repository.deleteById(id); }