Ok, freezing rather than crashing is a huge difference. In the jinput jar there are some test, can you run net.java.games.input.test.ControllerTextTest or net.java.games.input.test.ControllerReadTest ?
use the same classpath and start directory as you do for your app and those should run. ControllerTextTest will dump a whole heap of stuff to the console, copy and paste the lot in here please
, and ControllerReadTest should open up some windows (one or more per device) and show axis and button values changing as the device is used.
How many time do you get the DI_BUFFEROVERFLOW message, rougly, once, once a second, or more?