diff --git a/dspace-api/src/main/java/org/dspace/content/PreviewContentServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/PreviewContentServiceImpl.java index 3252a9574233..e6cd2ec12f76 100644 --- a/dspace-api/src/main/java/org/dspace/content/PreviewContentServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/PreviewContentServiceImpl.java @@ -152,7 +152,7 @@ public boolean canPreview(Context context, Bitstream bitstream) throws SQLExcept @Override public List getFilePreviewContent(Context context, Bitstream bitstream) - throws SQLException, AuthorizeException, IOException { + throws Exception { InputStream inputStream = null; List fileInfos = null; try { @@ -160,11 +160,7 @@ public List getFilePreviewContent(Context context, Bitstream bitstream } catch (MissingLicenseAgreementException e) { /* Do nothing */ } if (Objects.nonNull(inputStream)) { - try { - fileInfos = processInputStreamToFilePreview(context, bitstream, inputStream); - } catch (IllegalStateException e) { - log.error("Cannot process Input Stream to file preview because: " + e.getMessage()); - } + fileInfos = processInputStreamToFilePreview(context, bitstream, inputStream); } return fileInfos; } @@ -193,7 +189,7 @@ public FileInfo createFileInfo(PreviewContent pc) { @Override public List processInputStreamToFilePreview(Context context, Bitstream bitstream, InputStream inputStream) - throws SQLException, IOException { + throws Exception { List fileInfos = new ArrayList<>(); String bitstreamMimeType = bitstream.getFormat(context).getMIMEType(); if (bitstreamMimeType.equals("text/plain")) { @@ -216,12 +212,8 @@ public List processInputStreamToFilePreview(Context context, Bitstream String mimeType = bitstream.getFormat(context).getMIMEType(); if (archiveTypes.containsKey(mimeType)) { - try { - data = extractFile(inputStream, archiveTypes.get(mimeType)); - fileInfos = FileTreeViewGenerator.parse(data); - } catch (Exception e) { - log.error("Cannot extract file content because: {}", e.getMessage()); - } + data = extractFile(inputStream, archiveTypes.get(mimeType)); + fileInfos = FileTreeViewGenerator.parse(data); } } return fileInfos; @@ -420,7 +412,7 @@ private String buildXmlResponse(List filePaths) { * @param fileType the type of file to extract ("tar" or "zip") * @return an XML string representing the extracted file paths */ - private String extractFile(InputStream inputStream, String fileType) { + private String extractFile(InputStream inputStream, String fileType) throws Exception { List filePaths = new ArrayList<>(); Path tempFile = null; FileSystem zipFileSystem = null; @@ -439,8 +431,6 @@ private String extractFile(InputStream inputStream, String fileType) { zipFileSystem = FileSystems.newFileSystem(tempFile, (ClassLoader) null); processZipFile(filePaths, zipFileSystem); } - } catch (IOException e) { - log.error(String.format("An error occurred while extracting file of type %s.", fileType), e); } finally { closeFileSystem(zipFileSystem); deleteTempFile(tempFile); diff --git a/dspace-api/src/main/java/org/dspace/content/service/PreviewContentService.java b/dspace-api/src/main/java/org/dspace/content/service/PreviewContentService.java index bb5ffe87efd2..8a27f61844c7 100644 --- a/dspace-api/src/main/java/org/dspace/content/service/PreviewContentService.java +++ b/dspace-api/src/main/java/org/dspace/content/service/PreviewContentService.java @@ -7,7 +7,6 @@ */ package org.dspace.content.service; -import java.io.IOException; import java.io.InputStream; import java.sql.SQLException; import java.util.List; @@ -116,8 +115,7 @@ PreviewContent create(Context context, Bitstream bitstream, String name, String * @param bitstream ZIP file bitstream * @return List of FileInfo classes where is wrapped ZIP file content */ - List getFilePreviewContent(Context context, Bitstream bitstream) - throws SQLException, AuthorizeException, IOException; + List getFilePreviewContent(Context context, Bitstream bitstream) throws Exception; /** * Create preview content from file info for bitstream. @@ -153,5 +151,5 @@ List getFilePreviewContent(Context context, Bitstream bitstream) * @return List of FileInfo classes where is wrapped ZIP file content */ List processInputStreamToFilePreview(Context context, Bitstream bitstream, InputStream inputStream) - throws SQLException, IOException; + throws Exception; } diff --git a/dspace-api/src/main/java/org/dspace/scripts/filepreview/FilePreview.java b/dspace-api/src/main/java/org/dspace/scripts/filepreview/FilePreview.java index a2e4c1f1930b..46e4c2564fde 100644 --- a/dspace-api/src/main/java/org/dspace/scripts/filepreview/FilePreview.java +++ b/dspace-api/src/main/java/org/dspace/scripts/filepreview/FilePreview.java @@ -7,18 +7,13 @@ */ package org.dspace.scripts.filepreview; -import java.io.IOException; -import java.sql.SQLException; import java.util.Iterator; import java.util.List; import java.util.Objects; import java.util.UUID; -import javax.xml.parsers.ParserConfigurationException; import org.apache.commons.cli.ParseException; -import org.apache.commons.compress.archivers.ArchiveException; import org.apache.commons.lang3.StringUtils; -import org.dspace.authorize.AuthorizeException; import org.dspace.content.Bitstream; import org.dspace.content.Bundle; import org.dspace.content.Item; @@ -30,7 +25,6 @@ import org.dspace.scripts.DSpaceRunnable; import org.dspace.util.FileInfo; import org.dspace.utils.DSpace; -import org.xml.sax.SAXException; /** * This class is used to generate a preview for every file in DSpace that should have a preview. @@ -99,8 +93,7 @@ public void internalRun() throws Exception { Item item = items.next(); try { generateItemFilePreviews(context, item.getID()); - } catch (SQLException | AuthorizeException | IOException | ParserConfigurationException | - ArchiveException | SAXException e) { + } catch (Exception e) { handler.logError("Error while generating preview for item with UUID: " + item.getID()); handler.logError(e.getMessage()); } @@ -115,8 +108,7 @@ public void internalRun() throws Exception { context.complete(); } - private void generateItemFilePreviews(Context context, UUID itemUUID) throws SQLException, AuthorizeException, - IOException, ParserConfigurationException, ArchiveException, SAXException { + private void generateItemFilePreviews(Context context, UUID itemUUID) throws Exception { Item item = itemService.find(context, itemUUID); if (Objects.isNull(item)) { handler.logError("Item with UUID: " + itemUUID + " not found."); diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/MetadataBitstreamRestRepository.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/MetadataBitstreamRestRepository.java index 187a467b9cda..7319ea90b38a 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/MetadataBitstreamRestRepository.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/MetadataBitstreamRestRepository.java @@ -7,16 +7,12 @@ */ package org.dspace.app.rest.repository; -import java.io.IOException; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import javax.servlet.http.HttpServletRequest; -import javax.xml.parsers.ParserConfigurationException; -import org.apache.commons.compress.archivers.ArchiveException; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Logger; import org.dspace.app.rest.Parameter; @@ -26,7 +22,6 @@ import org.dspace.app.rest.exception.UnprocessableEntityException; import org.dspace.app.rest.model.MetadataBitstreamWrapperRest; import org.dspace.app.rest.model.wrapper.MetadataBitstreamWrapper; -import org.dspace.authorize.AuthorizeException; import org.dspace.content.Bitstream; import org.dspace.content.Bundle; import org.dspace.content.DSpaceObject; @@ -43,7 +38,6 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Component; -import org.xml.sax.SAXException; /** * This controller returns content of the bitstream to the `Preview` box in the Item View. @@ -68,8 +62,7 @@ public class MetadataBitstreamRestRepository extends DSpaceRestRepository findByHandle(@Parameter(value = "handle", required = true) String handle, @Parameter(value = "fileGrpType") String fileGrpType, Pageable pageable) - throws SQLException, ParserConfigurationException, IOException, SAXException, AuthorizeException, - ArchiveException { + throws Exception { if (StringUtils.isBlank(handle)) { throw new DSpaceBadRequestException("handle cannot be null!"); }