jtamate updated this revision to Diff 33242. jtamate edited the summary of this revision. jtamate added a comment.
If I use if (!u.path().isEmpty()) or if (!u.path().isEmpty() && !u.path().endsWith('/')), as soon as I enter the url fish://127.0.0.1 (without trailing /), I'm redirected to fish://127.0.0.1/home/jtorres (that didn't happen before), and after finishing reading the directory, assertion. kf5.kio.core: Internal error: job is listing QUrl("fish://127.0.0.1/home/jtorres") but directoryData says no listers are currently listing "fish://127.0.0.1/home/jtorres" kf5.kio.core.dirlister: Items in use: kf5.kio.core.dirlister: "fish://127.0.0.1/home/jtorres" URL: QUrl("fish://127.0.0.1/home/jtorres") rootItem: QUrl("fish://127.0.0.1/home/jtorres") autoUpdates refcount: 1 complete: true "with 1010 items." kf5.kio.core.dirlister: Directory data: kf5.kio.core.dirlister: "fish://127.0.0.1/home/jtorres" 0 listers: "" kf5.kio.core.dirlister: "fish://127.0.0.1/home/jtorres" 1 holders: " 0x3279dd0" kf5.kio.core.dirlister: Jobs: kf5.kio.core.dirlister: Items in cache: kf5.kio.core.dirlister: "file:///virtual/kde5/5kde/build/frameworks/kio" rootItem: "file:///virtual/kde5/5kde/build/frameworks/kio" with 16 items. ASSERT: "!dirData.listersCurrentlyListing.isEmpty()" in file /g/5kde/frameworks/kio/src/core/kcoredirlister.cpp, line 1208 #9 QMessageLogger::fatal (this=this@entry=0x7fff05486530, msg=msg@entry=0x7f36ba7ddeb0 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:816 #10 0x00007f36ba548e86 in qt_assert (assertion=assertion@entry=0x7f36beb7b410 "!dirData.listersCurrentlyListing.isEmpty()", file=file@entry=0x7f36beb7b0b0 "/g/5kde/frameworks/kio/src/core/kcoredirlister.cpp", line=line@entry=1208) at global/qglobal.cpp:3123 #11 0x00007f36beb40230 in KCoreDirListerCache::slotEntries (this=0x7f36bedaf420 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, job=<optimized out>, entries=...) at /g/5kde/frameworks/kio/src/core/kcoredirlister.cpp:1208 ... #18 0x00007f36beae500d in KIO::ListJob::entries (this=this@entry=0x324dd20, _t1=<optimized out>, _t1@entry=0x324dd20, _t2=...) at /virtual/kde5/5kde/build/frameworks/kio/src/core/KF5KIOCore_autogen/include/moc_listjob.cpp:232 #19 0x00007f36beae6ce2 in KIO::ListJobPrivate::slotListEntries (this=0x37bd250, list=...) at /g/5kde/frameworks/kio/src/core/listjob.cpp:154 #20 0x00007f36beae7052 in KIO::ListJobPrivate::<lambda(const UDSEntryList&)>::operator() (list=..., __closure=<optimized out>) at /g/5kde/frameworks/kio/src/core/listjob.cpp:288 Checking for the slash in the string representation of the url, not only in the path part, works for me. REPOSITORY R241 KIO CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D12371?vs=33211&id=33242 REVISION DETAIL https://phabricator.kde.org/D12371 AFFECTED FILES src/filewidgets/kfilewidget.cpp To: jtamate, dfaure, #frameworks, apol Cc: anthonyfieroni, apol, michaelh, bruns