aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2016-03-31 08:03:28 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2016-03-31 08:03:28 +0200
commitab67fbdf5d661a33b67436c70db0dcb8b840cf57 (patch)
tree80455971fe6cdccee80287a529cc1580481526e2 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage
parent38a8abe06596847cda4e4fd9d5b4f5585c67fc52 (diff)
downloadmoa-id-spss-ab67fbdf5d661a33b67436c70db0dcb8b840cf57.tar.gz
moa-id-spss-ab67fbdf5d661a33b67436c70db0dcb8b840cf57.tar.bz2
moa-id-spss-ab67fbdf5d661a33b67436c70db0dcb8b840cf57.zip
if database cleanUP process found some unhandled exception, write error messages to technical log
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java37
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java15
2 files changed, 34 insertions, 18 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java
index ff631a720..6778dc32e 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java
@@ -23,6 +23,7 @@
package at.gv.egovernment.moa.id.storage;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -99,6 +100,17 @@ public class DBTransactionStorage implements ITransactionStorage {
}
}
+ public Object get(String key) throws MOADatabaseException {
+ AssertionStore element = searchInDatabase(key);
+
+ if (element == null)
+ return null;
+
+ return SerializationUtils.deserialize(element.getAssertion());
+
+
+ }
+
public <T> T get(String key, final Class<T> clazz, long dataTimeOut) throws MOADatabaseException, AuthenticationException {
AssertionStore element = searchInDatabase(key);
@@ -134,10 +146,11 @@ public class DBTransactionStorage implements ITransactionStorage {
}
}
- public void clean(Date now, long dataTimeOut) {
+ public List<String> clean(Date now, long dataTimeOut) {
Date expioredate = new Date(now.getTime() - dataTimeOut);
List<AssertionStore> results;
+ List<String> returnValues = new ArrayList<String>();;
Session session = MOASessionDBUtils.getCurrentSession();
synchronized (session) {
@@ -146,22 +159,14 @@ public class DBTransactionStorage implements ITransactionStorage {
query.setTimestamp("timeout", expioredate);
results = query.list();
session.getTransaction().commit();
-
- if (results.size() != 0) {
- for(AssertionStore result : results) {
- try {
- cleanDelete(result);
- Logger.info("Remove stored information with ID: " + result.getArtifact()
- + " after timeout.");
-
- } catch (HibernateException e){
- Logger.warn("Sessioninformation with ID=" + result.getArtifact()
- + " not removed after timeout! (Error during Database communication)", e);
- }
-
- }
- }
}
+
+ if (results != null) {
+ for (AssertionStore el : results)
+ returnValues.add(el.getArtifact());
+
+ }
+ return returnValues;
}
public void remove(String key) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java
index 48283d2b6..fe959c39d 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java
@@ -23,6 +23,7 @@
package at.gv.egovernment.moa.id.storage;
import java.util.Date;
+import java.util.List;
import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
@@ -53,6 +54,15 @@ public interface ITransactionStorage {
/**
* Get a data object from transaction storage
*
+ * @param key key Id which identifiers the data object
+ * @return The transaction-data object, or null
+ * @throws MOADatabaseException In case of load operation failed
+ */
+ public Object get(String key) throws MOADatabaseException;
+
+ /**
+ * Get a data object from transaction storage
+ *
* @param key Id which identifiers the data object
* @param clazz The class type which is stored with this key
* @return The transaction-data object from type class, or null
@@ -91,11 +101,12 @@ public interface ITransactionStorage {
public void remove(String key);
/**
- * Clean-up the transaction storage
+ * Get all entries for Clean-up the transaction storage
*
* @param now Current time
* @param dataTimeOut Data-object timeout in [ms]
+ * @return List of entry-keys which as a timeout
*/
- public void clean(Date now, long dataTimeOut);
+ public List<String> clean(Date now, long dataTimeOut);
}