- Revision
- 728
- Author
- rfscholte
- Date
- 2010-05-01 15:20:08 -0500 (Sat, 01 May 2010)
Log Message
Fix for QDOX-209: Annotation Value polluted
Modified Paths
Diff
Modified: trunk/qdox/src/grammar/lexer.flex (727 => 728)
--- trunk/qdox/src/grammar/lexer.flex 2010-04-19 13:05:47 UTC (rev 727) +++ trunk/qdox/src/grammar/lexer.flex 2010-05-01 20:20:08 UTC (rev 728) @@ -162,6 +162,7 @@ {Annotation} "(" { parenMode = ANNOTATION; yypushback(text().length()-1); + getCodeBody(); /* reset codebody */ return Parser.AT; } "@" {
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java (727 => 728)
--- trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java 2010-04-19 13:05:47 UTC (rev 727) +++ trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java 2010-05-01 20:20:08 UTC (rev 728) @@ -9,6 +9,7 @@ import java.io.*; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.HashSet; @@ -1253,5 +1254,30 @@ assertEquals("com.blah.Thing", thing.getFullyQualifiedName()); assertNotNull(thing.getSource()); } + + // for QDOX-209 + public void testAnnotationMap() throws Exception{ + JavaDocBuilder javaDocBuilder = new JavaDocBuilder(); + String source = "import javax.persistence.JoinColumn;\n" + + "public class Instruction {\n" + + " private static final int something = 40;\n" + + " //-----------------------------------------------------------------------\r\n" + + " @JoinColumn(name=\"test\",bla=\"hi\")\n" + + " int testfield;\r\n" + + "}"; + javaDocBuilder.addSource(new StringReader( source )); + JavaClass classByName = javaDocBuilder.getClassByName("Instruction"); + JavaField fieldByName = classByName.getFieldByName("testfield"); + Annotation[] annotations = fieldByName.getAnnotations(); + + // Now we do have the annotation "JoinColumn" in annotations[0] + Map propertyMap = annotations[0].getNamedParameterMap(); + // This one works + assertEquals("\"hi\"", propertyMap.get("bla")); + String string = (String) propertyMap.get("name"); + // This one does not work + assertEquals("\"test\"", string); + } + }
To unsubscribe from this list please visit:
