Hi Azeez,

During Carbon testing i've created a simple web app that utilize the cache
(source code at [1]). In this web app I've created a cache with custom
expiry and deployed it in a cluster and hit it using jmeter. During testing
i changed the expiry time of the cache prorgrammatically and tried to
redeploy the web app. But since the server was not restarted the cache
created by the previous web app was already there. (I didn't change the
name of the cache manager or the cache) As a result the following exception
was thrown.

TID: [-1234] [] [2014-10-29 12:27:57,185] ERROR
{org.apache.catalina.core.StandardWrapperValve} -  Allocate exception for
servlet org.wso2.carbon.CarbonTest.CachingTest
{org.apache.catalina.core.StandardWrapperValve}
javax.cache.CacheException: Cache expiringCache already exists
    at
org.wso2.carbon.caching.impl.CarbonCacheManager.createCacheBuilder(CarbonCacheManager.java:96)
    at org.wso2.carbon.CarbonTest.CachingTest.init(CachingTest.java:38)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1279)
    at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1192)
    at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at
org.wso2.carbon.statistics.webapp.RequestIntercepterValve.invoke(RequestIntercepterValve.java:43)
    at
org.wso2.carbon.bam.webapp.stat.publisher.WebAppStatisticPublisherValve.invoke(WebAppStatisticPublisherValve.java:104)
    at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)
    at
org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
    at
org.wso2.carbon.webapp.mgt.GhostWebappDeployerValve.invoke(GhostWebappDeployerValve.java:141)
    at
org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)
    at
org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
    at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)
    at
org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:154)
    at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at
org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
    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:662)


This is going to be an issue when developers try to redeploy a webapp with
modifications to the cache configurations. Is this a bug or the intended
behavior? AFAIU we should not let this happen. WDYT?

[1]
https://github.com/GayashanNA/CarbonCachingTestWebapp/blob/master/src/main/java/org/wso2/carbon/CarbonTest/CachingTest.java

​Thanks.
/Gayashan​

-- 
*Gayashan Amarasinghe*
Software Engineer | Platform TG
WSO2, Inc. | http://wso2.com
lean. enterprise. middleware

Mobile : +94718314517
Blog : gayashan-a.blogspot.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to