Hi, Able to fix this issue by replacing a service stub call happened during createAPI method with a direct method call.. Thanks Janaka for the help..
Thanks; On Thu, Dec 13, 2012 at 9:57 AM, Sanjeewa Malalgoda <sanje...@wso2.com>wrote: > +1. I'm also getting same error with latest packs. > > Thanks. > > On Thu, Dec 13, 2012 at 10:46 AM, Lalaji Sureshika <lal...@wso2.com>wrote: > >> Hi, >> >> Below registry table locking error thrown at each time of API creation >> from API Publisher app on latest pack. Note that this is happened with >> default h2.For mysql it's working..I enabled below entries in log >> file.Attached the carbon.log file as well. >> >> Appreciate any help on this. >> >> [2012-12-13 09:28:47,399] ERROR - JDBCResourceDAO Failed to get the >> resource at path >> /_system/governance/apimgt/applicationdata/provider/admin/api1/1.2.3/api. >> Timeout trying to lock table "REG_RESOURCE"; SQL statement: >> SELECT REG_MEDIA_TYPE, REG_CREATOR, REG_CREATED_TIME, REG_LAST_UPDATOR, >> REG_LAST_UPDATED_TIME, REG_VERSION, REG_DESCRIPTION, REG_CONTENT_ID, >> REG_UUID FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME = ? AND >> REG_TENANT_ID=? [50200-140] >> org.h2.jdbc.JdbcSQLException: Timeout trying to lock table >> "REG_RESOURCE"; SQL statement: >> SELECT REG_MEDIA_TYPE, REG_CREATOR, REG_CREATED_TIME, REG_LAST_UPDATOR, >> REG_LAST_UPDATED_TIME, REG_VERSION, REG_DESCRIPTION, REG_CONTENT_ID, >> REG_UUID FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME = ? AND >> REG_TENANT_ID=? [50200-140] >> at org.h2.message.DbException.getJdbcSQLException(DbException.java:327) >> at org.h2.message.DbException.get(DbException.java:167) >> at org.h2.message.DbException.get(DbException.java:144) >> at org.h2.table.RegularTable.doLock(RegularTable.java:466) >> at org.h2.table.RegularTable.lock(RegularTable.java:404) >> at org.h2.table.TableFilter.lock(TableFilter.java:139) >> at org.h2.command.dml.Select.queryWithoutCache(Select.java:554) >> at org.h2.command.dml.Query.query(Query.java:241) >> at org.h2.command.CommandContainer.query(CommandContainer.java:80) >> at org.h2.command.Command.executeQuery(Command.java:132) >> at >> org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:96) >> at >> org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCDatabaseTransaction$MonitoredPreparedStatement.executeQuery(JDBCDatabaseTransaction.java:485) >> at >> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.getResourceMetaData(JDBCResourceDAO.java:1145) >> at >> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.getResourceMetaData(JDBCResourceDAO.java:1098) >> at >> org.wso2.carbon.registry.core.jdbc.Repository.get(Repository.java:209) >> at >> org.wso2.carbon.registry.core.jdbc.handlers.filters.MediaTypeMatcher.handleGet(MediaTypeMatcher.java:130) >> at >> org.wso2.carbon.registry.core.jdbc.handlers.HandlerManager.get(HandlerManager.java:2439) >> at >> org.wso2.carbon.registry.core.jdbc.handlers.HandlerLifecycleManager.get(HandlerLifecycleManager.java:955) >> at >> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.get(EmbeddedRegistry.java:512) >> at >> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.get(CacheBackedRegistry.java:166) >> at >> org.wso2.carbon.registry.core.session.UserRegistry.get(UserRegistry.java:525) >> at >> org.wso2.carbon.registry.resource.services.utils.AddRolePermissionUtil.addRolePermission(AddRolePermissionUtil.java:109) >> at >> org.wso2.carbon.registry.resource.services.ResourceService.addRolePermission(ResourceService.java:187) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at >> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212) >> at >> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117) >> at >> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) >> at >> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) >> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >> at >> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) >> at >> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) >> at >> org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) >> at >> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) >> at >> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) >> at >> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) >> at >> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) >> at >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) >> at >> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:172) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >> at >> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) >> at >> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >> 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) >> [2012-12-13 09:28:49,445] ERROR - JDBCResourceDAO Failed to check the >> existence of the resource >> /_system/governance/repository/components/org.wso2.carbon.user.mgt/updatedTime. >> Timeout trying to lock table "REG_RESOURCE"; SQL statement: >> SELECT REG_VERSION FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME=? >> AND REG_TENANT_ID=? [50200-140] >> org.h2.jdbc.JdbcSQLException: Timeout trying to lock table >> "REG_RESOURCE"; SQL statement: >> SELECT REG_VERSION FROM REG_RESOURCE WHERE REG_PATH_ID=? AND REG_NAME=? >> AND REG_TENANT_ID=? [50200-140] >> at org.h2.message.DbException.getJdbcSQLException(DbException.java:327) >> at org.h2.message.DbException.get(DbException.java:167) >> at org.h2.message.DbException.get(DbException.java:144) >> at org.h2.table.RegularTable.doLock(RegularTable.java:466) >> at org.h2.table.RegularTable.lock(RegularTable.java:404) >> at org.h2.table.TableFilter.lock(TableFilter.java:139) >> at org.h2.command.dml.Select.queryWithoutCache(Select.java:554) >> at org.h2.command.dml.Query.query(Query.java:241) >> at org.h2.command.CommandContainer.query(CommandContainer.java:80) >> at org.h2.command.Command.executeQuery(Command.java:132) >> at >> org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:96) >> at >> org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCDatabaseTransaction$MonitoredPreparedStatement.executeQuery(JDBCDatabaseTransaction.java:485) >> at >> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.getVersion(JDBCResourceDAO.java:197) >> at >> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.resourceExists(JDBCResourceDAO.java:147) >> at >> org.wso2.carbon.registry.core.jdbc.dao.JDBCResourceDAO.resourceExists(JDBCResourceDAO.java:156) >> at >> org.wso2.carbon.registry.core.jdbc.Repository.resourceExists(Repository.java:159) >> at >> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.put(EmbeddedRegistry.java:688) >> at >> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.put(CacheBackedRegistry.java:465) >> at >> org.wso2.carbon.registry.core.session.UserRegistry.put(UserRegistry.java:658) >> at >> org.wso2.carbon.core.AbstractAdmin.setPermissionUpdateTimestamp(AbstractAdmin.java:169) >> at >> org.wso2.carbon.registry.resource.services.ResourceService.addRolePermission(ResourceService.java:189) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at >> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212) >> at >> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117) >> at >> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) >> at >> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) >> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >> at >> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) >> at >> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) >> at >> org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) >> at >> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) >> at >> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) >> at >> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) >> at >> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) >> at >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) >> at >> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:172) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >> at >> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) >> at >> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >> 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) >> [2012-12-13 09:28:49,919] ERROR - UserAwareAPIProvider Error while adding >> permissions for the API >> org.wso2.carbon.registry.resource.stub.ResourceAdminServiceResourceServiceExceptionException: >> ResourceAdminServiceResourceServiceExceptionException >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >> at >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >> at >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> at java.lang.Class.newInstance0(Class.java:355) >> at java.lang.Class.newInstance(Class.java:308) >> at >> org.wso2.carbon.registry.resource.stub.ResourceAdminServiceStub.addRolePermission(ResourceAdminServiceStub.java:11717) >> at >> org.wso2.carbon.apimgt.impl.utils.ResourceAdminClient.addResourcePermission(ResourceAdminClient.java:90) >> at >> org.wso2.carbon.apimgt.impl.APIProviderImpl.setResourcePermissions(APIProviderImpl.java:997) >> at >> org.wso2.carbon.apimgt.impl.APIProviderImpl.createAPI(APIProviderImpl.java:965) >> at >> org.wso2.carbon.apimgt.impl.APIProviderImpl.addAPI(APIProviderImpl.java:367) >> at >> org.wso2.carbon.apimgt.impl.UserAwareAPIProvider.addAPI(UserAwareAPIProvider.java:45) >> at >> org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject.jsFunction_addAPI(APIProviderHostObject.java:367) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:160) >> at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:411) >> at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) >> at >> org.jaggeryjs.rhino.publisher.modules.api.c3._c1(/publisher/modules/api/add.jag:6) >> at >> org.jaggeryjs.rhino.publisher.modules.api.c3.call(/publisher/modules/api/add.jag) >> at >> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2347) >> at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:272) >> at >> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:127) >> at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76) >> at >> org.jaggeryjs.rhino.publisher.modules.api.c0._c1(/publisher/modules/api/module.jag:5) >> at >> org.jaggeryjs.rhino.publisher.modules.api.c0.call(/publisher/modules/api/module.jag) >> at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) >> at >> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0._c1(/publisher/site/blocks/item-add/ajax/add.jag:69) >> at >> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >> at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:57) >> at >> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0._c0(/publisher/site/blocks/item-add/ajax/add.jag:4) >> at >> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >> at >> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:401) >> at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3003) >> at >> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >> at >> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.exec(/publisher/site/blocks/item-add/ajax/add.jag) >> at >> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:441) >> at >> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:191) >> at >> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:269) >> at >> org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) >> at >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) >> at >> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:172) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) >> at >> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >> at >> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) >> at >> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >> 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) >> [2012-12-13 09:28:49,960] ERROR - APIProviderHostObject Error while >> adding the API- api1-1.2.3 >> >> -- >> Lalaji Sureshika >> Software Engineer; Development Technologies Team;WSO2, Inc.; >> http://wso2.com/ >> email: lal...@wso2.com; cell: +94 71 608 6811 >> blog: http://lalajisureshika.blogspot.com >> >> >> >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > *Sanjeewa Malalgoda* > WSO2 Inc. > Mobile : +14084122175 | +94713068779 > > <http://sanjeewamalalgoda.blogspot.com/>blog > :http://sanjeewamalalgoda.blogspot.com/<http://sanjeewamalalgoda.blogspot.com/> > > -- Lalaji Sureshika Software Engineer; Development Technologies Team;WSO2, Inc.; http://wso2.com/ email: lal...@wso2.com; cell: +94 71 608 6811 blog: http://lalajisureshika.blogspot.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev