Commit 9091cd98 by Tuomas Riihimäki

Make a utility for fetching the contents of an uploaded file

This was a copy-paste snippet in multiple places, where findbugs reported
error on ignoring the result of read() function.
Making this an utility we can make sure that it works as expected ( and clean up code)
1 parent 1538f1a2
Pipeline #65 passed
in 0 seconds
......@@ -41,8 +41,9 @@ public class GitRepositoryState {
private GitRepositoryState() {
logger.info("Initializing git status");
this.properties = new Properties();
InputStream resource = null;
try {
InputStream resource = getClass().getResourceAsStream("/git.properties");
resource = getClass().getResourceAsStream("/git.properties");
if (resource == null) {
logger.warn("Resource not found!");
......@@ -53,6 +54,14 @@ public class GitRepositoryState {
logger.info("Git keys:", this.properties.keys());
} catch (IOException e) {
logger.warn("Error initializing git proerties", e);
} finally {
if (resource != null) {
try {
resource.close();
} catch (IOException e) {
// Error clsoing resource in finally.. Eat the error.
}
}
}
}
......
......@@ -32,6 +32,7 @@ import javax.faces.event.ActionEvent;
import javax.imageio.ImageIO;
import javax.inject.Named;
import fi.codecrew.moya.web.helpers.FileUploadUtils;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.UploadedFile;
......@@ -130,16 +131,11 @@ public class MapManageView extends GenericCDIView {
public String submitBg() {
byte[] bytes = bgFile.getContents();
if (bytes == null && bgFile.getSize() > 0) {
bytes = new byte[(int) bgFile.getSize()];
try {
bgFile.getInputstream().read(bytes);
} catch (IOException e) {
byte[] bytes = FileUploadUtils.getFileContents(bgFile);
if (bytes == null || bytes.length == 0) {
super.addFaceMessage("mapManage.errorUploadingBackground");
return null;
}
}
map.setMapData(bytes);
map.setMimeType(bgFile.getContentType());
......
......@@ -29,6 +29,7 @@ import javax.faces.model.ListDataModel;
import javax.inject.Inject;
import javax.inject.Named;
import fi.codecrew.moya.web.helpers.FileUploadUtils;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -131,20 +132,9 @@ public class EventPropertyView extends GenericCDIView {
public String savePrivateProperty() {
logger.info("Saving property {}, eventorg {}, key {}", new Object[]{privateProperty.getEvent(), privateProperty.getEventorg(), privateProperty.getKey()});
if (privateProperty.getKey().isData() && file != null) {
byte[] contents = null;
if (file.getContents() != null) {
contents = file.getContents();
} else {
contents = new byte[(int) file.getSize()];
try {
file.getInputstream().read(contents);
} catch (IOException e) {
logger.warn("Error reading file from stream", e);
contents = null;
}
}
byte[] contents = FileUploadUtils.getFileContents(file);
if (contents == null) {
if (contents == null || contents.length == 0) {
super.addFaceMessage("eventProperty.errorUploadingFile");
return null;
}
......@@ -187,20 +177,9 @@ public class EventPropertyView extends GenericCDIView {
logger.debug("Is data: {} File {}", property.getKey().isData(), file);
if (property.getKey().isData() && file != null) {
logger.info("saving data values type: {}, length {}", file.getContentType(), file.getSize());
byte[] contents = null;
if (file.getContents() != null) {
contents = file.getContents();
} else {
contents = new byte[(int) file.getSize()];
try {
file.getInputstream().read(contents);
} catch (IOException e) {
logger.warn("Error reading file from stream", e);
contents = null;
}
}
byte[] contents = FileUploadUtils.getFileContents(file);
if (contents == null) {
if (contents == null || contents.length == 0) {
super.addFaceMessage("eventProperty.errorUploadingFile");
return null;
}
......
......@@ -27,6 +27,7 @@ import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import fi.codecrew.moya.web.helpers.FileUploadUtils;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -95,20 +96,9 @@ public class CardView extends GenericCDIView {
try {
logger.info("Templateimage: {}", getTemplateImage());
byte[] contents = null;
UploadedFile file = getTemplateImage();
if (file.getContents() != null) {
contents = file.getContents();
} else {
contents = new byte[(int) file.getSize()];
try {
file.getInputstream().read(contents);
} catch (IOException e) {
logger.warn("Error reading file from stream", e);
contents = null;
}
}
contents = FileUploadUtils.getFileContents(getTemplateImage());
if (contents == null) {
if (contents == null || contents.length == 0) {
super.addFaceMessage("eventProperty.errorUploadingFile");
return null;
}
......
......@@ -27,6 +27,7 @@ import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;
import fi.codecrew.moya.web.helpers.FileUploadUtils;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -82,19 +83,10 @@ public class ImportView extends GenericCDIView {
{
ArrayList<ImportWrapper> ret = new ArrayList<ImportWrapper>();
byte[] bytes = file.getContents();
if (bytes == null && file.getSize() > 0)
{
bytes = new byte[(int) file.getSize()];
try {
file.getInputstream().read(bytes);
} catch (IOException e) {
super.addFaceMessage("import.erroruploading");
return null;
}
}
byte[] bytes = FileUploadUtils.getFileContents(file);
if (bytes == null) {
if (bytes == null || bytes.length == 0) {
super.addFaceMessage("import.erroruploading");
return null;
}
......
......@@ -26,6 +26,7 @@ import javax.enterprise.inject.Produces;
import javax.faces.model.ListDataModel;
import javax.inject.Named;
import fi.codecrew.moya.web.helpers.FileUploadUtils;
import org.primefaces.event.RateEvent;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
......@@ -169,23 +170,9 @@ public class CompoView extends GenericCDIView {
return null;
}
byte[] contents = null;
if (file.getContents() != null) {
contents = file.getContents();
logger.info("Got file contents from .confents()");
} else {
contents = new byte[(int) file.getSize()];
logger.info("Read {} bytes from stream in file {}", file.getSize(), file.getFileName());
try {
file.getInputstream().read(contents);
} catch (IOException e) {
logger.warn("Error reading file from stream", e);
contents = null;
}
}
byte[] contents = FileUploadUtils.getFileContents(file);
if (contents == null)
{
if (contents == null || contents.length == 0) {
super.addFaceMessage("compo.fileuploadFailed");
return null;
}
......
......@@ -25,6 +25,7 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import javax.validation.constraints.NotNull;
import fi.codecrew.moya.web.helpers.FileUploadUtils;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -108,27 +109,14 @@ public class VotingCompoAddEntryView extends GenericCDIView {
UploadedFile file = getUploadedFile();
if (file == null)
{
if (file == null) {
super.addFaceMessage("compo.fileuploadFailed");
return null;
}
byte[] contents = null;
if (file.getContents() != null) {
contents = file.getContents();
} else {
contents = new byte[(int) file.getSize()];
try {
file.getInputstream().read(contents);
} catch (IOException e) {
logger.warn("Error reading file from stream", e);
contents = null;
}
}
byte[] contents = FileUploadUtils.getFileContents(file);
if (contents == null)
{
if (contents == null || contents.length == 0) {
super.addFaceMessage("compo.fileuploadFailed");
return null;
}
......
package fi.codecrew.moya.web.helpers;
import org.apache.commons.io.IOUtils;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
public class FileUploadUtils {
private static final Logger logger = LoggerFactory.getLogger(FileUploadUtils.class);
public static byte[] getFileContents(UploadedFile file) {
if (file.getContents() != null) {
return file.getContents();
} else {
InputStream istream = null;
try {
istream = file.getInputstream();
return IOUtils.toByteArray(istream);
} catch (IOException e) {
logger.warn("Error reading file from stream", e);
} finally {
if (istream != null) {
try {
istream.close();
} catch (IOException e) {
logger.warn("Error closing UploadFile inputstream");
}
}
}
}
return null;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!