Even stranger than the version I had, I'm afraid. It's sometimes (but not always) picking up all the variables from the selected skin, and also from the default skin!
There's something very weird going on with getSkinVariables().
Edit: It just gets weirder and weirder. I switched my default skin from Gromit to Minimal, closed jAlbum, and launched it again. If I generate the skin model, I get just the variables from Minimal. So far, so good. Now I switch to the DPL3 skin, and generate the skin model. I get a mix of the variables from DPL3 and, wait for it...., Gromit!
Ignore my comment about the null pointer exception - I was doing something dopey.
But the UI doesn't seem to be picking up the entries from the SkinModel.java file. In the attached skin, several of the checkboxes should be set to true, but it appears that only one of them is.
It works if I set their default values to true in the onload.bsh as well as in SkinModel.java, but that sort of defeats the purpose.
I agree it seems to behave in a flaky way. I noticed that changes to SkinModel.java sticks until you reload the skin a second time and if you have a compiled SkinModel, then you need to flip back and forth between two skins for changes to SkinModel to be picked up.
Conclusion for now: When debugging SkinModel, flip back and forth between two skins. Then any changes to SkinModel should manifest as soon as you select the actual skin again.