On JIRA 6.1.5, if you edit SLA rules on a project a few times rapidly, I notice this stacktrace gets generated.
If I disable the Webhook plugin completely, then the problem goes away.
I don't see any weird side-effects other than the error messages.
2013-12-31 00:08:55,828 JiraTaskExectionThread-20 ERROR xxxx 6x4873x1 lvswjo 172.25.28.203 /rest/servicedesk/1/servicedesk/AURA/sla/consistency [atlassian.event.internal.AsynchronousAbleEventDispatcher] There was an exception thrown trying to dispatch event 'com.atlassian.jira.issue.index.ReindexIssuesStartedEvent@2974d43b' from the invoker 'SingleParameterMethodListenerInvoker{method=public void com.atlassian.webhooks.plugin.WebHookEventsProcessor.onEvent(java.lang.Object), listener=com.atlassian.webhooks.plugin.WebHookEventsProcessor@658ef2dc}'.
java.lang.RuntimeException: attempt to unlock read lock, not locked by current thread
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:66)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute(AsynchronousAbleEventDispatcher.java:32)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:60)
at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160)
at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79)
at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:460)
at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:437)
at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:430)
at com.atlassian.jira.issue.index.DefaultIndexManager.release(DefaultIndexManager.java:417) <+2> (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:83)
at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28)
at com.sun.proxy.$Proxy147.release(Unknown Source) <+2> (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
at com.sun.proxy.$Proxy147.release(Unknown Source) <+2> (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
at com.sun.proxy.$Proxy147.release(Unknown Source)
at com.atlassian.servicedesk.internal.sla.task.ConsistencyTask.processIssuesById(ConsistencyTask.java:229)
at com.atlassian.servicedesk.internal.sla.task.ConsistencyTask.processIssues(ConsistencyTask.java:139)
at com.atlassian.servicedesk.internal.sla.task.ConsistencyTask.doMigrate(ConsistencyTask.java:100)
at com.atlassian.servicedesk.internal.sla.task.ConsistencyTask.call(ConsistencyTask.java:63)
at com.atlassian.servicedesk.internal.sla.task.ConsistencyTask.call(ConsistencyTask.java:23)
at com.atlassian.jira.task.TaskManagerImpl$TaskCallableDecorator.call(TaskManagerImpl.java:374)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at com.atlassian.jira.task.ForkedThreadExecutor$ForkedRunnableDecorator.run(ForkedThreadExecutor.java:250)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalMonitorStateException: attempt to unlock read lock, not locked by current thread
at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:447)
at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:431)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1340)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:883)
at com.atlassian.webhooks.plugin.OsgiWebHookProviderWebHookRegistry.getWebHooks(OsgiWebHookProviderWebHookRegistry.java:103)
at com.atlassian.webhooks.plugin.DelegatingWebHookRegistry$2.apply(DelegatingWebHookRegistry.java:40)
at com.atlassian.webhooks.plugin.DelegatingWebHookRegistry$2.apply(DelegatingWebHookRegistry.java:36)
at com.google.common.collect.Iterators$8.next(Iterators.java:782)
at com.google.common.collect.Iterables$3.next(Iterables.java:505)
at com.google.common.collect.Iterables$3.next(Iterables.java:498)
at com.google.common.collect.Iterators$5.hasNext(Iterators.java:540)
at com.atlassian.webhooks.plugin.WebHookEventsProcessor.doOnEvent(WebHookEventsProcessor.java:37)
at com.atlassian.webhooks.plugin.WebHookEventsProcessor.onEvent(WebHookEventsProcessor.java:32) <+2> (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36)
... 36 more