[vassalengine-svn-trunk] [vassalengine-svn] SF.net SVN: vassalengine:[7718] VASSAL-src/trunk
Brought to you by:
rodneykinney,
uckelman
From: <uck...@us...> - 2011-07-31 17:17:00
|
Revision: 7718 http://vassalengine.svn.sourceforge.net/vassalengine/?rev=7718&view=rev Author: uckelman Date: 2011-07-31 17:16:52 +0000 (Sun, 31 Jul 2011) Log Message: ----------- Merged bobd-bugfixes3.1@7658. Fixed Bug 3463: Infinite recursion if $PieceName$ specified as Text Label Modified Paths: -------------- VASSAL-src/trunk/NOTES VASSAL-src/trunk/src/VASSAL/counters/Labeler.java Added Paths: ----------- VASSAL-src/trunk/test/VASSAL/counters/LabelerTest.java Modified: VASSAL-src/trunk/NOTES =================================================================== --- VASSAL-src/trunk/NOTES 2011-07-31 17:16:22 UTC (rev 7717) +++ VASSAL-src/trunk/NOTES 2011-07-31 17:16:52 UTC (rev 7718) @@ -33,6 +33,7 @@ * 3486: ConfigureTree.isValidParent() should permit subclasses * 3465: Empty DynamicProperty causes IllegalStateException on loading +* 3463: Infinite recursion if $PieceName$ specified as Text Label Please report all bugs in beta8, even if they are bugs which you've already reported against other betas. We take your bug reports very Modified: VASSAL-src/trunk/src/VASSAL/counters/Labeler.java =================================================================== --- VASSAL-src/trunk/src/VASSAL/counters/Labeler.java 2011-07-31 17:16:22 UTC (rev 7717) +++ VASSAL-src/trunk/src/VASSAL/counters/Labeler.java 2011-07-31 17:16:52 UTC (rev 7718) @@ -376,7 +376,9 @@ index = s.indexOf("$" + propertyName + "$"); } label = s; - labelFormat.setFormat(label); + // prevent recursive references from this label + // to piece name (which may contain this label) + labelFormat.setProperty(BasicPiece.PIECE_NAME, piece.getName()); if (getMap() != null && label != null && label.length() > 0) { imagePainter.setSource( Added: VASSAL-src/trunk/test/VASSAL/counters/LabelerTest.java =================================================================== --- VASSAL-src/trunk/test/VASSAL/counters/LabelerTest.java (rev 0) +++ VASSAL-src/trunk/test/VASSAL/counters/LabelerTest.java 2011-07-31 17:16:52 UTC (rev 7718) @@ -0,0 +1,41 @@ +/* + * $Id$ + * + * Copyright (c) 2011 by Bob Davison + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License (LGPL) as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, copies are available + * at http://www.opensource.org. + */ + +package VASSAL.counters; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class LabelerTest { + + @Test + public void testPieceNameInLabelBug3463() { + // Putting piece name in label was causing infinite recursion + // as labeler sets a new name which may be based on the label + final String pieceName = "Test Piece"; + final BasicPiece piece = new BasicPiece(BasicPiece.ID + ";;;" + pieceName + ";"); + final Labeler labeler = new Labeler(Labeler.ID, piece); + + labeler.setLabel("$" + BasicPiece.PIECE_NAME + "$"); + + assertEquals(pieceName, labeler.getLabel()); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________ vassalengine-svn mailing list vas...@li... https://lists.sourceforge.net/lists/listinfo/vassalengine-svn |