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,15 +131,10 @@ 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) {
super.addFaceMessage("mapManage.errorUploadingBackground");
return null;
}
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;
}
......
/*
* Copyright Codecrew Ry
*
*
* All rights reserved.
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*/
package fi.codecrew.moya.web.cdiview.voting;
import java.io.IOException;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import javax.validation.constraints.NotNull;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.VotingBeanLocal;
import fi.codecrew.moya.model.CompoEntry;
import fi.codecrew.moya.model.CompoEntryFile;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named
@RequestScoped
public class VotingCompoAddEntryView extends GenericCDIView {
private static final long serialVersionUID = -93065881159476197L;
@EJB
VotingBeanLocal votingBean;
@NotNull
private String name;
private String notes;
private String screenMessage;
@NotNull
private UploadedFile uploadedFile;
private Integer compoId;
private String compoName;
private static final Logger logger = LoggerFactory.getLogger(VotingCompoAddEntryView.class);
public Integer getCompoId() {
return compoId;
}
public void setCompoId(Integer compoId) {
this.compoId = compoId;
}
public UploadedFile getUploadedFile() {
return uploadedFile;
}
public void setUploadedFile(UploadedFile uploadedFile) {
this.uploadedFile = uploadedFile;
}
public String getScreenMessage() {
return screenMessage;
}
public void setScreenMessage(String screenMessage) {
this.screenMessage = screenMessage;
}
public String getNotes() {
return notes;
}
public void setNotes(String notes) {
this.notes = notes;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCompoName() {
return compoName;
}
public void setCompoName(String compoName) {
this.compoName = compoName;
}
public String send() {
UploadedFile file = getUploadedFile();
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;
}
}
if (contents == null)
{
super.addFaceMessage("compo.fileuploadFailed");
return null;
}
CompoEntry compoEntry = new CompoEntry();
compoEntry.setTitle(name);
compoEntry.setNotes(notes);
compoEntry.setScreenMessage(screenMessage);
compoEntry.setCompo(votingBean.getCompoById(compoId));
CompoEntryFile cef = new CompoEntryFile(compoEntry);
cef.setFileData(contents);
cef.setFileName(uploadedFile.getFileName());
votingBean.addEntry(compoEntry, cef);
return null;
}
public void initView() {
compoName = votingBean.getCompoById(compoId).getName();
}
}
package fi.codecrew.moya.web.cdiview.voting;
import java.io.IOException;
import javax.ejb.EJB;
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;
import fi.codecrew.moya.beans.VotingBeanLocal;
import fi.codecrew.moya.model.CompoEntry;
import fi.codecrew.moya.model.CompoEntryFile;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named
@RequestScoped
public class VotingCompoAddEntryView extends GenericCDIView {
private static final long serialVersionUID = -93065881159476197L;
@EJB
VotingBeanLocal votingBean;
@NotNull
private String name;
private String notes;
private String screenMessage;
@NotNull
private UploadedFile uploadedFile;
private Integer compoId;
private String compoName;
private static final Logger logger = LoggerFactory.getLogger(VotingCompoAddEntryView.class);
public Integer getCompoId() {
return compoId;
}
public void setCompoId(Integer compoId) {
this.compoId = compoId;
}
public UploadedFile getUploadedFile() {
return uploadedFile;
}
public void setUploadedFile(UploadedFile uploadedFile) {
this.uploadedFile = uploadedFile;
}
public String getScreenMessage() {
return screenMessage;
}
public void setScreenMessage(String screenMessage) {
this.screenMessage = screenMessage;
}
public String getNotes() {
return notes;
}
public void setNotes(String notes) {
this.notes = notes;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCompoName() {
return compoName;
}
public void setCompoName(String compoName) {
this.compoName = compoName;
}
public String send() {
UploadedFile file = getUploadedFile();
if (file == null) {
super.addFaceMessage("compo.fileuploadFailed");
return null;
}
byte[] contents = FileUploadUtils.getFileContents(file);
if (contents == null || contents.length == 0) {
super.addFaceMessage("compo.fileuploadFailed");
return null;
}
CompoEntry compoEntry = new CompoEntry();
compoEntry.setTitle(name);
compoEntry.setNotes(notes);
compoEntry.setScreenMessage(screenMessage);
compoEntry.setCompo(votingBean.getCompoById(compoId));
CompoEntryFile cef = new CompoEntryFile(compoEntry);
cef.setFileData(contents);
cef.setFileName(uploadedFile.getFileName());
votingBean.addEntry(compoEntry, cef);
return null;
}
public void initView() {
compoName = votingBean.getCompoById(compoId).getName();
}
}
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!