|
1 | 1 | package org.cloudfoundry.multiapps.controller.process.steps; |
2 | 2 |
|
3 | 3 | import java.io.IOException; |
| 4 | +import java.io.InputStream; |
4 | 5 | import java.math.BigInteger; |
5 | 6 | import java.text.MessageFormat; |
6 | 7 | import java.util.ArrayList; |
|
21 | 22 | import org.cloudfoundry.multiapps.controller.persistence.services.FileStorageException; |
22 | 23 | import org.cloudfoundry.multiapps.controller.process.Messages; |
23 | 24 | import org.cloudfoundry.multiapps.controller.process.stream.ArchiveStreamWithName; |
24 | | -import org.cloudfoundry.multiapps.controller.process.stream.LazyArchiveInputStream; |
25 | 25 | import org.cloudfoundry.multiapps.controller.process.util.FileSweeper; |
26 | 26 | import org.cloudfoundry.multiapps.controller.process.util.MergedArchiveStreamCreator; |
27 | 27 | import org.cloudfoundry.multiapps.controller.process.util.PriorityCallable; |
@@ -185,22 +185,22 @@ private void mergeArchive(ProcessContext context, List<FileEntry> archivePartEnt |
185 | 185 | archivePartEntries.size(), archiveSize); |
186 | 186 | FileEntry uploadedArchive = persistArchive(archiveStreamWithName, context, archiveSize); |
187 | 187 | context.setVariable(Variables.APP_ARCHIVE_ID, uploadedArchive.getId()); |
188 | | - validateMergedArchive(archiveStreamWithName); |
| 188 | + validateMergedArchive(uploadedArchive); |
189 | 189 | getStepLogger().infoWithoutProgressMessage(MessageFormat.format(Messages.ARCHIVE_WITH_ID_0_AND_NAME_1_WAS_STORED, |
190 | 190 | uploadedArchive.getId(), |
191 | 191 | archiveStreamWithName.getArchiveName())); |
192 | | - } catch (IOException e) { |
193 | | - throw new SLException(e); |
194 | 192 | } finally { |
195 | 193 | IOUtils.closeQuietly(archiveStreamWithName.getArchiveStream()); |
196 | 194 | } |
197 | 195 | } |
198 | 196 |
|
199 | | - private void validateMergedArchive(ArchiveStreamWithName archiveStreamWithName) throws IOException { |
200 | | - LazyArchiveInputStream lazyArchiveInputStream = (LazyArchiveInputStream) archiveStreamWithName.getArchiveStream(); |
201 | | - fileMimeTypeValidator.validateInputStreamMimeType(lazyArchiveInputStream.getCurrentInputStream(), |
202 | | - archiveStreamWithName.getArchiveName()); |
203 | | - lazyArchiveInputStream.close(); |
| 197 | + private void validateMergedArchive(FileEntry fileEntry) { |
| 198 | + try (InputStream fileInputStream = fileService.openInputStream(fileEntry.getSpace(), fileEntry.getId())) { |
| 199 | + fileMimeTypeValidator.validateInputStreamMimeType(fileInputStream, |
| 200 | + fileEntry.getName()); |
| 201 | + } catch (FileStorageException | IOException e) { |
| 202 | + throw new SLException(e); |
| 203 | + } |
204 | 204 | } |
205 | 205 |
|
206 | 206 | private String[] getArchivePartIds(ProcessContext context) { |
|
0 commit comments