The specification on javax.sound.midi.MidiChannel.controlChange(int controller,int value) says:
------------------------------------------------------------------------------------------
 . . .
The value of a 14-bit controller is determined by the interaction of the two halves.
When the most significant 7 bits of a controller are set (using controller numbers 0
through 31), the lower 7 bits are automatically set to 0.
 . . .
------------------------------------------------------------------------------------------
The testcase api/javax_sound/midi/MidiChannel/index.html#control[control003] checks this behavior.
Here is the excerpt of the meaningful part of the code:
------------------------------------------------------------------------------
        int val = 16;
        int contr = 39; //Channel volume LSB
        try {
             . . .
            //Channel volume MSB
            chan.controlChange((contr - 32), val);
            . . .
            //Channel volume LSB
            if (chan.getController(contr) != 0) {
                failed = true;
                log.println("Controller(" + contr +") does not return proper"
                        + " value: " + chan.getController(contr));
            }
            . . .
------------------------------------------------------------------------------
And here is the output:
Controller(39) does not return proper value: 16
control003: Failed.