Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/client/Download.java =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -r6f700a19baae0fa813ac85e0b4559d0afe27523a --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/client/Download.java (.../Download.java) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/client/Download.java (.../Download.java) (revision 6f700a19baae0fa813ac85e0b4559d0afe27523a) @@ -295,7 +295,11 @@ response.addHeader("Content-Description", filename); } - InputStream in = new BufferedInputStream(fileNode.getFile()); + InputStream in = fileNode.getFile(); + if (in == null) { + throw new FileException("File not found: " + filename); + } + in = new BufferedInputStream(in); OutputStream out = response.getOutputStream(); try { int count = 0; Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/dao/file/FileDAO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r6f700a19baae0fa813ac85e0b4559d0afe27523a --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/dao/file/FileDAO.java (.../FileDAO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/dao/file/FileDAO.java (.../FileDAO.java) (revision 6f700a19baae0fa813ac85e0b4559d0afe27523a) @@ -21,7 +21,6 @@ * **************************************************************** */ - package org.lamsfoundation.lams.contentrepository.dao.file; import java.io.BufferedInputStream; @@ -80,7 +79,7 @@ // with a larger buffer /** * Write out a file to the repository. Closes the stream. Overwrites any existing files. - * + * * @return the path to which the file was written */ @Override @@ -144,7 +143,7 @@ /** * Gets a file from the repository. - * + * * @param uuid * node id * @param versionId @@ -157,16 +156,15 @@ try { return new FileInputStream(paths[1]); } catch (IOException e) { - e.printStackTrace(); - throw new FileException("Unable to read file for uuid " + uuid + " versionId " + versionId - + " due to an IOException. Generated path was " + paths[1], e); + log.debug(e.getMessage()); } + return null; } /** * Delete a file from the repository. If this makes the directory * empty, then the directory should be deleted. - * + * * @return 1 if deleted okay, 0 if file not found, -1 if file found but a delete error occured. */ @Override @@ -204,7 +202,7 @@ /** * Get the actual path of the file ie the path on disk - * + * * @throws FileException */ @Override Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/NodeFactory.java =================================================================== diff -u -rd140daaaa506ac792804b3ce302724b3dde9c830 -r6f700a19baae0fa813ac85e0b4559d0afe27523a --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/NodeFactory.java (.../NodeFactory.java) (revision d140daaaa506ac792804b3ce302724b3dde9c830) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/NodeFactory.java (.../NodeFactory.java) (revision 6f700a19baae0fa813ac85e0b4559d0afe27523a) @@ -268,6 +268,9 @@ // this is likely to recopy the Filename and Mimetype properties. if (originalNode.isNodeType(NodeType.FILENODE)) { InputStream istream = originalNode.getFile(); + if (istream == null) { + throw new FileException("File not found"); + } IValue filenameProperty = originalNode.getProperty(PropertyName.FILENAME); IValue mimetypeProperty = originalNode.getProperty(PropertyName.MIMETYPE); newNode.setFile(istream, filenameProperty != null ? filenameProperty.getString() : null, Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java =================================================================== diff -u -rd140daaaa506ac792804b3ce302724b3dde9c830 -r6f700a19baae0fa813ac85e0b4559d0afe27523a --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java (.../SimpleRepository.java) (revision d140daaaa506ac792804b3ce302724b3dde9c830) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleRepository.java (.../SimpleRepository.java) (revision 6f700a19baae0fa813ac85e0b4559d0afe27523a) @@ -788,6 +788,9 @@ private void saveSigleFile(String toFileName, IVersionedNode node) throws FileException, ValueFormatException, FileUtilException, FileNotFoundException, IOException { InputStream is = node.getFile(); + if (is == null) { + throw new FileException("File not found"); + } if (toFileName == null) { IValue prop = node.getProperty(PropertyName.FILENAME); toFileName = prop != null ? prop.getString() : null; Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java =================================================================== diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r6f700a19baae0fa813ac85e0b4559d0afe27523a --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 6f700a19baae0fa813ac85e0b4559d0afe27523a) @@ -557,6 +557,9 @@ String fileName = file.getOriginalFilename(); InputStream originalIS = imageGalleryToolContentHandler.getFileInputStream(nodeKey.getUuid()); + if (originalIS == null) { + throw new UploadImageGalleryFileException("File not found"); + } BufferedImage originalImage = ImageIO.read(originalIS); //throw exception if image was not successfully read if (originalImage == null) { @@ -638,7 +641,7 @@ public void auditLogStartEditingActivityInMonitor(long toolContentID) { toolService.auditLogStartEditingActivityInMonitor(toolContentID); } - + @Override public boolean isLastActivity(Long toolSessionId) { return toolService.isLastActivity(toolSessionId);