Remove undocumented and unused Transaction constructor. I found it misleading because it allows you to pass in a hash, but the hash can be changed without notice.
Fix Wallet.isTransactionRelevant() JavaDoc. There is no "includeDoubleSpending".
Fix Wallet.checkForDoubleSpendAgainstPending() JavaDoc. It returns a boolean.
Fix link in Wallet.notifyTransactionIsInBlock() JavaDoc.
Copy @throws from the JavaDoc of Wallet.completeTx() to all calling methods.
Remove unused CouldNotAdjustDownwards. Move JavaDoc to the real one.
Allow zero repetitions for CoinFormat.repeatOptionalDecimals(). Also add tests.
Fixed bitcoinj DoS. It could have been crashed by a malicious message.

Bitcoinj can be crashed with OutOfMemory by sending a message with
a large claimed var_str length or bytes array length.

The actual message size does not matter, it's the claimed length that matters.

This affects all bitcoinj-based apps that receive messages including Multibit, Android Bitcoin Wallet, Mycelium and Hive.

The fix limits accepted length to max message size (32 MB).

Signed-off-by: Mike Hearn <mike@plan99.net>
HD wallet: currentKey is now stable after serialization roundtrip

At the moment currentKeys map of KeyChainGroup is not restored after
deserialization and subsequent call to currentKey produces different
key then expected.
Proposed solution reconstructs currentKey map on deserialization using
stored numbers of issues keys. It is
not future-proof as it assumes only RECEIVE and CHANGE keys are being
used.
Add a method to deserialize a DeterministicKey from a byte-array rather than from the base-58 encoding thereof.
Update AUTHORS file with recent contributors
Add a missing lock on BasicKeyChain.getBloomFilter
Fix failing deserialization of wallet with an empty HD chain

Error occurred when deserializing wallet if either internal or external
zero account key chain of this wallet has no keys issued
Fix failing WalletProtobufSerializerTest
Make Transaction comparators compatible with equals
Add Alexykot's test net DNS seed. Tested using Bitcoin Wallet, works fine.
Fix redundant expression in MnemonicCode.
HD Wallets: implement auto upgrade behaviour and refresh the design doc.
Fix a bug because the SendRequest.fee field is written to 0 when SendRequest.emptyWallet is used. Missing tests for this case are added.

Use SendRequest.tx.getFee() to get the fee, rather than reading SendRequest.fee.
Add SendRequest.signInputs flag to allow skipping the signing. It takes a long time and is not needed for when you only want to determine the fee.