[MAGNOLIA-3327] Activation fails when activation from UTF-8 enabled instance to not UFT-8 enabled one Created: 19/Oct/10  Updated: 19/Jan/11  Resolved: 06/Jan/11

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: 4.3.7
Fix Version/s: 4.4.2

Type: Bug Priority: Neutral
Reporter: Jan Haderka Assignee: Jan Haderka
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File stacktrace.txt    
Issue Links:
duplicate
is duplicated by MGNLXAA-23 UTF-8 enabled encoding breaks activat... Closed
relation
is related to MAGNOLIA-3490 Activation fails with utf8 support en... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

Target instance should be notified of the utf settings of the author so it can process content properly on activation or in the very least fail with more meaningful message the with permission check on non existent path. The problem occurs even when activating page that doesn't actually contain any special characters



 Comments   
Comment by Frank Rittinger [ 17/Dec/10 ]

As discussed with Jan on the magnolia users mailing list, this issue still exists (magnolia 4.4.1 Enterprise on Ubuntu Linux 10.04 and Tomcat 6 and Java 6) if both instances run with UTF8 enabled. I checked on the filters, they are enabled and show up in the stack trace on the public instance. Activation works if UTF8 is disabled on both ends, though.

Authoring:
Can't activate: : info.magnolia.cms.exchange.ExchangeException: 1 error detected: Message received from subscriber: Activation failed | User not allowed to (Add, Set, Read) path [%2Fde] on magnoliaPublic8080

Public:
ERROR info.magnolia.module.exchangesimple.ReceiveFilter : User not allowed to (Add, Set, Read) path [%2F/de]
info.magnolia.cms.security.AccessDeniedException: User not allowed to (Add, Set, Read) path [%2F/de]
at info.magnolia.cms.core.Access.isGranted(Access.java:64)
at info.magnolia.cms.core.DefaultHierarchyManager.moveTo(DefaultHierarchyManager.java:497)
at info.magnolia.module.exchangesimple.ReceiveFilter.handleMovedContent(ReceiveFilter.java:274)
at info.magnolia.module.exchangetransactional.XAReceiveFilter.update(XAReceiveFilter.java:146)
at info.magnolia.module.exchangetransactional.XAReceiveFilter.receive(XAReceiveFilter.java:84)
at info.magnolia.module.exchangesimple.ReceiveFilter.doFilter(ReceiveFilter.java:129)
at info.magnolia.module.exchangetransactional.XAReceiveFilter.doFilter(XAReceiveFilter.java:61)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:64)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:88)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:60)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:77)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:51)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.filters.UnicodeNormalizationFilter.doFilter(UnicodeNormalizationFilter.java:90)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:86)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:60)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:102)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:120)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:66)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:105)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:216)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)

Comment by Zdenek Skodik [ 03/Jan/11 ]

Reproduce-able with magnolia.utf8.enabled=true on both 4.4.1 Author&Public.

Comment by Jan Haderka [ 05/Jan/11 ]

The activation issue when UTF-8 is enabled on both - author and public is dealt with in MAGNOLIA-3490 and MGNLXAA-24.

Comment by Jan Haderka [ 06/Jan/11 ]

The activation between instances with different UTF-8 setting is not allowed as it is not possible to ensure always the correct conversion in such case (decoding is transparent to the ReceiveFilter so filter would have to try to guess if the values were decoded or just match the string produced normally only for encoded character).
The code change made ensures proper exception is thrown alerting user to the fact that instances are not configured the same.

Generated at Mon Feb 12 03:45:25 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.