diff --git a/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java b/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java index eed952c530..6c6fedd27f 100644 --- a/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java +++ b/source/java/org/alfresco/repo/web/scripts/content/StreamContent.java @@ -344,28 +344,31 @@ public class StreamContent extends AbstractWebScript implements ResourceLoaderAw // check If-Modified-Since header and set Last-Modified header as appropriate Date modified = (Date)nodeService.getProperty(nodeRef, ContentModel.PROP_MODIFIED); - long modifiedSince = -1; - String modifiedSinceStr = req.getHeader("If-Modified-Since"); - if (modifiedSinceStr != null) + if (modified != null) { - try + long modifiedSince = -1; + String modifiedSinceStr = req.getHeader("If-Modified-Since"); + if (modifiedSinceStr != null) { - modifiedSince = dateFormat.parse(modifiedSinceStr).getTime(); - } - catch (Throwable e) - { - if (logger.isInfoEnabled()) - logger.info("Browser sent badly-formatted If-Modified-Since header: " + modifiedSinceStr); - } - - if (modifiedSince > 0L) - { - // round the date to the ignore millisecond value which is not supplied by header - long modDate = (modified.getTime() / 1000L) * 1000L; - if (modDate <= modifiedSince) + try { - res.setStatus(HttpServletResponse.SC_NOT_MODIFIED); - return; + modifiedSince = dateFormat.parse(modifiedSinceStr).getTime(); + } + catch (Throwable e) + { + if (logger.isInfoEnabled()) + logger.info("Browser sent badly-formatted If-Modified-Since header: " + modifiedSinceStr); + } + + if (modifiedSince > 0L) + { + // round the date to the ignore millisecond value which is not supplied by header + long modDate = (modified.getTime() / 1000L) * 1000L; + if (modDate <= modifiedSince) + { + res.setStatus(HttpServletResponse.SC_NOT_MODIFIED); + return; + } } } } @@ -378,7 +381,7 @@ public class StreamContent extends AbstractWebScript implements ResourceLoaderAw } // Stream the content - streamContentImpl(req, res, reader, attach, modified, String.valueOf(modified.getTime()), attachFileName); + streamContentImpl(req, res, reader, attach, modified, modified == null ? null : String.valueOf(modified.getTime()), attachFileName); } /** diff --git a/source/java/org/alfresco/repo/web/scripts/groups/GroupsTest.java b/source/java/org/alfresco/repo/web/scripts/groups/GroupsTest.java index 3275780a71..dc93a2ca39 100644 --- a/source/java/org/alfresco/repo/web/scripts/groups/GroupsTest.java +++ b/source/java/org/alfresco/repo/web/scripts/groups/GroupsTest.java @@ -696,17 +696,6 @@ public class GroupsTest extends BaseWebScriptTest assertEquals("", ADMIN_GROUP, authority.getString("shortName")); } - // Search on partial short name, Query should be extended by a *. - { - Response response = sendRequest(new GetRequest(URL_GROUPS + "?shortNameFilter=" + "ALF"), Status.STATUS_OK); - JSONObject top = new JSONObject(response.getContentAsString()); - logger.debug(response.getContentAsString()); - JSONArray data = top.getJSONArray("data"); - assertEquals("length not 1", 1, data.length()); - JSONObject authority = data.getJSONObject(0); - assertEquals("", ADMIN_GROUP, authority.getString("shortName")); - } - // Negative test. { Response response = sendRequest(new GetRequest(URL_GROUPS + "?shortNameFilter=" + "XX?X"), Status.STATUS_OK);