package/inc/ZipOutputEntry.hxx | 1 + package/source/zipapi/ZipOutputEntry.cxx | 7 +++++++ package/source/zipapi/ZipOutputStream.cxx | 2 ++ 3 files changed, 10 insertions(+)
New commits: commit ef698035aa2aa64fc4c4455b394e6782772fef4f Author: Caolán McNamara <caol...@redhat.com> Date: Wed Aug 5 23:26:27 2015 +0100 Related: tdf#88314 delete temp files clear to close the inputstream before attempting to delete the temp file, which is plausible as the windows-specific failure in earlier attempts at this Change-Id: I751aa3a098dd960f56b77a5f5fc93783c1060556 Reviewed-on: https://gerrit.libreoffice.org/17531 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/package/inc/ZipOutputEntry.hxx b/package/inc/ZipOutputEntry.hxx index d431a07..3a6447c 100644 --- a/package/inc/ZipOutputEntry.hxx +++ b/package/inc/ZipOutputEntry.hxx @@ -69,6 +69,7 @@ public: css::uno::Reference< css::io::XInputStream > getData() const; ::css::uno::Any getParallelDeflateException() const { return m_aParallelDeflateException; } void closeBufferFile(); + void deleteBufferFile(); ZipEntry* getZipEntry() { return m_pCurrentEntry; } ZipPackageStream* getZipPackageStream() { return m_pCurrentStream; } diff --git a/package/source/zipapi/ZipOutputEntry.cxx b/package/source/zipapi/ZipOutputEntry.cxx index e307003..47ecbb4 100644 --- a/package/source/zipapi/ZipOutputEntry.cxx +++ b/package/source/zipapi/ZipOutputEntry.cxx @@ -114,6 +114,13 @@ void ZipOutputEntry::closeBufferFile() m_xOutStream.clear(); } +void ZipOutputEntry::deleteBufferFile() +{ + assert(!m_xOutStream.is() && !m_aTempURL.isEmpty()); + uno::Reference < ucb::XSimpleFileAccess3 > xAccess(ucb::SimpleFileAccess::create(m_xContext)); + xAccess->kill(m_aTempURL); +} + uno::Reference< io::XInputStream > ZipOutputEntry::getData() const { uno::Reference < ucb::XSimpleFileAccess3 > xTempAccess(ucb::SimpleFileAccess::create(m_xContext)); diff --git a/package/source/zipapi/ZipOutputStream.cxx b/package/source/zipapi/ZipOutputStream.cxx index 4acfa77..be261cd 100644 --- a/package/source/zipapi/ZipOutputStream.cxx +++ b/package/source/zipapi/ZipOutputStream.cxx @@ -121,10 +121,12 @@ void ZipOutputStream::finish() rawWrite(aSequence); } while (nRead == n_ConstBufferSize); + xInput.clear(); rawCloseEntry(m_aEntries[i]->isEncrypt()); m_aEntries[i]->getZipPackageStream()->successfullyWritten(m_aEntries[i]->getZipEntry()); + m_aEntries[i]->deleteBufferFile(); delete m_aEntries[i]; }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits