diff --git a/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSVLine.java b/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSVLine.java index ca40007881..2f2cf09ebf 100644 --- a/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSVLine.java +++ b/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSVLine.java @@ -39,10 +39,11 @@ package org.dspace.app.bulkedit; import java.util.ArrayList; -import java.util.Hashtable; -import java.util.Enumeration; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Set; /** * Utility class to store a line from a CSV file @@ -55,7 +56,7 @@ public class DSpaceCSVLine private int id; /** The elements in this line in a hashtable, keyed by the metadata type */ - private Hashtable items; + private Map items; /** * Create a new CSV line @@ -66,7 +67,7 @@ public class DSpaceCSVLine { // Store the ID + separator, and initialise the hashtable this.id = id; - items = new Hashtable(); + items = new HashMap(); } /** @@ -76,7 +77,7 @@ public class DSpaceCSVLine { // Set the ID to be -1, and initialise the hashtable this.id = -1; - this.items = new Hashtable(); + this.items = new HashMap(); } /** @@ -128,10 +129,10 @@ public class DSpaceCSVLine * * @return An enumeration of all the keys */ - public Enumeration keys() + public Set keys() { // Return the keys - return items.keys(); + return items.keySet(); } /** diff --git a/dspace-api/src/main/java/org/dspace/app/bulkedit/MetadataImport.java b/dspace-api/src/main/java/org/dspace/app/bulkedit/MetadataImport.java index cd9a22dbe7..48feb56425 100644 --- a/dspace-api/src/main/java/org/dspace/app/bulkedit/MetadataImport.java +++ b/dspace-api/src/main/java/org/dspace/app/bulkedit/MetadataImport.java @@ -48,7 +48,6 @@ import org.dspace.eperson.EPerson; import org.dspace.workflow.WorkflowManager; import java.util.ArrayList; -import java.util.Enumeration; import java.io.File; import java.io.InputStreamReader; import java.io.BufferedReader; @@ -137,11 +136,9 @@ public class MetadataImport } // Iterate through each metadata element in the csv line - Enumeration e = line.keys(); - while (e.hasMoreElements()) + for (String md : line.keys()) { // Get the values we already have - String md = e.nextElement(); if (!"id".equals(md)) { // Get the values from the CSV @@ -169,12 +166,10 @@ public class MetadataImport } // Iterate through each metadata element in the csv line - Enumeration e = line.keys(); BulkEditChange whatHasChanged = new BulkEditChange(); - while (e.hasMoreElements()) + for (String md : line.keys()) { // Get the values we already have - String md = e.nextElement(); if (!"id".equals(md)) { // Get the values from the CSV diff --git a/dspace-api/src/main/java/org/dspace/app/statistics/HTMLReport.java b/dspace-api/src/main/java/org/dspace/app/statistics/HTMLReport.java index 1c1dfae4f8..735f056d7e 100644 --- a/dspace-api/src/main/java/org/dspace/app/statistics/HTMLReport.java +++ b/dspace-api/src/main/java/org/dspace/app/statistics/HTMLReport.java @@ -210,7 +210,7 @@ public class HTMLReport implements Report */ public void setStartDate(Date start) { - this.start = start; + this.start = start == null ? null : (Date)start.clone(); } @@ -221,7 +221,7 @@ public class HTMLReport implements Report */ public void setEndDate(Date end) { - this.end = end; + this.end = end == null ? null : (Date)end.clone(); } diff --git a/dspace-api/src/main/java/org/dspace/checker/BitstreamInfo.java b/dspace-api/src/main/java/org/dspace/checker/BitstreamInfo.java index 628cdb6061..ac047e8c03 100644 --- a/dspace-api/src/main/java/org/dspace/checker/BitstreamInfo.java +++ b/dspace-api/src/main/java/org/dspace/checker/BitstreamInfo.java @@ -148,9 +148,9 @@ public final class BitstreamInfo nm, ""); this.deleted = del; - this.processEndDate = procEndDate; + this.processEndDate = processEndDate == null ? null : (Date)procEndDate.clone(); this.toBeProcessed = toBeProc; - this.processStartDate = procStartDate; + this.processStartDate = processStartDate == null ? null : (Date)procStartDate.clone(); this.infoFound = true; } @@ -529,7 +529,7 @@ public final class BitstreamInfo */ public Date getProcessStartDate() { - return this.processStartDate; + return this.processStartDate == null ? null : (Date)this.processStartDate.clone(); } /** @@ -540,7 +540,7 @@ public final class BitstreamInfo */ public void setProcessStartDate(Date startDate) { - this.processStartDate = startDate; + this.processStartDate = startDate == null ? null : (Date)startDate.clone(); } /** @@ -550,7 +550,7 @@ public final class BitstreamInfo */ public Date getProcessEndDate() { - return this.processEndDate; + return this.processEndDate == null ? null : (Date)this.processEndDate.clone(); } /** @@ -561,6 +561,6 @@ public final class BitstreamInfo */ public void setProcessEndDate(Date endDate) { - this.processEndDate = endDate; + this.processEndDate = endDate == null ? null : (Date)endDate.clone(); } } diff --git a/dspace-api/src/main/java/org/dspace/checker/CheckerCommand.java b/dspace-api/src/main/java/org/dspace/checker/CheckerCommand.java index 927a440d97..d228ef6c8f 100644 --- a/dspace-api/src/main/java/org/dspace/checker/CheckerCommand.java +++ b/dspace-api/src/main/java/org/dspace/checker/CheckerCommand.java @@ -423,7 +423,7 @@ public final class CheckerCommand */ public Date getProcessStartDate() { - return processStartDate; + return processStartDate == null ? null : (Date)processStartDate.clone(); } /** @@ -434,7 +434,7 @@ public final class CheckerCommand */ public void setProcessStartDate(Date startDate) { - processStartDate = startDate; + processStartDate = startDate == null ? null : (Date)startDate.clone(); } /** diff --git a/dspace-api/src/main/java/org/dspace/checker/ChecksumHistory.java b/dspace-api/src/main/java/org/dspace/checker/ChecksumHistory.java index 3591ee0ff0..4f8ca3d30e 100644 --- a/dspace-api/src/main/java/org/dspace/checker/ChecksumHistory.java +++ b/dspace-api/src/main/java/org/dspace/checker/ChecksumHistory.java @@ -99,8 +99,8 @@ public class ChecksumHistory String checksumExpted, String checksumCalc, String inResult) { this.bitstreamId = bitstrmId; - this.processStartDate = startDate; - this.processEndDate = endDate; + this.processStartDate = startDate == null ? null : (Date)startDate.clone(); + this.processEndDate = endDate == null ? null : (Date)endDate.clone(); this.checksumExpected = checksumExpted; this.checksumCalculated = checksumCalc; this.result = inResult; @@ -161,7 +161,7 @@ public class ChecksumHistory */ public Date getProcessEndDate() { - return processEndDate; + return processEndDate == null ? null : (Date)processEndDate.clone(); } /** @@ -172,7 +172,7 @@ public class ChecksumHistory */ public void setProcessEndDate(Date processEndDate) { - this.processEndDate = processEndDate; + this.processEndDate = processEndDate == null ? null : (Date)processEndDate.clone(); } /** @@ -183,7 +183,7 @@ public class ChecksumHistory */ public Date getProcessStartDate() { - return processStartDate; + return processStartDate == null ? null : (Date)processStartDate.clone(); } /** @@ -195,7 +195,7 @@ public class ChecksumHistory */ public void setProcessStartDate(Date processStartDate) { - this.processStartDate = processStartDate; + this.processStartDate = processStartDate == null ? null : (Date)processStartDate.clone(); } /** diff --git a/dspace-api/src/main/java/org/dspace/checker/SimpleDispatcher.java b/dspace-api/src/main/java/org/dspace/checker/SimpleDispatcher.java index e716f2ef7f..7128e3efb1 100644 --- a/dspace-api/src/main/java/org/dspace/checker/SimpleDispatcher.java +++ b/dspace-api/src/main/java/org/dspace/checker/SimpleDispatcher.java @@ -69,11 +69,10 @@ public class SimpleDispatcher implements BitstreamDispatcher * indicates whether checker should loop infinitely through * most_recent_checksum table */ - public SimpleDispatcher(BitstreamInfoDAO bitstreamInfoDAO, Date startTime, - boolean looping) + public SimpleDispatcher(BitstreamInfoDAO bitstreamInfoDAO, Date startTime, boolean looping) { this.bitstreamInfoDAO = bitstreamInfoDAO; - this.processStartTime = startTime; + this.processStartTime = startTime == null ? null : (Date)startTime.clone(); this.loopContinuously = looping; } diff --git a/dspace-api/src/main/java/org/dspace/core/Context.java b/dspace-api/src/main/java/org/dspace/core/Context.java index ca538a9cfb..5726453f21 100644 --- a/dspace-api/src/main/java/org/dspace/core/Context.java +++ b/dspace-api/src/main/java/org/dspace/core/Context.java @@ -610,5 +610,14 @@ public class Context { abort(); } + + try + { + super.finalize(); + } + catch (Throwable t) + { + log.error("Unable to finalize object", t); + } } } diff --git a/dspace-api/src/main/java/org/dspace/storage/rdbms/TableRowIterator.java b/dspace-api/src/main/java/org/dspace/storage/rdbms/TableRowIterator.java index 7b86efac6c..6ce3ba399d 100644 --- a/dspace-api/src/main/java/org/dspace/storage/rdbms/TableRowIterator.java +++ b/dspace-api/src/main/java/org/dspace/storage/rdbms/TableRowIterator.java @@ -39,6 +39,8 @@ */ package org.dspace.storage.rdbms; +import org.apache.log4j.Logger; + import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; @@ -53,6 +55,7 @@ import java.util.List; */ public class TableRowIterator { + private final static Logger log = Logger.getLogger(TableRowIterator.class); /** * Results from a query */ @@ -111,6 +114,15 @@ public class TableRowIterator protected void finalize() { close(); + + try + { + super.finalize(); + } + catch (Throwable t) + { + log.error("Unable to finalize object", t); + } } /** diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/ControlledVocabularyTag.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/ControlledVocabularyTag.java index 81d6b6a0f3..dfb6ba382d 100644 --- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/ControlledVocabularyTag.java +++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/ControlledVocabularyTag.java @@ -35,9 +35,9 @@ package org.dspace.app.webui.jsptag; import java.io.File; import java.io.FilenameFilter; -import java.util.Enumeration; -import java.util.Hashtable; +import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; @@ -73,7 +73,7 @@ public class ControlledVocabularyTag extends TagSupport private String vocabulary; // an hashtable containing all the loaded vocabularies - public Hashtable controlledVocabularies; + public Map controlledVocabularies; /** * Process tag @@ -95,27 +95,23 @@ public class ControlledVocabularyTag extends TagSupport + "vocabulary2html.xsl"; // Load vocabularies on startup - controlledVocabularies = (Hashtable) pageContext.getServletContext() - .getAttribute("controlledvocabulary.controlledVocabularies"); + controlledVocabularies = (Map) pageContext.getServletContext().getAttribute("controlledvocabulary.controlledVocabularies"); if (controlledVocabularies == null) { controlledVocabularies = loadControlledVocabularies(vocabulariesPath); - pageContext.getServletContext().setAttribute( - "controlledvocabulary.controlledVocabularies", - controlledVocabularies); + pageContext.getServletContext().setAttribute("controlledvocabulary.controlledVocabularies", controlledVocabularies); } try { - Hashtable prunnedVocabularies = needsFiltering() ? filterVocabularies( - controlledVocabularies, vocabularyPrunningXSLT) + Map prunnedVocabularies = needsFiltering() ? + filterVocabularies(controlledVocabularies, vocabularyPrunningXSLT) : controlledVocabularies; String html = ""; if (vocabulary != null && !vocabulary.equals("")) { - html = renderVocabularyAsHTML((Document) prunnedVocabularies - .get(vocabulary + ".xml"), + html = renderVocabularyAsHTML(prunnedVocabularies.get(vocabulary + ".xml"), controlledVocabulary2HtmlXSLT, isAllowMultipleSelection(), request.getContextPath()); } @@ -171,14 +167,14 @@ public class ControlledVocabularyTag extends TagSupport * The context path * @return the HTML that represents the vocabularies */ - private String renderVocabulariesAsHTML(Hashtable vocabularies, + private String renderVocabulariesAsHTML(Map vocabularies, String xslt, boolean allowMultipleSelection, String contextPath) { StringBuilder result = new StringBuilder(); - Iterator iter = vocabularies.values().iterator(); + Iterator iter = vocabularies.values().iterator(); while (iter.hasNext()) { - Document controlledVocabularyXML = (Document) iter.next(); + Document controlledVocabularyXML = iter.next(); result.append(renderVocabularyAsHTML(controlledVocabularyXML, xslt, allowMultipleSelection, contextPath)); } @@ -196,18 +192,12 @@ public class ControlledVocabularyTag extends TagSupport * the filename of the stylesheet that trimms the taxonomies * @return An hashtable with all the filtered vocabularies */ - private Hashtable filterVocabularies(Hashtable vocabularies, - String vocabularyPrunningXSLT) + private Map filterVocabularies(Map vocabularies, String vocabularyPrunningXSLT) { - Hashtable prunnedVocabularies = new Hashtable(); - Enumeration enumeration = vocabularies.keys(); - while (enumeration.hasMoreElements()) + Map prunnedVocabularies = new HashMap(); + for (Map.Entry entry : vocabularies.entrySet()) { - String controlledVocabularyKey = (String) enumeration.nextElement(); - Document controlledVocabulary = (Document) vocabularies - .get(controlledVocabularyKey); - prunnedVocabularies.put(controlledVocabularyKey, filterVocabulary( - controlledVocabulary, vocabularyPrunningXSLT, getFilter())); + prunnedVocabularies.put(entry.getKey(), filterVocabulary(entry.getValue(), vocabularyPrunningXSLT, getFilter())); } return prunnedVocabularies; } @@ -239,12 +229,10 @@ public class ControlledVocabularyTag extends TagSupport try { - Hashtable parameters = new Hashtable(); - parameters.put("allowMultipleSelection", - allowMultipleSelection ? "yes" : "no"); + Map parameters = new HashMap(); + parameters.put("allowMultipleSelection", allowMultipleSelection ? "yes" : "no"); parameters.put("contextPath", contextPath); - result = XMLUtil.transformDocumentAsString(vocabulary, parameters, - controlledVocabulary2HtmlXSLT); + result = XMLUtil.transformDocumentAsString(vocabulary, parameters, controlledVocabulary2HtmlXSLT); } catch (Exception e) { @@ -265,8 +253,7 @@ public class ControlledVocabularyTag extends TagSupport * The filter to be applied * @return The trimmed vocabulary. */ - public Document filterVocabulary(Document vocabulary, - String vocabularyPrunningXSLT, String filter) + public Document filterVocabulary(Document vocabulary, String vocabularyPrunningXSLT, String filter) { if (vocabulary == null) { @@ -275,10 +262,9 @@ public class ControlledVocabularyTag extends TagSupport try { - Hashtable parameters = new Hashtable(); + Map parameters = new HashMap(); parameters.put("filter", filter); - Document prunnedVocabulary = XMLUtil.transformDocument(vocabulary, - parameters, vocabularyPrunningXSLT); + Document prunnedVocabulary = XMLUtil.transformDocument(vocabulary, parameters, vocabularyPrunningXSLT); return prunnedVocabulary; } catch (Exception e) @@ -298,9 +284,9 @@ public class ControlledVocabularyTag extends TagSupport * @return an hashtable with the filenames of the vocabularies as keys and * the XML documents representing the vocabularies as values. */ - private static Hashtable loadControlledVocabularies(String directory) + private static Map loadControlledVocabularies(String directory) { - Hashtable controlledVocabularies = new Hashtable(); + Map controlledVocabularies = new HashMap(); File dir = new File(directory); FilenameFilter filter = new FilenameFilter() @@ -320,8 +306,7 @@ public class ControlledVocabularyTag extends TagSupport try { - Document controlledVocabulary = XMLUtil.loadXML(directory - + filename); + Document controlledVocabulary = XMLUtil.loadXML(directory + filename); controlledVocabularies.put(filename, controlledVocabulary); log.warn("Loaded vocabulary: " + filename); } diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectEPersonTag.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectEPersonTag.java index 0a7902298c..4f64853c75 100644 --- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectEPersonTag.java +++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectEPersonTag.java @@ -47,6 +47,7 @@ import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.jstl.fmt.LocaleSupport; import javax.servlet.jsp.tagext.TagSupport; +import org.apache.commons.lang.ArrayUtils; import org.dspace.eperson.EPerson; /** @@ -119,7 +120,7 @@ public class SelectEPersonTag extends TagSupport } else if (e instanceof EPerson[]) { - epeople = (EPerson[]) e; + epeople = (EPerson[])ArrayUtils.clone((EPerson[])e); } } diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectGroupTag.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectGroupTag.java index 90b000b821..3990c87b09 100644 --- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectGroupTag.java +++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/jsptag/SelectGroupTag.java @@ -48,6 +48,7 @@ import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.jstl.fmt.LocaleSupport; import javax.servlet.jsp.tagext.TagSupport; +import org.apache.commons.lang.ArrayUtils; import org.dspace.eperson.Group; /** @@ -114,7 +115,7 @@ public class SelectGroupTag extends TagSupport } else if(g instanceof Group[]) { - groups = (Group[]) g; + groups = (Group[])ArrayUtils.clone((Group[]) g); } } diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/EditProfileServlet.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/EditProfileServlet.java index ff4ca1ea46..98ab058754 100644 --- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/EditProfileServlet.java +++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/EditProfileServlet.java @@ -88,7 +88,7 @@ public class EditProfileServlet extends DSpaceServlet // Find out if they're trying to set a new password boolean settingPassword = false; - if (eperson.getRequireCertificate() == false && !StringUtils.isEmpty(request.getParameter("password"))) + if (!eperson.getRequireCertificate() && !StringUtils.isEmpty(request.getParameter("password"))) { settingPassword = true; } diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java index 1e3a60817f..1a2c97dbdb 100644 --- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java +++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java @@ -45,7 +45,6 @@ import java.net.URLEncoder; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/util/XMLUtil.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/util/XMLUtil.java index 2739430686..65a37f75d3 100644 --- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/util/XMLUtil.java +++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/util/XMLUtil.java @@ -38,6 +38,7 @@ import java.io.IOException; import java.io.StringWriter; import java.util.Enumeration; import java.util.Hashtable; +import java.util.Map; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -109,8 +110,7 @@ public class XMLUtil * @return the transformed xml document * @throws Exception */ - public static Document transformDocument(Document xmlDocument, - Hashtable parameters, String xsltFilename) throws Exception + public static Document transformDocument(Document xmlDocument, Map parameters, String xsltFilename) throws Exception { // Generate a Transformer. @@ -120,12 +120,9 @@ public class XMLUtil // set transformation parameters if (parameters != null) { - Enumeration keys = parameters.keys(); - while (keys.hasMoreElements()) + for (Map.Entry param : parameters.entrySet()) { - String key = (String) keys.nextElement(); - String value = (String) parameters.get(key); - transformer.setParameter(key, value); + transformer.setParameter(param.getKey(), param.getValue()); } } @@ -158,8 +155,7 @@ public class XMLUtil * @return the transformed xml document as a string * @throws Exception */ - public static String transformDocumentAsString(Document xmlDocument, - Hashtable parameters, String xsltFilename) throws Exception + public static String transformDocumentAsString(Document xmlDocument, Map parameters, String xsltFilename) throws Exception { // Generate a Transformer. @@ -169,14 +165,10 @@ public class XMLUtil // set transformation parameters if (parameters != null) { - Enumeration keys = parameters.keys(); - while (keys.hasMoreElements()) + for (Map.Entry param : parameters.entrySet()) { - String key = (String) keys.nextElement(); - String value = (String) parameters.get(key); - transformer.setParameter(key, value); + transformer.setParameter(param.getKey(), param.getValue()); } - } StringWriter stringWriter = new StringWriter(); diff --git a/dspace-stats/src/main/java/org/dspace/statistics/content/DatasetTimeGenerator.java b/dspace-stats/src/main/java/org/dspace/statistics/content/DatasetTimeGenerator.java index 926f563fde..1ebc91a309 100644 --- a/dspace-stats/src/main/java/org/dspace/statistics/content/DatasetTimeGenerator.java +++ b/dspace-stats/src/main/java/org/dspace/statistics/content/DatasetTimeGenerator.java @@ -134,19 +134,19 @@ public class DatasetTimeGenerator extends DatasetGenerator { } public Date getActualStartDate() { - return actualStartDate; + return actualStartDate == null ? null : (Date)actualStartDate.clone(); } public void setActualStartDate(Date actualStartDate) { - this.actualStartDate = actualStartDate; + this.actualStartDate = actualStartDate == null ? null : (Date)actualStartDate.clone(); } public Date getActualEndDate() { - return actualEndDate; + return actualEndDate == null ? null : (Date)actualEndDate.clone(); } public void setActualEndDate(Date actualEndDate) { - this.actualEndDate = actualEndDate; + this.actualEndDate = actualEndDate == null ? null : (Date)actualEndDate.clone(); } public void setDateType(String dateType) { diff --git a/dspace-stats/src/main/java/org/dspace/statistics/content/filter/StatisticsSolrDateFilter.java b/dspace-stats/src/main/java/org/dspace/statistics/content/filter/StatisticsSolrDateFilter.java index 71defecf48..e2530deca3 100644 --- a/dspace-stats/src/main/java/org/dspace/statistics/content/filter/StatisticsSolrDateFilter.java +++ b/dspace-stats/src/main/java/org/dspace/statistics/content/filter/StatisticsSolrDateFilter.java @@ -47,14 +47,14 @@ public class StatisticsSolrDateFilter implements StatisticsFilter { * Must be paired with {@link #setEndDate(Date)}. */ public void setStartDate(Date startDate) { - this.startDate = startDate; + this.startDate = startDate == null ? null : (Date)startDate.clone(); } /** Set the end date as a Date object. * Must be paired with {@link #setStartDate(Date)}. */ public void setEndDate(Date endDate) { - this.endDate = endDate; + this.endDate = endDate == null ? null : (Date)endDate.clone(); } /** Convert the date range to a filter expression. diff --git a/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/submission/AbstractStep.java b/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/submission/AbstractStep.java index 95f7cbc735..be7d5bb1e8 100644 --- a/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/submission/AbstractStep.java +++ b/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/submission/AbstractStep.java @@ -44,7 +44,6 @@ import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.Map; import java.util.Set;