I actually think this is wrong

    HttpMethod.PUT, new HttpEntity<PasswordChangeRequest>(change, headers), null, joe.getId());

should be 

    HttpMethod.PUT, new HttpEntity<PasswordChangeRequest>(change, headers), (Void)null, joe.getId());

we should not pass in an object when we want NULL, the compiler complaint is that it doesn't understand what the null type is.