Skip to content

Commit 3820e8f

Browse files
committed
Modify image related validators to skip validation when image wasn't specified.
To make image field mandatory, @NotEmptyFilename validator should be used. This change is required for #199 where image field will become an optional. No functional changes.
1 parent 338fb24 commit 3820e8f

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

src/main/java/ru/mystamps/web/validation/jsr303/ImageFileValidator.java

+8
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import javax.validation.ConstraintValidator;
2525
import javax.validation.ConstraintValidatorContext;
2626

27+
import org.apache.commons.lang3.StringUtils;
28+
2729
import org.slf4j.Logger;
2830
import org.slf4j.LoggerFactory;
2931

@@ -99,13 +101,19 @@ public void initialize(ImageFile annotation) {
99101
// Intentionally empty: nothing to initialize
100102
}
101103

104+
// The following warnings will gone after splitting this validator (see #593)
105+
@SuppressWarnings({"PMD.ModifiedCyclomaticComplexity", "PMD.NPathComplexity"})
102106
@Override
103107
public boolean isValid(MultipartFile file, ConstraintValidatorContext ctx) {
104108

105109
if (file == null) {
106110
return true;
107111
}
108112

113+
if (StringUtils.isEmpty(file.getOriginalFilename())) {
114+
return true;
115+
}
116+
109117
if (file.isEmpty()) {
110118
return false;
111119
}

src/main/java/ru/mystamps/web/validation/jsr303/MaxFileSizeValidator.java

+7
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
import javax.validation.ConstraintValidator;
2121
import javax.validation.ConstraintValidatorContext;
2222

23+
import org.apache.commons.lang3.StringUtils;
24+
2325
import org.springframework.web.multipart.MultipartFile;
2426

2527
/**
2628
* @author Sergey Chechenev
29+
* @author Slava Semushin
2730
*/
2831
public class MaxFileSizeValidator implements ConstraintValidator<MaxFileSize, MultipartFile> {
2932
private long maxFileSizeInBytes;
@@ -40,6 +43,10 @@ public boolean isValid(MultipartFile file, ConstraintValidatorContext context) {
4043
return true;
4144
}
4245

46+
if (StringUtils.isEmpty(file.getOriginalFilename())) {
47+
return true;
48+
}
49+
4350
return file.getSize() <= maxFileSizeInBytes;
4451
}
4552
}

src/main/java/ru/mystamps/web/validation/jsr303/NotEmptyFileValidator.java

+6
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import javax.validation.ConstraintValidator;
2121
import javax.validation.ConstraintValidatorContext;
2222

23+
import org.apache.commons.lang3.StringUtils;
24+
2325
import org.springframework.web.multipart.MultipartFile;
2426

2527
public class NotEmptyFileValidator implements ConstraintValidator<NotEmptyFile, MultipartFile> {
@@ -36,6 +38,10 @@ public boolean isValid(MultipartFile file, ConstraintValidatorContext ctx) {
3638
return true;
3739
}
3840

41+
if (StringUtils.isEmpty(file.getOriginalFilename())) {
42+
return true;
43+
}
44+
3945
return !file.isEmpty();
4046
}
4147

0 commit comments

Comments
 (0)