I am experiencing issues when publishing some pages that have an alias on them, I am publishing the following path .../about-us/shopping-with-us
The json looks like this:
about-us:
{
"jcr:primaryType":"cq:PageContent",
"jcr:mixinTypes":[
"cq:LiveRelationship"
],
"jcr:createdBy":"admin",
"jcr:title":"about us",
"cq:template":"/apps/platform-company/templates/general-page",
"sling:alias":"about-us",
"pageTitle":"About Us",
"sling:resourceType":"platform-company/components/page/general",
"cq:designPath":"/etc/designs/platform-company",
"cq:lastRolledoutBy":"msm-service",
"cq:lastModifiedBy":"msm-service",
"navTitle":"About Us"
}
shopping-with-us:
{
"jcr:primaryType":"cq:PageContent",
"jcr:mixinTypes":[
"cq:LiveRelationship"
],
"jcr:createdBy":"admin",
"jcr:title":"shopping with us",
"cq:template":"/apps/platform-company/templates/general-page",
"sling:alias":"shopping-with-us",
"pageTitle":"Shopping With Us",
"sling:resourceType":"platform-company/components/page/general",
"cq:designPath":"/etc/designs/platform-company",
"cq:lastRolledoutBy":"msm-service",
"cq:lastModifiedBy":"msm-service",
"navTitle":"Shopping With Us"
}
When I publish the page it gets replicated to all my publishers correctly but something goes wrong when it tries to invoke my dispatcher flush agent (has on alias update enabled):
[Adobe Granite ChainReplicationService Processor] com.day.cq.replication.impl.ReplicatorImpl Setting up replication with options: ReplicationOptions{synchronous=false, revision='null', suppressStatusUpdate=true, suppressVersions=false, filter=com.day.cq.replication.impl.ChainReplicationService$1@619809ff, aggregateHandler=null}
*ERROR* [Adobe Granite ChainReplicationService Processor] com.day.cq.replication.impl.ChainReplicationService Unexpected error happened
java.lang.StackOverflowError: null
at java.util.HashMap.putVal(HashMap.java:634)
at java.util.HashMap.put(HashMap.java:611)
at java.util.HashSet.add(HashSet.java:219)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:189)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
at com.day.cq.replication.impl.AliasesPreprocessor.mergeExistingMappings(AliasesPreprocessor.java:190)
...
I have no idea what is happening. All help is greatly appreciated.
NOTE: restarting the instance did not solve the problem
Solved! Go to Solution.
Views
Replies
Total Likes
I found the issue, the alias on about-us (.../about-us/shopping-with-us) was the same as the node name. Apparently the AliasesPreprocessor.mergeExistingMappings cannot handle this because it will cause a stackOverflow error caused by the recursive call of mergeExistingMappings.
Views
Replies
Total Likes
For a test, Can you navigate to http://HOST:PORT/system/console/configMgr/org.apache.sling.jcr.resource.internal.JcrResourceResolver... and uncheck 'Enable Optimize alias resolution' and see if you can replicate this issue ?
Views
Replies
Total Likes
Unchecking 'Optimize alias resolution' did not have any effect, I still get the same error as before. The weird thing is that the error does not happen on all pages, for some pages of the same site (that also include aliases) and pages of other sites in our setup it seems to work.
Views
Replies
Total Likes
I'd suggest to open up a Daycare ticket for us(Adobe) to look into it. Make sure you upload all the logs in the ticket and impact of this issue.
Views
Replies
Total Likes
I found the issue, the alias on about-us (.../about-us/shopping-with-us) was the same as the node name. Apparently the AliasesPreprocessor.mergeExistingMappings cannot handle this because it will cause a stackOverflow error caused by the recursive call of mergeExistingMappings.
Views
Replies
Total Likes