[ 
https://issues.apache.org/jira/browse/SLING-3404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tommaso Teofili updated SLING-3404:
-----------------------------------

    Description: 
JobHandlingReplicationQueue currently logs an INFO message when a Job is 
created internally, however this triggers a strange 
ConcurrentModificationException : 

SLF4J: Failed toString() invocation on an object of type 
[org.apache.sling.event.impl.jobs.JobImpl]
java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
        at java.util.HashMap$EntryIterator.next(HashMap.java:834)
        at java.util.HashMap$EntryIterator.next(HashMap.java:832)
        at java.util.AbstractMap.toString(AbstractMap.java:485)
        at 
org.apache.sling.api.wrappers.ValueMapDecorator.toString(ValueMapDecorator.java:210)
        at java.lang.String.valueOf(String.java:2826)
        at java.lang.StringBuilder.append(StringBuilder.java:115)
        at org.apache.sling.event.impl.jobs.JobImpl.toString(JobImpl.java:383)
        at 
org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:304)
        at 
org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:276)
        at 
org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:230)
        at 
ch.qos.logback.classic.spi.LoggingEvent.getFormattedMessage(LoggingEvent.java:298)
        at 
ch.qos.logback.classic.spi.LoggingEvent.prepareForDeferredProcessing(LoggingEvent.java:208)
        at 
ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:206)
        at 
ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:175)
        at 
ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:103)
        at 
ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:88)
        at 
ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48)
        at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:273)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:260)
        at 
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:442)
        at ch.qos.logback.classic.Logger.filterAndLog_1(Logger.java:414)
        at ch.qos.logback.classic.Logger.info(Logger.java:604)
        at 
org.apache.sling.replication.queue.impl.jobhandling.JobHandlingReplicationQueue.add(JobHandlingReplicationQueue.java:72)
        at 
org.apache.sling.replication.queue.impl.ErrorAwareQueueDistributionStrategy.offer(ErrorAwareQueueDistributionStrategy.java:115)
        at 
org.apache.sling.replication.agent.impl.SimpleReplicationAgent.schedule(SimpleReplicationAgent.java:167)
        at 
org.apache.sling.replication.agent.impl.SimpleReplicationAgent.schedule(SimpleReplicationAgent.java:149)
        at 
org.apache.sling.replication.agent.impl.SimpleReplicationAgent.send(SimpleReplicationAgent.java:104)
        at 
org.apache.sling.replication.rule.impl.ScheduleReplicateReplicationRule$ScheduledReplication.run(ScheduleReplicateReplicationRule.java:95)
        at 
org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:105)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:695)


The trivial workaround for the replication queue is to switch to log, for 
example, just the ID or something else. However it'd be interesting to 
understand what's causing it.

  was:
JobHandlingReplicationQueue currently logs an INFO message when a Job is 
created internally, however this triggers a strange 
ConcurrentModificationException : 
{code}
SLF4J: Failed toString() invocation on an object of type 
[org.apache.sling.event.impl.jobs.JobImpl]
java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
        at java.util.HashMap$EntryIterator.next(HashMap.java:834)
        at java.util.HashMap$EntryIterator.next(HashMap.java:832)
        at java.util.AbstractMap.toString(AbstractMap.java:485)
        at 
org.apache.sling.api.wrappers.ValueMapDecorator.toString(ValueMapDecorator.java:210)
        at java.lang.String.valueOf(String.java:2826)
        at java.lang.StringBuilder.append(StringBuilder.java:115)
        at org.apache.sling.event.impl.jobs.JobImpl.toString(JobImpl.java:383)
        at 
org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:304)
        at 
org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:276)
        at 
org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:230)
        at 
ch.qos.logback.classic.spi.LoggingEvent.getFormattedMessage(LoggingEvent.java:298)
        at 
ch.qos.logback.classic.spi.LoggingEvent.prepareForDeferredProcessing(LoggingEvent.java:208)
        at 
ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:206)
        at 
ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:175)
        at 
ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:103)
        at 
ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:88)
        at 
ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48)
        at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:273)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:260)
        at 
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:442)
        at ch.qos.logback.classic.Logger.filterAndLog_1(Logger.java:414)
        at ch.qos.logback.classic.Logger.info(Logger.java:604)
        at 
