See my comment below.
Regards
Philippe

On Thu, Dec 1, 2011 at 1:07 AM, sebb <[email protected]> wrote:

> On 30 November 2011 22:24,  <[email protected]> wrote:
> > Author: pmouawad
> > Date: Wed Nov 30 22:24:29 2011
> > New Revision: 1208845
> >
> > URL: http://svn.apache.org/viewvc?rev=1208845&view=rev
> > Log:
> > Fixed Double Checked Locking Issue
>
> Not sure that the multi-threading fixes were needed, but if they are,
> it might be better to use the Initialisation on Demand idiom.
>
> It would be OK if init method did not throw, but as populateCommandMap()
can throw this would introduce a NoClassDefFoundError
so I think it's better like this:

   - http://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom (When
   not to use it)



> Modified:
> >    jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java
> >    jmeter/trunk/src/reports/org/apache/jmeter/gui/ReportGuiPackage.java
> >
>  
> jmeter/trunk/src/reports/org/apache/jmeter/report/gui/action/ReportActionRouter.java
> >
> > Modified:
> jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java?rev=1208845&r1=1208844&r2=1208845&view=diff
> >
> ==============================================================================
> > --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java
> (original)
> > +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java
> Wed Nov 30 22:24:29 2011
> > @@ -43,7 +43,7 @@ public final class ActionRouter implemen
> >
> >        private static final Object LOCK = new Object();
> >
> > -    private static ActionRouter router;
> > +    private static volatile ActionRouter router;
> >
> >     private Map<String, Set<Command>> commands = new HashMap<String,
> Set<Command>>();
> >
> >
> > Modified:
> jmeter/trunk/src/reports/org/apache/jmeter/gui/ReportGuiPackage.java
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/reports/org/apache/jmeter/gui/ReportGuiPackage.java?rev=1208845&r1=1208844&r2=1208845&view=diff
> >
> ==============================================================================
> > --- jmeter/trunk/src/reports/org/apache/jmeter/gui/ReportGuiPackage.java
> (original)
> > +++ jmeter/trunk/src/reports/org/apache/jmeter/gui/ReportGuiPackage.java
> Wed Nov 30 22:24:29 2011
> > @@ -57,7 +57,7 @@ public final class ReportGuiPackage impl
> >        private static final Object LOCK = new Object();
> >
> >     /** Singleton instance. */
> > -    private static ReportGuiPackage guiPack;
> > +    private static volatile ReportGuiPackage guiPack;
> >
> >     /**
> >      * Flag indicating whether or not parts of the tree have changed
> since they
> >
> > Modified:
> jmeter/trunk/src/reports/org/apache/jmeter/report/gui/action/ReportActionRouter.java
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/reports/org/apache/jmeter/report/gui/action/ReportActionRouter.java?rev=1208845&r1=1208844&r2=1208845&view=diff
> >
> ==============================================================================
> > ---
> jmeter/trunk/src/reports/org/apache/jmeter/report/gui/action/ReportActionRouter.java
> (original)
> > +++
> jmeter/trunk/src/reports/org/apache/jmeter/report/gui/action/ReportActionRouter.java
> Wed Nov 30 22:24:29 2011
> > @@ -42,7 +42,7 @@ import org.apache.log.Logger;
> >  public final class ReportActionRouter implements ActionListener {
> >     private Map<String, Set<Command>> commands = new HashMap<String,
> Set<Command>>();
> >
> > -    private static ReportActionRouter router;
> > +    private static volatile ReportActionRouter router;
> >
> >     private static final Logger log = LoggingManager.getLoggerForClass();
> >
> >
> >
>



-- 
Cordialement.
Philippe Mouawad.

Reply via email to