I’ve been developing with mostly open-source software for the last two years, and it’s made me soft. I realised this today, when I encountered a problem with the ESRI Map Objects libraries I am evaluating. An event listener that should – at least according to the documentation – be firing, isn’t firing.
Having worked with open-source software for so long, my first reaction is to have a look at the library code. With Spring, for example, there have been several cases where a quick examination of the source showed me that I was misinterpreting the reference manual. A quick tweak to my code, and I was off.
As it is, I’ve now got to go to the ESRI “self-help” forums. If there’s no answer there, we have to decide whether to ditch MapObjects, spend a day investigating clunky workarounds, or buy something that’s not working, with support, in the hope that support might might fix it. Wish me luck.
Update: I did find the answer via ESRI‘s self-help forums. Unlike normal Swing listeners, listeners on ESRI-provided Swing objects are only weakly referenced. If you want a listener to keep working, your code must maintain an additional strong reference to it. Words. Fail. Me.