Re: svn commit: r1183065 - in /jakarta/jmeter/trunk: src/core/org/apache/jmeter/engine/ src/core/org/apache/jmeter/gui/action/ src/core/org/apache/jmeter/gui/util/ src/core/org/apache/jmeter/resources/ xdocs/
sebb <[email protected]> Thu, 13 Oct 2011 21:26:33 +0100
| Newsgroups | gmane.comp.jakarta.cactus.devel |
|---|---|
| Message-ID | <CAOGo0VbxYBJEHagLoacBF2x3jGDxZc2dZUYp0cmuW+CTkv7H3Q@mail.gmail.com> |
On 13 October 2011 21:12, <[email protected]> wrote: > Author: pmouawad > Date: Thu Oct 13 20:12:23 2011 > New Revision: 1183065 > > URL: http://svn.apache.org/viewvc?rev=3D1183065&view=3Drev > Log: > Bug 52019 - Add menu option to Start a test ignoring Pause Timers > > Added: > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerN= oTimer.java =A0 (with props) > Modified: > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.= java > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionN= ames.java > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Start.j= ava > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMen= uBar.java > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages= .properties > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages= _es.properties > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages= _fr.properties > =A0 =A0jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages= _pt_BR.properties > =A0 =A0jakarta/jmeter/trunk/xdocs/changes.xml > > Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClon= er.java > URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apach= e/jmeter/engine/TreeCloner.java?rev=3D1183065&r1=3D1183064&r2=3D1183065&vie= w=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.jav= a (original) > +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.jav= a Thu Oct 13 20:12:23 2011 > @@ -56,7 +56,6 @@ public class TreeCloner implements HashT > =A0 =A0 } > > =A0 =A0 public void addNode(Object node, HashTree subTree) { > - > =A0 =A0 =A0 =A0 if ( (node instanceof TestElement) // Check can cast for = clone > =A0 =A0 =A0 =A0 =A0 =A0// Don't clone NoThreadClone unless honourNoThread= Clone =3D=3D false > =A0 =A0 =A0 =A0 =A0 && (!honourNoThreadClone || !(node instanceof NoThrea= dClone)) > @@ -66,6 +65,14 @@ public class TreeCloner implements HashT > =A0 =A0 =A0 =A0 } else { > =A0 =A0 =A0 =A0 =A0 =A0 newTree.add(objects, node); > =A0 =A0 =A0 =A0 } > + =A0 =A0 =A0 =A0addLast(node); > + =A0 =A0} > + > + =A0 =A0/** > + =A0 =A0 * add node to objects LinkedList > + =A0 =A0 * @param node Object > + =A0 =A0 */ > + =A0 =A0protected final void addLast(Object node) { > =A0 =A0 =A0 =A0 objects.addLast(node); > =A0 =A0 } OK, so subclasses can override this to skip adding a node. > > Added: jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerN= oTimer.java > URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apach= e/jmeter/engine/TreeClonerNoTimer.java?rev=3D1183065&view=3Dauto > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTi= mer.java (added) > +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTi= mer.java Thu Oct 13 20:12:23 2011 > @@ -0,0 +1,59 @@ > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. =A0See the NOTICE file distributed wi= th > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2= .0 > + * (the "License"); you may not use this file except in compliance with > + * the License. =A0You may obtain a copy of the License at > + * > + * =A0 http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or impli= ed. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + * > + */ > + > +package org.apache.jmeter.engine; > + > +import org.apache.jmeter.timers.Timer; > +import org.apache.jorphan.collections.HashTree; > +import org.apache.jorphan.logging.LoggingManager; > +import org.apache.log.Logger; > + > +/** > + * Clones the test tree, =A0skipping test elements that implement {@link= Timer} by default. > + */ > +public class TreeClonerNoTimer extends TreeCloner{ > + =A0 =A0private Logger logger =3D LoggingManager.getLoggerForClass(); > + > + =A0 =A0/** > + =A0 =A0 * {@inheritDoc} > + =A0 =A0 */ > + =A0 =A0public TreeClonerNoTimer() { > + =A0 =A0 =A0 =A0super(); > + =A0 =A0} > + > + =A0 =A0/** > + =A0 =A0 * {@inheritDoc} > + =A0 =A0 */ > + =A0 =A0public TreeClonerNoTimer(boolean honourNoThreadClone) { > + =A0 =A0 =A0 =A0super(honourNoThreadClone); > + =A0 =A0} > + > + =A0 =A0/** > + =A0 =A0 * {@inheritDoc} > + =A0 =A0 */ @Override? > + =A0 =A0public void addNode(Object node, HashTree subTree) { > + =A0 =A0 =A0 =A0if(!(node instanceof Timer)) { It's confusing to use negative conditions > + =A0 =A0 =A0 =A0 =A0 =A0super.addNode(node, subTree); > + =A0 =A0 =A0 =A0} else { > + =A0 =A0 =A0 =A0 =A0 =A0if(logger.isDebugEnabled()) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0logger.debug("Ignoring timer node:"+ nod= e); > + =A0 =A0 =A0 =A0 =A0 =A0} > + =A0 =A0 =A0 =A0 =A0 =A0addLast(node); This looks wrong, surely you don't want to add the node? > + =A0 =A0 =A0 =A0} > + =A0 =A0} > +} However, the whole approach looks wrong. Why not just override addLast(), and skip super.addLast() if processing a T= imer?