I'm new to Ode & OdeJava (Hi Level API), and I notice that the collisions between 2 jointed bodies are not reported.
This is the current behaviour of Odejava.
following code in the nearCallback function of odejava.cpp:
// ignore if the two bodies are connected by a joint
if (b1 && b2 && dAreConnectedExcluding (b1,b2,dJointTypeContact)) return;
Current nearCallback is an example, it won't work on all simulations. It does however suit fine for many simulations. The biggest questionable nearCallback 'feature' is this "ignore jointed bodies" part that you have found. Easiest way is to offer two different callbacks on Odejava in order to satisfy most users needs.
Some people like to ignore bodies that are connected to each other with a joint, e.g. a car wheel should not hit to chassis at any case when wheel is connected to the car chassis with an joint. This is how current Odejava nearCallback acts.
Some people would like to handle also these kind of collisions, this is your case and Odejava does not work this way.
Fast fix would be for me to add various nearCallbacks to Odejava but this is not too sound solution. I would have to think this a bit before implementing anything. Pure java collision class on Odejava (java nearCallback) is most flexible way to define your callback but it's also the slowest. Also it's not quite yet finished, even though it's easy to finish.