Yeah, a good rule of thumb is that if something was specified by a JSR, it's probably shit to work with because of all the competing corporate agendas that went into it.
For example, if someone put as much effort in .Net's original collections API as they did with Java JCF, many a facepalm would have been avoided.
To be honest the whole JSR process is usually hindered by shoddy implementations rather than fundamental problems.