jodd-core/src/main/java/jodd/io/upload/impl/AdaptiveFileUpload.java
protected boolean matchFileExtension() throws IOException {
		String fileNameExtension = FileNameUtil.getExtension(getHeader().getFileName());
		for (String fileExtension : fileExtensions) {
			if (fileNameExtension.equalsIgnoreCase(fileExtension)) {
				if (!allowFileExtensions) {	// extension matched and it is not allowed
					if (breakOnError) {
						throw new IOException("Upload filename extension not allowed: " + fileNameExtension);
					}
					size = input.skipToBoundary();
					return false;
				}
				return true;		// extension matched and it is allowed.
			}
		}
		if (allowFileExtensions) {	// extension is not one of the allowed ones.
			if (breakOnError) {
				throw new IOException("Upload filename extension not allowed: " + fileNameExtension);
			}
			size = input.skipToBoundary();
			return false;
		}
		return true;
	}
protected boolean matchFileExtension() throws IOException {
		String fileNameExtension = FileNameUtil.getExtension(getHeader().getFileName());
		for (String fileExtension : fileExtensions) {
			if (fileNameExtension.equalsIgnoreCase(fileExtension)) {
				if (!allowFileExtensions) {	// extension matched and it is not allowed
					if (breakOnError) {
						throw new IOException("Upload filename extension not allowed: " + fileNameExtension);
					}
					size = input.skipToBoundary();
					return false;
				}
				return true;		// extension matched and it is allowed.
			}
		}
		if (allowFileExtensions) {	// extension is not one of the allowed ones.
			if (breakOnError) {
				throw new IOException("Upload filename extension not allowed: " + fileNameExtension);
			}
			size = input.skipToBoundary();
			return false;
		}
		return true;
	}
---------------------------------------------------------------- process