package org.jboss.example.homeloan.prequal; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.jboss.example.homeloan.data.LoanApplication; import org.jboss.example.homeloan.data.Qualification; public class LoanStatus { // Recipe for memory leak: // 1 - create static map with strong references // 2 - never clean up private static Map<String, LoanApplication> applications = new ConcurrentHashMap<String, LoanApplication>(); private static Map<String, Qualification> qualifications = new ConcurrentHashMap<String, Qualification>(); public static void addApplication(String ssn, LoanApplication application) { applications.put(ssn, application); } public static void updateStatus(String ssn, Qualification qualification) { qualifications.put(ssn, qualification); } public static Qualification getStatus(String ssn) { return qualifications.get(ssn); } }