getodk / briefcase

ODK Briefcase is a Java application for fetching and pushing forms and their contents. It helps make billions of data points from ODK portable. Contribute and make the world a better place! ✨💼✨
https://docs.getodk.org/briefcase-intro
Other
60 stars 156 forks source link

Pull/Push/Export tabs are still active when the storage location is cleared #894

Open mmarciniak90 opened 3 years ago

mmarciniak90 commented 3 years ago

Software versions

Briefcase current master

Problem description

Pull/Push/Export tabs are still active when the storage location is cleared

Steps to reproduce the problem

We have not been able to determine repro steps and the condition that causes this issue

Peek 2020-11-03 15-11

briefcase(1).log

Expected behavior

Pull/Push/Export tabs are inactive when the storage location is cleared

kkrawczyk123 commented 3 years ago

I was also encountering that issue but I do not have more information about reproduction steps. Sometimes it happened for me after pull, sometimes after export. I have also gif of the behavior: Peek 2020-11-03 16-10

I was also able to ex. start pull when sd was not selected, this is the screenshot of cmd response: Screenshot from 2020-11-03 16-11-14

lognaturel commented 3 years ago

I can reproduce this consistently on v1.17.4 by pulling a form and then clearing the storage directory. Any time I set and clear the storage directory after that, the tabs are still active. I can see that a StorageLocationEvent.LocationCleared() event is broadcast but it's not received. I can do EventBus.getSubscribersToClass(StorageLocationEvent.LocationCleared.class) and see that there are no subscribers to the event. I'm guessing the addition of some other broadcast subscription clears this one.

I'll try to do a timeboxed exploration but since this is not a regression and it's not fatal, I think it's ok to leave as-is for now.

lognaturel commented 3 years ago

I don't have any more insights. Something is causing subscribers to be unsubscribed but I can't tell what. I've also been able to reach a state where the UI is locked, I select a storage location, and the UI isn't unlocked. It does seem linked to performing some other action but I'm not seeing any logging that helps explain what's going on.