OK, the bad new is ... it's the Linux Java implementation that's the problem
I only tested it a few times on Windows and I must have done that with hacks that I was trying to get to work but were wrong
Coz now when using line.getMicrosecondPosition() it does seem to be correct on Windows but not on Linux
I'm not 100% certain that it is exact on Windows but it does appear to be close enough that it could be OK
Also, I found that Juke.java in the JavaSound demo also displays a counter that is wrong on Linux but appears to be OK on Windows
Oh well, off to the sun bug parade ...