You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Tommaso Teofili (JIRA)" <ji...@apache.org> on 2014/02/20 13:47:19 UTC

[jira] [Commented] (SLING-3404) JobHandlingReplicationQueue reports failed Job.toString

    [ https://issues.apache.org/jira/browse/SLING-3404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13906924#comment-13906924 ] 

Tommaso Teofili commented on SLING-3404:
----------------------------------------

trivial fix for JobHandlingReplicationQueue committed in r1570173

> 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)