long (@NotNull SsiProcessingState state, @NotNull String commandName, @NotNull List<String> paramNames, String @NotNull [] paramValues, @NotNull ByteBufUtf8Writer writer) { long lastModified = 0; String configErrMsg = state.configErrorMessage; for (int i = 0; i < paramNames.size(); i++) { String paramName = paramNames.get(i); String paramValue = paramValues[i]; String substitutedValue = state.substituteVariables(paramValue); if (paramName.equalsIgnoreCase("file") || paramName.equalsIgnoreCase("virtual")) { boolean virtual = paramName.equalsIgnoreCase("virtual"); lastModified = state.ssiExternalResolver.getFileLastModified(substitutedValue, virtual); writer.write(formatSize(state.ssiExternalResolver.getFileSize(substitutedValue, virtual), state.configSizeFmt)); } else { SsiProcessorKt.getLOG().info("#fsize--Invalid attribute: " + paramName); writer.write(configErrMsg); } } return lastModified; }