[
https://issues.apache.org/jira/browse/IGNITE-28944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18102470#comment-18102470
]
Ilya Shishkov commented on IGNITE-28944:
----------------------------------------
Failures are irrelivant to a patch.
> Refactor SecurityBasicPermissionSet
> -----------------------------------
>
> Key: IGNITE-28944
> URL: https://issues.apache.org/jira/browse/IGNITE-28944
> Project: Ignite
> Issue Type: Task
> Reporter: Ilya Shishkov
> Assignee: Ilya Shishkov
> Priority: Minor
> Labels: IEP-132, ise
> Fix For: 2.19
>
> Attachments: SecurityBasicPermissionSetSerializationTest.java
>
> Time Spent: 2h 50m
> Remaining Estimate: 0h
>
> 1) Currently {{#equals}} and {{#hashCode}} will be broken if you use
> different collection types:
> {code:java}
> set.setCachePermissions(Map.of("cache", List.of(CACHE_PUT));
> {code}
> will have different hashCode with such permission set:
> {code:java}
> set.setCachePermissions(Map.of("cache", Set.of(CACHE_PUT));
> {code}
> 2) By default in message framework deserialization process of field of type
> {{Collection}} is backed by {{ArrayList}}. If we want to use {{Set}}, we
> should change type parameter in {{SecurityBasicPermissionSet}} as shown below:
> {code:java}
> Map<String, Set<SecurityPermission>> taskPermissions;
> {code}
> ----
> Both 1) and 2) leads to situation, when local and remote (read from
> `MessageReader`) `SecurityBasicPermissionSet` sets can be unequal and even
> duplicated in collections.
> Easily reproduced in slightly modified
> [^SecurityBasicPermissionSetSerializationTest.java]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)