diff --git a/dspace/jsp/dspace-admin/list-formats.jsp b/dspace/jsp/dspace-admin/list-formats.jsp index 537cfa7b4f..f9c7811bbf 100644 --- a/dspace/jsp/dspace-admin/list-formats.jsp +++ b/dspace/jsp/dspace-admin/list-formats.jsp @@ -52,6 +52,9 @@ <%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %> <%@ page import="org.dspace.content.BitstreamFormat" %> +<%@ page import="org.dspace.core.Context"%> +<%@ page import="org.dspace.app.webui.util.UIUtil"%> + <% BitstreamFormat[] formats = @@ -87,6 +90,8 @@ <% + Context context = UIUtil.obtainContext(request); + String row = "even"; for (int i = 0; i < formats.length; i++) { @@ -109,7 +114,14 @@ - + <% + if (BitstreamFormat.findUnknown(context).getID() == formats[i].getID()) { + %> + <%= formats[i].getShortDescription() %> + <% } else { %> + + <% } %> + @@ -132,7 +144,13 @@ + <% + if (BitstreamFormat.findUnknown(context).getID() != formats[i].getID()) { + %> + <% + } + %> diff --git a/dspace/src/org/dspace/content/BitstreamFormat.java b/dspace/src/org/dspace/content/BitstreamFormat.java index 55972e0790..8519cc72e9 100644 --- a/dspace/src/org/dspace/content/BitstreamFormat.java +++ b/dspace/src/org/dspace/content/BitstreamFormat.java @@ -409,8 +409,12 @@ public class BitstreamFormat * the new short description */ public void setShortDescription(String s) + throws SQLException { - bfRow.setColumn("short_description", s); + // You can not reset the unknown's registry's name + BitstreamFormat unknown = findUnknown(bfContext); + if (unknown.getID() != getID()) + bfRow.setColumn("short_description", s); } /** @@ -562,12 +566,15 @@ public class BitstreamFormat "Only administrators can delete bitstream formats"); } - // Remove from cache - bfContext.removeCached(this, getID()); - // Find "unknown" type BitstreamFormat unknown = findUnknown(bfContext); + if (unknown.getID() == getID()) + throw new IllegalArgumentException("The Unknown bitstream format may not be deleted."); + + // Remove from cache + bfContext.removeCached(this, getID()); + // Set bitstreams with this format to "unknown" int numberChanged = DatabaseManager.updateQuery(bfContext, "UPDATE bitstream SET bitstream_format_id=" + unknown.getID()