[ https://issues.apache.org/jira/browse/WICKET-6247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pedro Santos updated WICKET-6247: --------------------------------- Description: A property expression having a '[' character inside squar brackets like "bean.map[code[foo]" will fail because PropertyResolver replaces all '[' charaters by '.[' example: {code:title=PropertyResolverTest.java|borderStyle=solid} @Test public void shouldAllowMapKeysWithSpecialCharacters() throws Exception { String code = "[!@#$%^&*()_+-=[{}|]"; String expression = "[" + code + "]"; Map<String, Integer> integerMap = new HashMap<String, Integer>(); PropertyResolver.setValue(expression, integerMap, AN_INTEGER, CONVERTER); assertThat(PropertyResolver.getValue(expression, integerMap), is(AN_INTEGER)); assertThat(integerMap.get(code), is(AN_INTEGER)); } {code} Plus a property expression having a ']' followed by a dot will fail because the dot will be taken as a token separator by PropertyResolver#getNextDotIndex {code:title=PropertyResolverTest.java|borderStyle=solid} @Test public void shouldAllowMapKeysWithADotAfterAClosingSquarBraket() throws Exception { String code = "]."; String expression = "[" + code + "]"; Map<String, Integer> integerMap = new HashMap<String, Integer>(); PropertyResolver.setValue(expression, integerMap, AN_INTEGER, CONVERTER); assertThat(PropertyResolver.getValue(expression, integerMap), is(AN_INTEGER)); assertThat(integerMap.get(code), is(AN_INTEGER)); } {code} If we take this lack of support for valid index characters ( a map key can contain ' http://wicket-dev.markmail.org/thread/unwdqpxulw7tcd5l was: An expression property having a '[' character like "bean.map[code[foo]" will fail because PropertyResolver replaces all '[' charaters by '.[' A possible test to show the problem: {code:title=PropertyResolverTest.java|borderStyle=solid} @Test public void shouldAllowMapKeysWithSpecialCharacters() throws Exception { String code = "[!@#$%^&*()_+-=[{}|]"; String expression = "[" + code + "]"; Map<String, Integer> integerMap = new HashMap<String, Integer>(); PropertyResolver.setValue(expression, integerMap, AN_INTEGER, CONVERTER); assertThat(PropertyResolver.getValue(expression, integerMap), is(AN_INTEGER)); assertThat(integerMap.get(code), is(AN_INTEGER)); } {code} > Property expression don't support '[', ']' and '.' characters inside square > brackets > ------------------------------------------------------------------------------------ > > Key: WICKET-6247 > URL: https://issues.apache.org/jira/browse/WICKET-6247 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 8.0.0-M1, 7.4.0, 6.24.0 > Reporter: Pedro Santos > Assignee: Pedro Santos > > A property expression having a '[' character inside squar brackets like > "bean.map[code[foo]" will fail because PropertyResolver replaces all '[' > charaters by '.[' > example: > {code:title=PropertyResolverTest.java|borderStyle=solid} > @Test > public void shouldAllowMapKeysWithSpecialCharacters() throws Exception > { > String code = "[!@#$%^&*()_+-=[{}|]"; > String expression = "[" + code + "]"; > Map<String, Integer> integerMap = new HashMap<String, > Integer>(); > PropertyResolver.setValue(expression, integerMap, AN_INTEGER, > CONVERTER); > assertThat(PropertyResolver.getValue(expression, integerMap), > is(AN_INTEGER)); > assertThat(integerMap.get(code), is(AN_INTEGER)); > } > {code} > Plus a property expression having a ']' followed by a dot will fail because > the dot will be taken as a token separator by PropertyResolver#getNextDotIndex > {code:title=PropertyResolverTest.java|borderStyle=solid} > @Test > public void shouldAllowMapKeysWithADotAfterAClosingSquarBraket() throws > Exception > { > String code = "]."; > String expression = "[" + code + "]"; > Map<String, Integer> integerMap = new HashMap<String, > Integer>(); > PropertyResolver.setValue(expression, integerMap, AN_INTEGER, > CONVERTER); > assertThat(PropertyResolver.getValue(expression, integerMap), > is(AN_INTEGER)); > assertThat(integerMap.get(code), is(AN_INTEGER)); > } > {code} > If we take this lack of support for valid index characters ( a map key can > contain ' > http://wicket-dev.markmail.org/thread/unwdqpxulw7tcd5l -- This message was sent by Atlassian JIRA (v6.3.4#6332)