From 14fd1f8df7a8fc4005a9d63183cf782e4538288b Mon Sep 17 00:00:00 2001 From: Tim Donohue Date: Fri, 17 Jun 2011 20:18:36 +0000 Subject: [PATCH] Fix for DS-930 - Several DSpace Crosswalks create a new Context and never close it git-svn-id: http://scm.dspace.org/svn/repo/dspace/trunk@6441 9c30dcfa-912a-0410-8fc2-9e0234be79fd --- .../dspace/content/crosswalk/METSDisseminationCrosswalk.java | 1 + .../main/java/org/dspace/content/crosswalk/RoleCrosswalk.java | 3 ++- .../org/dspace/content/crosswalk/XSLTIngestionCrosswalk.java | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dspace-api/src/main/java/org/dspace/content/crosswalk/METSDisseminationCrosswalk.java b/dspace-api/src/main/java/org/dspace/content/crosswalk/METSDisseminationCrosswalk.java index 335fe9d917..b3251fad5e 100644 --- a/dspace-api/src/main/java/org/dspace/content/crosswalk/METSDisseminationCrosswalk.java +++ b/dspace-api/src/main/java/org/dspace/content/crosswalk/METSDisseminationCrosswalk.java @@ -119,6 +119,7 @@ public class METSDisseminationCrosswalk // Disseminate METS to temp file Context context = new Context(); dip.disseminate(context, item, pparams, tempFile); + context.complete(); try { diff --git a/dspace-api/src/main/java/org/dspace/content/crosswalk/RoleCrosswalk.java b/dspace-api/src/main/java/org/dspace/content/crosswalk/RoleCrosswalk.java index 5b42456b30..4d6d5ba060 100644 --- a/dspace-api/src/main/java/org/dspace/content/crosswalk/RoleCrosswalk.java +++ b/dspace-api/src/main/java/org/dspace/content/crosswalk/RoleCrosswalk.java @@ -200,7 +200,8 @@ public class RoleCrosswalk //actually disseminate to our temp file. Context context = new Context(); dip.disseminate(context, dso, pparams, tempFile); - + context.complete(); + // if we ended up with a Zero-length output file, // this means dissemination was successful but had no results if(tempFile.exists() && tempFile.length()==0) diff --git a/dspace-api/src/main/java/org/dspace/content/crosswalk/XSLTIngestionCrosswalk.java b/dspace-api/src/main/java/org/dspace/content/crosswalk/XSLTIngestionCrosswalk.java index f1a67cac7c..aa98764407 100644 --- a/dspace-api/src/main/java/org/dspace/content/crosswalk/XSLTIngestionCrosswalk.java +++ b/dspace-api/src/main/java/org/dspace/content/crosswalk/XSLTIngestionCrosswalk.java @@ -332,7 +332,7 @@ public class XSLTIngestionCrosswalk { System.err.println("DIM Error, Cannot find metadata schema for: schema=\""+schema+ "\" (... element=\""+element+"\", qualifier=\""+qualifier+"\")"); - } + } else { if (qualifier != null && qualifier.equals("")) @@ -356,6 +356,8 @@ public class XSLTIngestionCrosswalk throw new MetadataValidationException("Got unexpected element in DIM list: "+elt.toString()); } } + //complete & close Context + context.complete(); } }