diff --git a/pom.xml b/pom.xml
index 26597f6..060c20a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,7 +177,7 @@
commons-fileupload
commons-fileupload
- 1.2.1
+ 1.3
com.hp.hpl.jena
diff --git a/src/main/java/org/swordapp/server/AtomStatement.java b/src/main/java/org/swordapp/server/AtomStatement.java
index 96c170b..fa38b05 100644
--- a/src/main/java/org/swordapp/server/AtomStatement.java
+++ b/src/main/java/org/swordapp/server/AtomStatement.java
@@ -84,7 +84,8 @@ public void writeTo(Writer out)
entry.setSummary("Original Deposit");
entry.setUpdated(new Date());
- entry.setContent(new IRI(deposit.getUri()), deposit.getMediaType());
+ if (deposit.getMediaType() != null)
+ entry.setContent(new IRI(deposit.getUri()), deposit.getMediaType());
entry.addCategory(UriRegistry.SWORD_TERMS_NAMESPACE, UriRegistry.SWORD_ORIGINAL_DEPOSIT, "Original Deposit");
if (deposit.getDepositedOn() != null)
{
@@ -102,9 +103,11 @@ public void writeTo(Writer out)
entry.addSimpleExtension(new QName(UriRegistry.SWORD_DEPOSITED_BY), deposit.getDepositedBy());
}
- for (String packaging : deposit.getPackaging())
- {
- entry.addSimpleExtension(UriRegistry.SWORD_PACKAGING, packaging);
+ if (deposit.getPackaging() != null) {
+ for (String packaging : deposit.getPackaging())
+ {
+ entry.addSimpleExtension(UriRegistry.SWORD_PACKAGING, packaging);
+ }
}
}
diff --git a/src/main/java/org/swordapp/server/MediaResourceAPI.java b/src/main/java/org/swordapp/server/MediaResourceAPI.java
index b8d2d5e..5a8b016 100644
--- a/src/main/java/org/swordapp/server/MediaResourceAPI.java
+++ b/src/main/java/org/swordapp/server/MediaResourceAPI.java
@@ -116,9 +116,13 @@ public void get(HttpServletRequest req, HttpServletResponse resp, boolean sendBo
{
OutputStream out = resp.getOutputStream();
InputStream in = resource.getInputStream();
- this.copyInputToOutput(in, out);
- out.flush();
- in.close();
+ try {
+ this.copyInputToOutput(in, out);
+ out.flush();
+ } finally {
+ if (in != null)
+ in.close();
+ }
}
}
catch (SwordError se)
diff --git a/src/main/java/org/swordapp/server/SwordAPIEndpoint.java b/src/main/java/org/swordapp/server/SwordAPIEndpoint.java
index a5a8358..d93d094 100644
--- a/src/main/java/org/swordapp/server/SwordAPIEndpoint.java
+++ b/src/main/java/org/swordapp/server/SwordAPIEndpoint.java
@@ -6,10 +6,10 @@
import org.apache.abdera.model.Entry;
import org.apache.abdera.parser.Parser;
import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.ParameterParser;
-import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.log4j.Logger;
@@ -254,8 +254,8 @@ protected void addDepositPropertiesFromMultipart(Deposit deposit, HttpServletReq
throws ServletException, IOException, SwordError
{
// Parse the request for files (using the fileupload commons library)
- List items = this.getPartsFromRequest(req);
- for (DiskFileItem item : items)
+ List items = this.getPartsFromRequest(req);
+ for (FileItem item : items)
{
// find out which part we are looking at
String contentDisposition = item.getHeaders().getHeader("Content-Disposition");
@@ -453,7 +453,7 @@ protected String getContentDispositionValue(String contentDisposition, String ke
return parameters.get(key);
}
- protected List getPartsFromRequest(HttpServletRequest request)
+ protected List getPartsFromRequest(HttpServletRequest request)
throws ServletException
{
try
@@ -465,7 +465,7 @@ protected List getPartsFromRequest(HttpServletRequest request)
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
- List items = upload.parseRequest(request);
+ List items = upload.parseRequest(request);
return items;
}