Description of problem: You can create a new, legacy free application by calling new ApplicationType(String, String) However if you try to retrieve the new ApplicationType at another time, you can never get m_legacyFree == true. This causes problems when you try and create an Application of the new ApplicationType where m_legacyFree == false and getPackageType() == null. You will encounter null pointer exceptions. I added the following lines to ApplicationType(DataObject) and ApplicationType(String) if(getPackageType() == null) m_legacyFree = true;