From 26ce65deef29889bbf12e093aaf39b7453df142a Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Tue, 27 Nov 2018 22:41:00 -0500 Subject: [PATCH] More Sonar fixes --- .../jpa/core/DefaultJpaOperations.java | 93 +++++++++++-------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/spring-integration-jpa/src/main/java/org/springframework/integration/jpa/core/DefaultJpaOperations.java b/spring-integration-jpa/src/main/java/org/springframework/integration/jpa/core/DefaultJpaOperations.java index f44a9050f3..51937ca68f 100644 --- a/spring-integration-jpa/src/main/java/org/springframework/integration/jpa/core/DefaultJpaOperations.java +++ b/spring-integration-jpa/src/main/java/org/springframework/integration/jpa/core/DefaultJpaOperations.java @@ -206,22 +206,26 @@ public class DefaultJpaOperations extends AbstractJpaOperations { } @Override + @Nullable public Object merge(Object entity) { - return this.merge(entity, 0, false); + return merge(entity, 0, false); } @Override + @Nullable public Object merge(Object entity, int flushSize, boolean clearOnFlush) { Assert.notNull(entity, "The object to merge must not be null."); - return this.persistOrMerge(entity, true, flushSize, clearOnFlush); + return persistOrMerge(entity, true, flushSize, clearOnFlush); } @Override + @Nullable public void persist(Object entity) { - this.persist(entity, 0, false); + persist(entity, 0, false); } @Override + @Nullable public void persist(Object entity, int flushSize, boolean clearOnFlush) { Assert.notNull(entity, "The object to persist must not be null."); persistOrMerge(entity, false, flushSize, clearOnFlush); @@ -232,44 +236,7 @@ public class DefaultJpaOperations extends AbstractJpaOperations { Object result = null; if (entity instanceof Iterable) { - - @SuppressWarnings("unchecked") - Iterable entities = (Iterable) entity; - - int savedEntities = 0; - int nullEntities = 0; - - List mergedEntities = new ArrayList(); - - for (Object iteratedEntity : entities) { - if (iteratedEntity == null) { - nullEntities++; - } - else { - if (isMerge) { - mergedEntities.add(entityManager.merge(iteratedEntity)); - } - else { - entityManager.persist(iteratedEntity); - } - savedEntities++; - if (flushSize > 0 && savedEntities % flushSize == 0) { - entityManager.flush(); - if (clearOnFlush) { - entityManager.clear(); - } - } - } - } - - if (logger.isDebugEnabled()) { - logger.debug(String.format("%s %s entities. %s NULL entities were ignored.", - isMerge ? "Merged" : "Persisted", savedEntities, nullEntities)); - } - - if (isMerge) { - result = mergedEntities; - } + result = persistOrMergeIterable(entity, isMerge, flushSize, clearOnFlush); } else { if (isMerge) { @@ -290,6 +257,50 @@ public class DefaultJpaOperations extends AbstractJpaOperations { return result; } + @Nullable + private Object persistOrMergeIterable(Object entity, boolean isMerge, int flushSize, boolean clearOnFlush) { + Object result = null; + + @SuppressWarnings("unchecked") + Iterable entities = (Iterable) entity; + + int savedEntities = 0; + int nullEntities = 0; + + List mergedEntities = new ArrayList(); + + for (Object iteratedEntity : entities) { + if (iteratedEntity == null) { + nullEntities++; + } + else { + if (isMerge) { + mergedEntities.add(entityManager.merge(iteratedEntity)); + } + else { + entityManager.persist(iteratedEntity); + } + savedEntities++; + if (flushSize > 0 && savedEntities % flushSize == 0) { + entityManager.flush(); + if (clearOnFlush) { + entityManager.clear(); + } + } + } + } + + if (logger.isDebugEnabled()) { + logger.debug(String.format("%s %s entities. %s NULL entities were ignored.", + isMerge ? "Merged" : "Persisted", savedEntities, nullEntities)); + } + + if (isMerge) { + result = mergedEntities; + } + return result; + } + /** * Given a JPQL query, this method gets all parameters defined in this query and * use the {@link ParameterSource} to find their values and set them.