The second was not removing the light from the list.
See you, Klaus.
---------- Forwarded message ----------
From: klaus <rodrigobam
...@hotmail.com>
Date: Tue, Sep 16, 2008 at 9:00 PM
Subject: [2344] trunk: Bug in BlinkingLight fixed.
To: sneercommits@googlegroups.com
Revision 2344 Author klaus Date 2008-09-16 20:00:21 -0400 (Tue, 16 Sep 2008)
Log Message
Bug in BlinkingLight fixed.
Modified Paths
trunk/bricks/src/sneer/pulp/blinkinglights/Light.java
trunk/bricks/src/sneer/pulp/blinkinglights/impl/BlinkingLightsImpl.java
trunk/bricks/src/sneer/pulp/blinkinglights/impl/LightImpl.java
trunk/bricks/src/sneer/pulp/dyndns/client/impl/DynDnsClientImpl.java
trunk/bricks/src/sneer/pulp/propertystore/impl/PropertyStoreImpl.java
trunk/wheel/src/wheel/io/Logger.java
Diff
Modified: trunk/bricks/src/sneer/pulp/blinkinglights/Light.java (2343 => 2344)
--- trunk/bricks/src/sneer/pulp/blinkinglights/Light.java 2008-09-16
23:03:39 UTC (rev 2343)
+++ trunk/bricks/src/sneer/pulp/blinkinglights/Light.java 2008-09-17
00:00:21 UTC (rev 2344)
@@ -5,8 +5,6 @@
boolean isOn();
- void turnOff();
-
String message();
Throwable error();
Modified: trunk/bricks/src/sneer/pulp/blinkinglights/impl/BlinkingLightsImpl.java
(2343 => 2344)
--- trunk/bricks/src/sneer/pulp/blinkinglights/impl/BlinkingLightsImpl.java 2008-09-16
23:03:39 UTC (rev 2343)
+++ trunk/bricks/src/sneer/pulp/blinkinglights/impl/BlinkingLightsImpl.java 2008-09-17
00:00:21 UTC (rev 2344)
@@ -1,9 +1,9 @@
package sneer.pulp.blinkinglights.impl;
import sneer.kernel.container.Inject;
-import sneer.pulp.blinkinglights.LightType;
import sneer.pulp.blinkinglights.BlinkingLights;
import sneer.pulp.blinkinglights.Light;
+import sneer.pulp.blinkinglights.LightType;
import sneer.pulp.clock.Clock;
import wheel.reactive.lists.ListSignal;
import wheel.reactive.lists.impl.ListRegisterImpl;
@@ -11,22 +11,18 @@
class BlinkingLightsImpl implements BlinkingLights {
@Inject
- static private Clock _clock;
-
+ static private Clock _clock;
+
private final ListRegisterImpl<Light> _lights = new ListRegisterImpl<Light>();
-
- @Override
- public void turnOff(Light light) {
- if(light == null) return;
-
- light.turnOff();
- _lights.remove(light);
- }
@Override
public Light turnOn(LightType type, String message, Throwable t, int
timeout) {
- Light result = new LightImpl(type, message, t, timeout, _clock, this);
+ Light result = new LightImpl(type, message, t);
_lights.add(result);
+
+ if (timeout != LightImpl.NEVER)
+ turnOffIn(result, timeout);
+
return result;
}
@@ -45,4 +41,18 @@
return _lights.output();
}
-}
\ No newline at end of file
+ @Override
+ public void turnOff(Light light) {
+ if(light == null) return;
+
+ if (!_lights.remove(light)) return;
+ ((LightImpl)light).turnOff();
+ }
+
+ private void turnOffIn(final Light light, int millisFromNow) {
+ _clock.addAlarm(millisFromNow, new Runnable() { @Override public void run() {
+ turnOff(light);
+ }});
+ }
+
+}
Modified: trunk/bricks/src/sneer/pulp/blinkinglights/impl/LightImpl.java
(2343 => 2344)
--- trunk/bricks/src/sneer/pulp/blinkinglights/impl/LightImpl.java 2008-09-16
23:03:39 UTC (rev 2343)
+++ trunk/bricks/src/sneer/pulp/blinkinglights/impl/LightImpl.java 2008-09-17
00:00:21 UTC (rev 2344)
@@ -1,9 +1,7 @@
package sneer.pulp.blinkinglights.impl;
-import sneer.pulp.blinkinglights.LightType;
-import sneer.pulp.blinkinglights.BlinkingLights;
import sneer.pulp.blinkinglights.Light;
-import sneer.pulp.clock.Clock;
+import sneer.pulp.blinkinglights.LightType;
class LightImpl implements Light {
@@ -15,29 +13,14 @@
private final Throwable _error;
- private final int _timeout;
-
private final LightType _type;
- public LightImpl(LightType type, String message, Throwable error,
int timeout, Clock clock, BlinkingLights blinkingLights) {
- _type = type!=null?type:LightType.INFO;
+ public LightImpl(LightType type, String message, Throwable error) {
+ _type = type;
_message = message;
_error = error;
-
- if(timeout == NEVER){
- _timeout = NEVER;
- return;
- }
- _timeout = timeout;
- addAlarm(clock, blinkingLights);
}
- private void addAlarm(Clock clock, final BlinkingLights blinkingLights) {
- clock.addAlarm(_timeout, new Runnable() { @Override public void run() {
- blinkingLights.turnOff(LightImpl.this);
- }});
- }
-
@Override
public Throwable error() {
return _error;
@@ -54,12 +37,12 @@
}
@Override
- public void turnOff() {
- _isOn = false;
- }
-
- @Override
public LightType type() {
return _type;
}
+
+ void turnOff() {
+ _isOn = false;
+ }
+
}
\ No newline at end of file
Modified: trunk/bricks/src/sneer/pulp/dyndns/client/impl/DynDnsClientImpl.java
(2343 => 2344)
--- trunk/bricks/src/sneer/pulp/dyndns/client/impl/DynDnsClientImpl.java 2008-09-16
23:03:39 UTC (rev 2343)
+++ trunk/bricks/src/sneer/pulp/dyndns/client/impl/DynDnsClientImpl.java 2008-09-17
00:00:21 UTC (rev 2344)
@@ -108,7 +108,7 @@
}
protected State retry() {
- _light.turnOff();
+ _blinkingLights.turnOff(_light);
return submitUpdateRequest(currentAccount(), currentIp());
}
}
Modified: trunk/bricks/src/sneer/pulp/propertystore/impl/PropertyStoreImpl.java
(2343 => 2344)
--- trunk/bricks/src/sneer/pulp/propertystore/impl/PropertyStoreImpl.java 2008-09-16
23:03:39 UTC (rev 2343)
+++ trunk/bricks/src/sneer/pulp/propertystore/impl/PropertyStoreImpl.java 2008-09-17
00:00:21 UTC (rev 2344)
@@ -10,12 +10,14 @@
import sneer.kernel.container.Inject;
import sneer.pulp.config.persistence.PersistenceConfig;
import sneer.pulp.propertystore.PropertyStore;
+import wheel.io.Logger;
import wheel.io.Streams;
class PropertyStoreImpl implements PropertyStore {
@Inject
static private PersistenceConfig _config;
+
private final Properties _properties = loadProperties();
@@ -36,6 +38,7 @@
result.load(in());
} catch (FileNotFoundException e) {
//OK. No properties were saved yet.
+ Logger.log("No properties found yet.");
} catch (IOException e) {
throw new wheel.lang.exceptions.NotImplementedYet(e); // Fix
Handle this exception.
}
@@ -56,6 +59,7 @@
}
private FileInputStream in() throws FileNotFoundException {
+ Logger.log("Reading Sneer properties file from: {}", propertiesFile());
return new FileInputStream(propertiesFile());
}
Modified: trunk/wheel/src/wheel/io/Logger.java (2343 => 2344)
--- trunk/wheel/src/wheel/io/Logger.java 2008-09-16 23:03:39 UTC (rev 2343)
+++ trunk/wheel/src/wheel/io/Logger.java 2008-09-17 00:00:21 UTC (rev 2344)
@@ -41,7 +41,9 @@
}
public static void redirectTo(OutputStream outputStream) {
+ log("Redirecting log");
_log = new PrintWriter(outputStream);
+ log("Log redirected to here.");
}