If you are a Java engineer who ran into a BadPaddingException and ended up here by googling, here is the clue:

BadPaddingException is thrown not because padding was actually 'bad'.  The exception is thrown because the data you are trying to decrypt is malformed, usually by errors in transport-related encoding/decoding code (i.e. BASE64).  Check your encoders and decoders.  Also check to see if you are doing questionable conversion between byte array and String.

For the rest of you, nevermind.