Merge pull request #1949 from jonas-atmire/DS-3830-Cache-issue-for-version-creation-link

DS-3830 Item retrieval fallbacks for versioning navigation
This commit is contained in:
kshepherd
2018-04-12 08:56:10 +12:00
committed by GitHub
2 changed files with 14 additions and 3 deletions

View File

@@ -11,6 +11,7 @@ import org.apache.cocoon.caching.CacheableProcessingComponent;
import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Request;
import org.apache.cocoon.util.HashUtil; import org.apache.cocoon.util.HashUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.excalibur.source.SourceValidity; import org.apache.excalibur.source.SourceValidity;
import org.apache.excalibur.source.impl.validity.NOPValidity; import org.apache.excalibur.source.impl.validity.NOPValidity;
import org.dspace.app.util.Util; import org.dspace.app.util.Util;
@@ -124,8 +125,10 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
} }
DSpaceObject dso = HandleUtil.obtainHandle(objectModel); DSpaceObject dso = HandleUtil.obtainHandle(objectModel);
if(dso != null) if(dso == null){
{ dso = getItemById();
}
if (dso != null) {
validity.add(context, dso); validity.add(context, dso);
} }
@@ -201,6 +204,12 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
if (itemId != null) if (itemId != null)
{ {
item = itemService.find(this.context, itemId); item = itemService.find(this.context, itemId);
} else {
String itemIDParam = parameters.getParameter("itemID", null);
if (StringUtils.isNotBlank(itemIDParam)) {
itemId = UUID.fromString(itemIDParam);
item = itemService.find(context, itemId);
}
} }
return item; return item;
} }

View File

@@ -83,7 +83,9 @@
<map:select type="AuthenticatedSelector"> <map:select type="AuthenticatedSelector">
<map:when test="eperson"> <map:when test="eperson">
<map:transform type="Navigation"/> <map:transform type="Navigation">
<map:parameter name="itemID" value="{flow-attribute:itemID}"/>
</map:transform>
<map:match pattern="item/version/create"> <map:match pattern="item/version/create">
<map:transform type="VersionItemForm"> <map:transform type="VersionItemForm">