org.apache.sling.replication.queue.impl.jobhandling.JobHandlingReplicationQueue.add(JobHandlingReplicationQueue.java:72)
        at 
org.apache.sling.replication.queue.impl.ErrorAwareQueueDistributionStrategy.offer(ErrorAwareQueueDistributionStrategy.java:115)
        at 
org.apache.sling.replication.agent.impl.SimpleReplicationAgent.schedule(SimpleReplicationAgent.java:167)
        at 
org.apache.sling.replication.agent.impl.SimpleReplicationAgent.schedule(SimpleReplicationAgent.java:149)
        at 
org.apache.sling.replication.agent.impl.SimpleReplicationAgent.send(SimpleReplicationAgent.java:104)
        at 
org.apache.sling.replication.rule.impl.ScheduleReplicateReplicationRule$ScheduledReplication.run(ScheduleReplicateReplicationRule.java:95)
        at 
org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:105)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:695)

{code}

The trivial workaround for the replication queue is to switch to log, for 
example, just the ID or something else. However it'd be interesting to 
understand what's causing it.


> JobHandlingReplicationQueue reports failed Job.toString
> -------------------------------------------------------
>
>                 Key: SLING-3404
>                 URL: https://issues.apache.org/jira/browse/SLING-3404
>             Project: Sling
>          Issue Type: Improvement
>          Components: Extensions
>            Reporter: Tommaso Teofili
>            Assignee: Tommaso Teofili
>              Labels: replication
>
> JobHandlingReplicationQueue currently logs an INFO message when a Job is 
> created internally, however this triggers a strange 
> ConcurrentModificationException : 
> SLF4J: Failed toString() invocation on an object of type 
> [org.apache.sling.event.impl.jobs.JobImpl]
> java.util.ConcurrentModificationException
>       at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
>       at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>       at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>       at java.util.AbstractMap.toString(AbstractMap.java:485)
>       at 
> org.apache.sling.api.wrappers.ValueMapDecorator.toString(ValueMapDecorator.java:210)
>       at java.lang.String.valueOf(String.java:2826)
>       at java.lang.StringBuilder.append(StringBuilder.java:115)
>       at org.apache.sling.event.impl.jobs.JobImpl.toString(JobImpl.java:383)
>       at 
> org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:304)
>       at 
> org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:276)
>       at 
> org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:230)
>       at 
> ch.qos.logback.classic.spi.LoggingEvent.getFormattedMessage(LoggingEvent.java:298)
>       at 
> ch.qos.logback.classic.spi.LoggingEvent.prepareForDeferredProcessing(LoggingEvent.java:208)
>       at 
> ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:206)
>       at 
> ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:175)
>       at 
> ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:103)
>       at 
> ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:88)
>       at 
> ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48)
>       at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:273)
>       at ch.qos.logback.classic.Logger.callAppenders(Logger.java:260)
>       at 
> ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:442)
>       at ch.qos.logback.classic.Logger.filterAndLog_1(Logger.java:414)
>       at ch.qos.logback.classic.Logger.info(Logger.java:604)
>       at 
> org.apache.sling.replication.queue.impl.jobhandling.JobHandlingReplicationQueue.add(JobHandlingReplicationQueue.java:72)
>       at 
> org.apache.sling.replication.queue.impl.ErrorAwareQueueDistributionStrategy.offer(ErrorAwareQueueDistributionStrategy.java:115)
>       at 
> org.apache.sling.replication.agent.impl.SimpleReplicationAgent.schedule(SimpleReplicationAgent.java:167)
>       at 
> org.apache.sling.replication.agent.impl.SimpleReplicationAgent.schedule(SimpleReplicationAgent.java:149)
>       at 
> org.apache.sling.replication.agent.impl.SimpleReplicationAgent.send(SimpleReplicationAgent.java:104)
>       at 
> org.apache.sling.replication.rule.impl.ScheduleReplicateReplicationRule$ScheduledReplication.run(ScheduleReplicateReplicationRule.java:95)
>       at 
> org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:105)
>       at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>       at java.lang.Thread.run(Thread.java:695)
> The trivial workaround for the replication queue is to switch to log, for 
> example, just the ID or something else. However it'd be interesting to 
> understand what's causing it.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to