<table><tr><td style="">aacid created this revision.<br />aacid added reviewers: Frameworks, dfaure.<br />Restricted Application added a project: Frameworks.<br />aacid requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D11649">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>When doing a KIO::storedPut to a filename that has a .part file existing there were two problems:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">We were never answering to the canResume signal, so it was crashing in waitForAnswer because we didn't get the proper answer</li>
<li class="remarkup-list-item">We were sending the data on start unconditionally, which means when the slave asked for canResume it had the wrong answer</li>
</ul>

<p>The line removed in start seems not to be needed anymore, tests pass without it and KDE Connect that is one of the main users of this still seems to work.</p>

<p>I'm not totally sure it's the best of the ideas adding the handling of canResume to StoredTransferJob since users of it may already have implemented.</p>

<p>To be honest I'm not totally sure this is the totally correct fix. Comments more than welcome.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Without the code changes the newly added test makes the file ioslave crash</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R241 KIO</div></div></div><br /><div><strong>BRANCH</strong><div><div>master</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D11649">https://phabricator.kde.org/D11649</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>autotests/jobtest.cpp<br />
autotests/jobtest.h<br />
src/core/slavebase.cpp<br />
src/core/storedtransferjob.cpp<br />
src/core/transferjob.cpp</div></div></div><br /><div><strong>To: </strong>aacid, Frameworks, dfaure<br /><strong>Cc: </strong>michaelh, ngraham<br /></div>