I'm not much of an expert, but according to what I saw when breakpointing around, DashLauncherAction is supposed to be instantiated the first time such a thing is needed and kept around, however it might keep a cache.  If that's the case then I guess fileType can be explicitly assigned to null if there's no virtualFile.  I'll take another look at IntelliJ's code to see exactly when Actions are created.