I'm in the midst of an upgrade, and I've noticed that now the getColumnPositionByX method in CompositeLayer at times returns a negative value which is not -1 (the value actually seems close the the "real" one I'm supposed to get. Couldn't find anything in the Bugzilla or documentation about the change in usage. Fave you encountered anything like this? This never happened before, and according to the API it shouldn't happen now either.
Pinpointing the problem, childLayer.getColumnPositionByX(childX) is the line producing the "bad" value.
We've created a custom layer painter to deal with the painting of our "body" part (as the previous painter had a few issues and we opted to deal with them internally). We also use this function for a custom selection provider.
Just a quick comment - right now I'm bypassing the issue by using the ViewPortLayer of the layer in question when an illegal result arises - viewportLayer.getScrollableLayer().getColumnPositionByX(x) or Y. This seems to be working just fine.