Author: julien(a)jboss.com
Date: 2007-04-30 18:30:17 -0400 (Mon, 30 Apr 2007)
New Revision: 7157
Modified:
trunk/core-samples/src/main/org/jboss/portal/core/portlet/test/event/UserCounterListener.java
Log:
counter++ is not thread safe
Modified:
trunk/core-samples/src/main/org/jboss/portal/core/portlet/test/event/UserCounterListener.java
===================================================================
---
trunk/core-samples/src/main/org/jboss/portal/core/portlet/test/event/UserCounterListener.java 2007-04-30
20:26:12 UTC (rev 7156)
+++
trunk/core-samples/src/main/org/jboss/portal/core/portlet/test/event/UserCounterListener.java 2007-04-30
22:30:17 UTC (rev 7157)
@@ -26,6 +26,7 @@
import org.jboss.portal.api.event.PortalEventContext;
import org.jboss.portal.api.event.PortalEventListener;
import org.jboss.portal.api.user.event.UserAuthenticationEvent;
+import EDU.oswego.cs.dl.util.concurrent.SynchronizedLong;
/**
* @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
@@ -34,8 +35,11 @@
public class UserCounterListener implements PortalEventListener
{
- private int counter = 0;
- private int counterEver = 0;
+ /** . */
+ private final SynchronizedLong counter = new SynchronizedLong(0);
+
+ /** . */
+ private final SynchronizedLong counterEver = new SynchronizedLong(0);
public void onEvent(PortalEventContext eventContext, PortalEvent event)
{
@@ -44,15 +48,15 @@
UserAuthenticationEvent userEvent = (UserAuthenticationEvent)event;
if (userEvent.getType() == UserAuthenticationEvent.SIGN_IN)
{
- counter++;
- counterEver++;
+ counter.increment();
+ counterEver.increment();
}
else if (userEvent.getType() == UserAuthenticationEvent.SIGN_OUT)
{
- counter--;
+ counter.decrement();
}
- System.out.println("Counter : " + counter);
- System.out.println("Counter ever: " + counterEver);
+ System.out.println("Counter : " + counter.get());
+ System.out.println("Counter ever: " + counterEver.get());
}
}
}
Show replies by date