@Override public ArrayList<ApplicationTemplate> getApplicationTemplates(Application app) { ArrayList<ApplicationTemplate> result = new ArrayList<ApplicationTemplate>(); final StoreDB.Api api = store.getApi(); try { final ArrayList<ApplicationTemplate> fromCache = cacheApp.getApplicationTemplates(app.getId()); if (fromCache != null) { return fromCache; } return cacheApp.putApplicationTemplates( app.getId(), toClientApplicationTemplates(api.getAppTemplatesByApp(app.getId()))); } catch (SQLException ex) { log.log(Level.SEVERE, ex.getLocalizedMessage(), ex); } finally { api.close(); } return result; }