Defensive Programming in Java: Data Handling, Injection Attacks, and Concurrency