Skip to content

Commit efea8eb

Browse files
committed
Fix new Sonar issues
1 parent a113099 commit efea8eb

File tree

5 files changed

+38
-27
lines changed

5 files changed

+38
-27
lines changed

spring-integration-core/src/main/java/org/springframework/integration/handler/advice/RateLimiterRequestHandlerAdvice.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
* <a href="https://github.com/resilience4j/resilience4j#ratelimiter">Resilience4j</a>.
3535
*
3636
* @author Artem Bilan
37+
* @author Gary Russell
3738
*
3839
* @since 5.2
3940
*/
@@ -126,7 +127,7 @@ public RateLimiter getRateLimiter() {
126127
}
127128

128129
@Override
129-
protected Object doInvoke(ExecutionCallback callback, Object target, Message<?> message) throws Exception {
130+
protected Object doInvoke(ExecutionCallback callback, Object target, Message<?> message) {
130131
CheckedFunction0<Object> restrictedCall =
131132
RateLimiter.decorateCheckedSupplier(this.rateLimiter, callback::execute);
132133
try {

spring-integration-core/src/test/java/org/springframework/integration/handler/advice/RateLimiterRequestHandlerAdviceTests.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import java.time.Duration;
2323
import java.util.concurrent.TimeUnit;
24+
import java.util.stream.IntStream;
2425

2526
import org.junit.jupiter.api.Test;
2627

@@ -65,7 +66,7 @@ void testRateLimiter() throws InterruptedException {
6566
this.requestChannel.send(testMessage);
6667

6768
assertThatExceptionOfType(MessagingException.class)
68-
.isThrownBy(() -> this.requestChannel.send(testMessage))
69+
.isThrownBy(() -> IntStream.range(0, 10).forEach(i -> this.requestChannel.send(testMessage)))
6970
.withCauseInstanceOf(RequestNotPermitted.class)
7071
.withMessageContaining("Rate limit exceeded for: ");
7172

spring-integration-file/src/main/java/org/springframework/integration/file/config/FileListFilterFactoryBean.java

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.integration.file.filters.IgnoreHiddenFileListFilter;
2929
import org.springframework.integration.file.filters.RegexPatternFileListFilter;
3030
import org.springframework.integration.file.filters.SimplePatternFileListFilter;
31+
import org.springframework.lang.NonNull;
3132

3233
/**
3334
* @author Mark Fisher
@@ -91,6 +92,7 @@ public void setAlwaysAcceptDirectories(Boolean alwaysAcceptDirectories) {
9192
}
9293

9394
@Override
95+
@NonNull
9496
public FileListFilter<File> getObject() {
9597
if (this.result == null) {
9698
synchronized (this.monitor) {

spring-integration-file/src/main/java/org/springframework/integration/file/filters/CompositeFileListFilter.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ public CompositeFileListFilter<F> addFilters(Collection<? extends FileListFilter
116116
}
117117
}
118118
this.fileFilters.addAll(filtersToAdd);
119-
this.allSupportAccept &= filtersToAdd.stream().allMatch(FileListFilter<F>::supportsSingleFileFiltering);
119+
if (this.allSupportAccept) {
120+
this.allSupportAccept = filtersToAdd.stream().allMatch(FileListFilter<F>::supportsSingleFileFiltering);
121+
}
120122
return this;
121123
}
122124

spring-integration-file/src/main/java/org/springframework/integration/file/remote/synchronizer/AbstractInboundFileSynchronizer.java

+29-24
Original file line numberDiff line numberDiff line change
@@ -334,29 +334,15 @@ private Integer transferFilesFromRemoteToLocal(File localDirectory, int maxFetch
334334

335335
for (F file : filteredFiles) {
336336
if (filteringOneByOne) {
337-
if ((maxFetchSize < 0 || accepted < maxFetchSize) && this.filter.accept(file)) {
337+
if ((maxFetchSize < 0 || accepted < maxFetchSize) && this.filter.accept(file)) { // NOSONAR never null
338338
accepted++;
339339
}
340340
else {
341341
file = null;
342342
copied--;
343343
}
344344
}
345-
try {
346-
if (file != null && !copyFileToLocalDirectory(this.evaluatedRemoteDirectory, file,
347-
localDirectory, session)) {
348-
copied--;
349-
}
350-
}
351-
catch (RuntimeException | IOException e1) {
352-
if (filteringOneByOne) {
353-
resetFilterIfNecessary(file);
354-
}
355-
else {
356-
rollbackFromFileToListEnd(filteredFiles, file);
357-
}
358-
throw e1;
359-
}
345+
copied = copyIfNotNull(localDirectory, session, filteringOneByOne, filteredFiles, copied, file);
360346
}
361347
return copied;
362348
}
@@ -365,6 +351,27 @@ private Integer transferFilesFromRemoteToLocal(File localDirectory, int maxFetch
365351
}
366352
}
367353

354+
private int copyIfNotNull(File localDirectory, Session<F> session, boolean filteringOneByOne, List<F> filteredFiles,
355+
int copied, F file) throws IOException {
356+
357+
try {
358+
if (file != null && !copyFileToLocalDirectory(this.evaluatedRemoteDirectory, file,
359+
localDirectory, session)) {
360+
copied--;
361+
}
362+
}
363+
catch (RuntimeException | IOException e1) {
364+
if (filteringOneByOne) {
365+
resetFilterIfNecessary(file);
366+
}
367+
else {
368+
rollbackFromFileToListEnd(filteredFiles, file);
369+
}
370+
throw e1;
371+
}
372+
return copied;
373+
}
374+
368375
private List<F> applyFilter(F[] files, boolean haveFilter, boolean filteringOneByOne, int maxFetchSize) {
369376
List<F> filteredFiles;
370377
if (!filteringOneByOne && haveFilter) {
@@ -373,15 +380,13 @@ private List<F> applyFilter(F[] files, boolean haveFilter, boolean filteringOneB
373380
else {
374381
filteredFiles = Arrays.asList(files);
375382
}
376-
if (maxFetchSize >= 0 && filteredFiles.size() > maxFetchSize) {
377-
if (!filteringOneByOne) {
378-
if (haveFilter) {
379-
rollbackFromFileToListEnd(filteredFiles, filteredFiles.get(maxFetchSize));
380-
}
381-
filteredFiles = filteredFiles.stream()
382-
.limit(maxFetchSize)
383-
.collect(Collectors.toList());
383+
if (maxFetchSize >= 0 && filteredFiles.size() > maxFetchSize && !filteringOneByOne) {
384+
if (haveFilter) {
385+
rollbackFromFileToListEnd(filteredFiles, filteredFiles.get(maxFetchSize));
384386
}
387+
filteredFiles = filteredFiles.stream()
388+
.limit(maxFetchSize)
389+
.collect(Collectors.toList());
385390
}
386391
return filteredFiles;
387392
}

0 commit comments

Comments
 (0)