以下为发生异常代码块
/**
* sftp下载图片
*/
private String sftpDownloadFile(SFTPUtils channelSftp, String fileUrl, Long processId, FileTypeEnum fileTypeEnum) {
InputStream inputStream = null;
Integer index = fileUrl.lastIndexOf("/");
String fileDir = fileUrl.substring(0, index);
String fileNameSftp = fileUrl.substring(index + 1, fileUrl.length());
String ecmFileId;
try {
inputStream = channelSftp.downloadFile(fileDir, fileNameSftp);
byte[] data = IOUtils.toByteArray(inputStream);
// 超过600kb就压缩
if (data.length / 1024 > maxImage) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
Thumbnails.of(new ByteArrayInputStream(data)).size(600, 600).toOutputStream(os);
data = os.toByteArray();
}
EcmResponse<String> result = ecmTemplate.upload().content(data).name(fileNameSftp).execute();
if (result.getCode() != 0) {
return StringUtils.EMPTY;
}
ecmFileId = result.getData();
} catch (Exception e) {
log.error("processId:{}, fileType:{},sftp下载文件异常了:", processId, fileTypeEnum.getFileCode(), e);
return StringUtils.EMPTY;
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
log.error("downloadFile inputStream close IOException");
}
}
}
return ecmFileId;
}
以下为详细异常信息
sftp下载文件异常了:
javax.imageio.IIOException: Error reading PNG image data
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1345)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1614)
at net.coobird.thumbnailator.tasks.io.InputStreamImageSource.read(Unknown Source)
at net.coobird.thumbnailator.tasks.SourceSinkThumbnailTask.read(Unknown Source)
at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)
at net.coobird.thumbnailator.Thumbnails$Builder.toOutputStream(Unknown Source)
at com.vcredit.coop.service.impl.credit.CreditDownLoadImgServiceImpl.sftpDownloadFile(CreditDownLoadImgServiceImpl.java:206)
at com.vcredit.coop.service.impl.credit.CreditDownLoadImgServiceImpl.downloadFile(CreditDownLoadImgServiceImpl.java:139)
at com.vcredit.coop.service.impl.credit.CreditDownLoadImgServiceImpl.executeCredit(CreditDownLoadImgServiceImpl.java:78)
at com.vcredit.coop.service.impl.credit.CreditExtendServiceImpl.recursionExecuteCredit(CreditExtendServiceImpl.java:304)
at com.vcredit.coop.service.impl.credit.CreditExtendServiceImpl.lambda$pollingExecuteCredit$0(CreditExtendServiceImpl.java:257)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at java.io.DataInputStream.readFully(DataInputStream.java:195)
at com.sun.imageio.plugins.png.PNGImageReader.decodePass(PNGImageReader.java:1119)
at com.sun.imageio.plugins.png.PNGImageReader.decodeImage(PNGImageReader.java:1223)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1338)
... 15 more