[Schmitzm-commits] r1845 - trunk/schmitzm-core/src/main/java/de/schmitzm/lang
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Mon Jan 30 04:09:20 CET 2012
Author: alfonx
Date: 2012-01-30 04:09:18 +0100 (Mon, 30 Jan 2012)
New Revision: 1845
Modified:
trunk/schmitzm-core/src/main/java/de/schmitzm/lang/TimedHashMap.java
Log:
uncauhtException on Thread Immobrain Timer, roleback<br />java.lang.NullPointerException
at de.schmitzm.lang.TimedHashMap.put(TimedHashMap.java:72)
at java.util.Collections$SynchronizedMap.put(Collections.java:1979)
at de.wikisquare.immobrain.QuellenRegistry.getCrawlStat(QuellenRegistry.java:223)
at de.wikisquare.immobrain.QuellenRegistry.getAlleQuellenCrawlStat(QuellenRegistry.java:210)
at de.wikisquare.immobrain.crawler.CrawlSpeedStatTimer.run(CrawlSpeedStatTimer.java:35)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/lang/TimedHashMap.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/lang/TimedHashMap.java 2012-01-29 21:59:46 UTC (rev 1844)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/lang/TimedHashMap.java 2012-01-30 03:09:18 UTC (rev 1845)
@@ -8,8 +8,7 @@
import javax.swing.Timer;
/**
- * Erweiterung der {@link LimitedHashMap}. Erlaubt es in Millisekunden
- * anzugeben, wie lange ein Eintrag gültig ist.
+ * Erweiterung der {@link LimitedHashMap}. Erlaubt es in Millisekunden anzugeben, wie lange ein Eintrag gültig ist.
*/
public class TimedHashMap<K, V> extends HashMap<K, V> {
@@ -20,8 +19,7 @@
Timer cleanTask;
/**
- * Erweiterung der {@link LimitedHashMap}. Erlaubt es in Millisekunden
- * anzugeben, wie lange ein Eintrag gültig ist.
+ * Erweiterung der {@link LimitedHashMap}. Erlaubt es in Millisekunden anzugeben, wie lange ein Eintrag gültig ist.
*
* @param timeout
* Anz. ms die Einträge gültig sind.
@@ -50,27 +48,29 @@
if (timeout > 0) {
- // Timeour ms Nach dem letzten put die komplette hashmap leeren.
- if (cleanTask != null) {
- cleanTask.stop();
- }
+ synchronized (cleanTask) {
+ // Timeour ms Nach dem letzten put die komplette hashmap leeren.
+ if (cleanTask != null) {
+ cleanTask.stop();
+ }
- cleanTask = new Timer(timeout + 1, new ActionListener() {
+ cleanTask = new Timer(timeout + 1, new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- clear();
- inputTimes.clear();
- if (cleanTask != null) {
- cleanTask.stop();
- cleanTask = null;
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ clear();
+ inputTimes.clear();
+ if (cleanTask != null) {
+ cleanTask.stop();
+ cleanTask = null;
+ }
}
- }
- });
- cleanTask.setInitialDelay(timeout);
- cleanTask.setRepeats(false);
- cleanTask.start();
+ });
+ cleanTask.setInitialDelay(timeout);
+ cleanTask.setRepeats(false);
+ cleanTask.start();
+ }
inputTimes.put(key, Long.valueOf(System.currentTimeMillis()));
return super.put(key, value);
@@ -111,7 +111,7 @@
public int getTimeout() {
return timeout;
}
-
+
@Override
public boolean containsKey(Object key) {
return get(key) != null;
More information about the Schmitzm-commits
mailing list