Looks like DeploymentEngine#addDeployer method is called from all the
synapse artifact related deployer components, which can cause this
concurrent modification exception intermittently. I can reproduce this in
ESB with some sleep introduced at axis2 level for RepositoryListener#
loadOtherDirectories.

A fix has to be added at axis2 level, since there are number of places in
synapse initialization process where the addDeployer method is called.

We can properly handle this at axis2 level by synchronizing the deployerMap
object in places (loadOtherDirectories & addDeployer).

But then the question would be will this cause any impact on the
performance? Since addDeployer only gets called during server start-up and
tenant loading, I think we can go ahead.

Thoughts?

Thanks,
Kishanthan.


On Wed, Nov 13, 2013 at 9:38 AM, Dushan Abeyruwan <[email protected]> wrote:

> rtifact repository at :
> /home/dushan/poc/server/4.1.2-pack/connnector-works/worker_mgr/wso2esb-4.8.0-mgr/repository/tenants/1/synapse-configs/default
> [2013-11-13 09:33:02,105]  INFO - Axis2SynapseController Loading mediator
> extensions...
> [2013-11-13 09:33:02,108] ERROR - CarbonDeploymentSchedulerTask Error
> while running deployment scheduler..
> 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
> org.apache.axis2.deployment.RepositoryListener.loadOtherDirectories(RepositoryListener.java:270)
> at
> org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:253)
>  at
> org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371)
> at
> org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59)
>  at
> org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67)
> at
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:79)
>  at
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:124)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>  at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>  at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
>  at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> [2013-11-13 09:33:02,250]  INFO - LibraryArtifactDeployer Synapse Library
> named '{org.wso2.carbon.connectors}salesforce' has been deployed from file
> :
> /home/dushan/poc/server/4.1.2-pack/connnector-works/worker_mgr/wso2esb-4.8.0-mgr/repository/tenants/1/synapse-libs/salesforce-connector.zip
> [2013-11-13 09:33:02,439]  INFO - LibraryArtifactDeployer Synapse Library
> named '{org.wso2.carbon.connectors}googlespreadsheet' has been deployed
> from file :
> /home/dushan/poc/server/4.1.2-pack/connnector-works/worker_mgr/wso2esb-4.8.0-mgr/repository/tenants/1/synapse-libs/googlespreadsheet-connect
>
> Cheers,
> Dushan Abeyruwan
> Associate Tech Lead
> *Integration Technologies Team*
> *WSO2 Inc. http://wso2.com/ <http://wso2.com/>*
> *Mobile:(+94)714408632 <%28%2B94%29714408632>*
>



-- 
*Kishanthan Thangarajah*
Senior Software Engineer,
Platform Technologies Team,
WSO2, Inc.
lean.enterprise.middleware

Mobile - +94773426635
Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>*
Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to