Skip to content
Snippets Groups Projects
Commit 2fa3ac9b authored by Piotr Gawron's avatar Piotr Gawron
Browse files

fail safe close db connection added

parent fc92b70f
No related branches found
No related tags found
2 merge requests!166Devel 11.0.x,!162Resolve "ebi pubmed service moved to https"
...@@ -80,14 +80,16 @@ public class PermanentDatabaseLevelCache extends XmlParser implements PermanentD ...@@ -80,14 +80,16 @@ public class PermanentDatabaseLevelCache extends XmlParser implements PermanentD
@Override @Override
public CacheQuery call() throws Exception { public CacheQuery call() throws Exception {
logger.debug("Query task call"); logger.debug("Query task call");
dbUtils.createSessionForCurrentThread(); try {
logger.debug("Query task session started"); dbUtils.createSessionForCurrentThread();
CacheQuery entry = getCacheQueryDao().getByQuery((String) query, type); logger.debug("Query task session started");
logger.debug("Query task data retrieved"); CacheQuery entry = getCacheQueryDao().getByQuery((String) query, type);
dbUtils.closeSessionForCurrentThread(); logger.debug("Query task data retrieved");
logger.debug("Query task return"); return entry;
return entry; } finally {
dbUtils.closeSessionForCurrentThread();
}
} }
} }
...@@ -227,26 +229,29 @@ public class PermanentDatabaseLevelCache extends XmlParser implements PermanentD ...@@ -227,26 +229,29 @@ public class PermanentDatabaseLevelCache extends XmlParser implements PermanentD
@Override @Override
public CacheQuery call() throws Exception { public CacheQuery call() throws Exception {
logger.debug("Add task call"); logger.debug("Add task call");
dbUtils.createSessionForCurrentThread(); try {
CacheQuery entry = getCacheQueryDao().getByQuery((String) query, type); dbUtils.createSessionForCurrentThread();
CacheQuery entry = getCacheQueryDao().getByQuery((String) query, type);
if (entry == null) {
entry = new CacheQuery(); if (entry == null) {
entry.setQuery((String) query); entry = new CacheQuery();
entry.setAccessed(Calendar.getInstance()); entry.setQuery((String) query);
} else { entry.setAccessed(Calendar.getInstance());
entry.setAccessed(Calendar.getInstance()); } else {
} entry.setAccessed(Calendar.getInstance());
entry.setValue(value); }
entry.setType(type); entry.setValue(value);
Calendar expires = Calendar.getInstance(); entry.setType(type);
expires.add(Calendar.DAY_OF_MONTH, type.getValidity()); Calendar expires = Calendar.getInstance();
entry.setExpires(expires); expires.add(Calendar.DAY_OF_MONTH, type.getValidity());
entry.setExpires(expires);
getCacheQueryDao().add(entry);
dbUtils.closeSessionForCurrentThread(); getCacheQueryDao().add(entry);
return entry; return entry;
} finally {
dbUtils.closeSessionForCurrentThread();
}
} }
} }
...@@ -290,13 +295,16 @@ public class PermanentDatabaseLevelCache extends XmlParser implements PermanentD ...@@ -290,13 +295,16 @@ public class PermanentDatabaseLevelCache extends XmlParser implements PermanentD
@Override @Override
public CacheQuery call() throws Exception { public CacheQuery call() throws Exception {
logger.debug("Remove task call"); logger.debug("Remove task call");
dbUtils.createSessionForCurrentThread(); try {
CacheQuery entry = getCacheQueryDao().getByQuery((String) query, type); dbUtils.createSessionForCurrentThread();
if (entry != null) { CacheQuery entry = getCacheQueryDao().getByQuery((String) query, type);
getCacheQueryDao().delete(entry); if (entry != null) {
} getCacheQueryDao().delete(entry);
dbUtils.closeSessionForCurrentThread(); }
return entry; return entry;
} finally {
dbUtils.closeSessionForCurrentThread();
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment