You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Tellier Benoit (JIRA)" <se...@james.apache.org> on 2018/07/05 02:40:00 UTC

[jira] [Resolved] (JAMES-2376) HBASE RRT getAllMappings is buggy

     [ https://issues.apache.org/jira/browse/JAMES-2376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tellier Benoit resolved JAMES-2376.
-----------------------------------
    Resolution: Fixed

> HBASE RRT getAllMappings is buggy
> ---------------------------------
>
>                 Key: JAMES-2376
>                 URL: https://issues.apache.org/jira/browse/JAMES-2376
>             Project: James Server
>          Issue Type: Bug
>          Components: hbase, RRT
>    Affects Versions: master
>            Reporter: Tellier Benoit
>            Priority: Major
>              Labels: bug, contributers-welcome, easy-fix, hbase
>
> HBase does some weird RRT overrights:
> Test:
> {code:java}
>     @Test
>     public void getAllMappingsShouldListAllEntries() throws ErrorMappingException, RecipientRewriteTableException {
>         String user = "test";
>         String user2 = "test2";
>         Domain domain = Domain.LOCALHOST;
>         // String regex = "(.*):{$1}@localhost";
>         // String regex2 = "(.+):{$1}@test";
>         String regex = "(.*)@localhost";
>         String regex2 = "(.+)@test";
>         assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
>         addMapping(user, domain, regex, Type.Regex);
>         addMapping(user, domain, regex2, Type.Regex);
>         addMapping(user2, domain, user + "@" + domain.asString(), Type.Address);
>         assertThat(virtualUserTable.getAllMappings())
>             .describedAs("One mappingline")
>             .containsOnly(
>                 Pair.of(user + "@" + domain.asString(), MappingsImpl.builder()
>                     .add(MappingImpl.regex(regex))
>                     .add(MappingImpl.regex(regex2))
>                     .build()),
>                 Pair.of(user2 + "@" + domain.asString(), MappingsImpl.builder()
>                     .add(MappingImpl.address(user + "@" + domain.asString()))
>                     .build()));
>     }
> {code}
> Result:
> {code:java}
> java.lang.AssertionError: [One mappingline] 
> Expecting:
>   <{"test2@localhost"=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test2@localhost}]}, "test@localhost"=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]}}>
> to contain only:
>   <[(test@localhost,MappingsImpl{mappings=[MappingImpl{type=Regex mapping=(.*)@localhost}, MappingImpl{type=Regex mapping=(.+)@test}]}),
>     (test2@localhost,MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]})]>
> elements not found:
>   <[MapEntry[key="test@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Regex mapping=(.*)@localhost}, MappingImpl{type=Regex mapping=(.+)@test}]}],
>     MapEntry[key="test2@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]}]]>
> and elements not expected:
>   <[MapEntry[key="test2@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test2@localhost}]}],
>     MapEntry[key="test@localhost", value=MappingsImpl{mappings=[MappingImpl{type=Address mapping=test@localhost}]}]]>
> {code}
> This behaviour was not tested.
> I will disable the test.
> Contribution welcomes to fix this.
> (See HBaseRecipientRewriteTableTest)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org