Comments (2)
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.
Thanks for the update 👍
from aldica.
Related Issues (20)
- Rework Tomcat Getting Started documentation
- Investigate possibility of triggering pro-active data region memory cleanup HOT 1
- Alfresco transactional caches not stabilising in concurrent access patterns HOT 1
- Binary Serialiser: variable length primitives in raw serial form HOT 3
- Binary Serialiser: specialised raw serial form for content URLs HOT 1
- Binary Serialiser: optimisation of secondary key / entity types
- Ignite binary configuration validation throws false-positive errors due to map handling bug
- Update Docker / Kubernetes documentation and examples / chart patch to include companion application HOT 1
- Reconsider unit test classification default vs. full
- Startup error on Alfresco 5.2.g with enabled serial optimisations HOT 3
- Multiple nodes in Docker-compose HOT 3
- Asteric value of property cors.allowed.origins causes Ignite error HOT 6
- Binary serialization error HOT 3
- Share cannot start if initial members not set HOT 5
- GridAffinityAssignmentCache warning HOT 2
- Share Companion Application
- Alfresco uses AclEntity as cache key
- Initialisation hang during Share startup in private/public address mapping test HOT 3
- Alfresco 7 support HOT 1
- Cache clear on invalidating cache does not clear cache on remote nodes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aldica.