GithubHelp home page GithubHelp logo

Comments (2)

AFaust avatar AFaust commented on June 27, 2024

As part of #38 the case of the permissionEntitySharedCache came up. This cache uses PermissionEntity not just as the value but also as the value key. The class' equals/hashCode are only partially implemented - just to allow the class to be used as the value key. This now conflicts with how Ignite performs lookups for serialised keys. Since it cannot use the hashCode/equals implementation, it checks the serial state, and since full values are used as keys, cannot perform a lookup that only uses a partial entity, as this would not "equal" the actual key.
Luckily, the permissionEntitySharedCache is already pre-defined as a NullCache in Alfresco Spring XML. But this case has reinforced the need for an explictly configurable cache type as a means so that we (as the aldica module) can protect us against invalid / illegal use cases by Alfresco that we cannot otherwise fix / patch (without extreme effort).

As part of #38, I am effectively implementing variant 3 from the original list, without turning pre-existing NullCache instances into actual instantiation calls. Variant 1 I consider to be moot specifically for the warning note I originally added - we cannot simply disable all caches from our end, especially as we do not know what kind of caches might be added by 3rd party addons. Variant 2 has no place in our module and should be added as a cross-cutting feature in Alfresco core instead.
Turning pre-defined NullCache into actual instantiation calls would require that we also (dynamically?) check and potentially generate default configuration to ensure these caches are still instantiated as NullCache if no explicit config exists, or we would run risk of causing issues with caches added by 3rd party addons. For the sake of simplicity, this aspect of variant 3 has been dropped for the implementation in context of #38.

from aldica.

andreaskring avatar andreaskring commented on June 27, 2024

Thanks for the update 👍

from aldica.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.