Hi Chamila, This culprit seems to be the following line in startServerExtension() method of DefaultExtensionHandler ExtensionUtils.executeStartServersExtension(Collections.<String, String>emptyMap());
It is trying to add elements to the empty map created above envParameters.put("STRATOS_APP_PATH", CartridgeAgentConfiguration.getInstance().getAppPath()); On Wed, Feb 25, 2015 at 8:22 AM, Martin Eppel (meppel) <mep...@cisco.com> wrote: > Hi Chamila, > > > > With the latest code as of today (see last commit) and run into the > exceptions (see below) when bringing up the cartridge agent ? Not sure if > something is missing or the code is simple not yet ready ? > > > > I attached the logs as well, > > > > Thanks > > > > Martin > > > > Last commit: > > commit a0003d85353bea6d1937f2e06db05f6335f34078 > > Author: Lahiru Sandaruwan <lahi...@apache.org> > > Date: Wed Feb 25 05:40:42 2015 +0530 > > > > Exceptions: > > > > [2015-02-25 02:38:05,563] INFO - [CartridgeAgentEventPublisher] Instance > started event published > > [2015-02-25 02:38:05,563] INFO - [DefaultExtensionHandler] [start server > extension] complete topology event received > > [2015-02-25 02:38:05,564] ERROR - [ExtensionUtils] Could not execute start > servers extension > > java.lang.UnsupportedOperationException > > at java.util.AbstractMap.put(AbstractMap.java:203) > > at > org.apache.stratos.cartridge.agent.util.ExtensionUtils.addPayloadParameters(ExtensionUtils.java:66) > > at > org.apache.stratos.cartridge.agent.util.ExtensionUtils.executeStartServersExtension(ExtensionUtils.java:153) > > at > org.apache.stratos.cartridge.agent.extensions.DefaultExtensionHandler.startServerExtension(DefaultExtensionHandler.java:426) > > at > org.apache.stratos.cartridge.agent.CartridgeAgent.run(CartridgeAgent.java:122) > > at java.lang.Thread.run(Thread.java:745) > > > > … > > [2015-02-25 02:38:10,633] INFO - [CartridgeAgentEventPublisher] Starting > health statistics notifier > > Exception in thread "Thread-1" java.lang.RuntimeException: Could not parse > thrift client configuration > > at > org.apache.stratos.common.statistics.publisher.wso2.cep.ThriftClientConfigParser.parse(ThriftClientConfigParser.java:136) > > at > org.apache.stratos.common.statistics.publisher.wso2.cep.ThriftClientConfig.getInstance(ThriftClientConfig.java:44) > > at > org.apache.stratos.common.statistics.publisher.wso2.cep.WSO2CEPStatisticsPublisher.<init>(WSO2CEPStatisticsPublisher.java:56) > > at > org.apache.stratos.common.statistics.publisher.wso2.cep.WSO2CEPHealthStatisticsPublisher.<init>(WSO2CEPHealthStatisticsPublisher.java:43) > > at > org.apache.stratos.common.statistics.publisher.HealthStatisticsPublisherFactory.createHealthStatisticsPublisher(HealthStatisticsPublisherFactory.java:31) > > at > org.apache.stratos.cartridge.agent.statistics.publisher.HealthStatisticsNotifier.<init>(HealthStatisticsNotifier.java:45) > > at > org.apache.stratos.cartridge.agent.event.publisher.CartridgeAgentEventPublisher.publishInstanceActivatedEvent(CartridgeAgentEventPublisher.java:139) > > at > org.apache.stratos.cartridge.agent.CartridgeAgent.run(CartridgeAgent.java:145) > > at java.lang.Thread.run(Thread.java:745) > > Caused by: java.lang.NullPointerException > > at java.io.File.<init>(File.java:277) > > at > org.apache.stratos.common.statistics.publisher.wso2.cep.ThriftClientConfigParser.parse(ThriftClientConfigParser.java:67) > > ... 8 more > > > > …. > > [2015-02-25 02:40:14,097] ERROR - [CartridgeAgentEventListeners] Error > processing member terminated event > > java.lang.NullPointerException > > at > org.apache.stratos.cartridge.agent.util.ExtensionUtils.checkTopologyConsistency(ExtensionUtils.java:500) > > at > org.apache.stratos.cartridge.agent.extensions.DefaultExtensionHandler.onMemberTerminatedEvent(DefaultExtensionHandler.java:345) > > at > org.apache.stratos.cartridge.agent.CartridgeAgentEventListeners$11.onEvent(CartridgeAgentEventListeners.java:292) > > at > org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42) > > at java.util.Observable.notifyObservers(Observable.java:159) > > at > org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51) > > at > org.apache.stratos.messaging.message.processor.topology.MemberTerminatedMessageProcessor.doProcess(MemberTerminatedMessageProcessor.java:129) > > at > org.apache.stratos.messaging.message.processor.topology.MemberTerminatedMessageProcessor.process(MemberTerminatedMessageProcessor.java:59) > > at > org.apache.stratos.messaging.message.processor.topology.MemberSuspendedMessageProcessor.process(MemberSuspendedMessageProcessor.java:69) > > … > > > > *From:* Martin Eppel (meppel) > *Sent:* Tuesday, February 24, 2015 4:45 PM > *To:* dev@stratos.apache.org > *Subject:* RE: [Discuss] Java Cartridge Agent Improvements > > > > Never mind, I see the commits > > > > Thanks > > > > Martin > > *From:* Martin Eppel (meppel) > *Sent:* Tuesday, February 24, 2015 3:17 PM > *To:* dev@stratos.apache.org > *Subject:* RE: [Discuss] Java Cartridge Agent Improvements > > > > Hi Chamila, > > > > I was just wondering if you already merged these fixes back to the master > (or by when ) ? > > > > I think I am hitting these issues, see exceptions below, > > > > Thanks > > > > Martin > > > > > > [2015-02-24 23:06:02,707] ERROR - [TopologyEventMessageDelegator] Failed > to retrieve topology event message > > 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 > org.apache.stratos.common.concurrent.locks.ReadWriteLock.releaseReadLock(ReadWriteLock.java:199) > > at > org.apache.stratos.messaging.message.receiver.topology.TopologyManager.releaseReadLockForService(TopologyManager.java:144) > > > > …. > > > > [2015-02-24 23:06:07,706] INFO - [CartridgeAgentEventPublisher] Starting > health statistics notifierException in thread "Thread-1" > java.lang.RuntimeException: Could not parse thrift client configuration > > at > org.apache.stratos.common.statistics.publisher.wso2.cep.ThriftClientConfigParser.parse(ThriftClientConfigParser.java:136) > at > org.apache.stratos.common.statistics.publisher.wso2.cep.ThriftClientConfig.getInstance(ThriftClientConfig.java:44) > > at > org.apache.stratos.common.statistics.publisher.wso2.cep.WSO2CEPStatisticsPublisher.<init>(WSO2CEPStatisticsPublisher.java:56) > at > org.apache.stratos.common.statistics.publisher.wso2.cep.WSO2CEPHealthStatisticsPublisher.<init>(WSO2CEPHealthStatisticsPublisher.java:43) > at > org.apache.stratos.common.statistics.publisher.HealthStatisticsPublisherFactory.createHealthStatisticsPublisher(HealthStatisticsPublisherFactory.java:31) > at > org.apache.stratos.cartridge.agent.statistics.publisher.HealthStatisticsNotifier.<init>(HealthStatisticsNotifier.java:45) > at > org.apache.stratos.cartridge.agent.event.publisher.CartridgeAgentEventPublisher.publishInstanceActivatedEvent(CartridgeAgentEventPublisher.java:129) > > at > org.apache.stratos.cartridge.agent.CartridgeAgent.run(CartridgeAgent.java:171) > > at java.lang.Thread.run(Thread.java:745)Caused by: > java.lang.NullPointerException > > at java.io.File.<init>(File.java:277) > > > > > > *From:* Chamila De Alwis [mailto:chami...@wso2.com <chami...@wso2.com>] > *Sent:* Friday, February 20, 2015 1:36 PM > *To:* dev > *Subject:* [Discuss] Java Cartridge Agent Improvements > > > > Hi, > > > > I'm in the process of getting the JCA to a matching state with the PCA. As > a part of this I copied over the integration test that was written by Imesh > for the PCA, to simplify error checks and find bugs in the JCA. > > > > There was an issue in the CartridgeEventListener where > TopologyManager.acquireReadLock() was called after a conditional return > statement. The lock is released in the finally{} block and thus it executes > before the return statement completes, i.e. before actually acquiring the > lock. > > > > Another issue I've found so far is the -Dthrift.client.config.file.path > system property and the thrift-client-config.xml being missing in the > Cartridge agent product assembly. > > > > I will soon submit a PR with a stable JCA. > > > > Any feedback, ideas are appreciated! :) > > > > Regards, > > Chamila de Alwis > > Software Engineer | WSO2 | +94772207163 > > Blog: code.chamiladealwis.com > > > > > -- Udara Liyanage Software Engineer WSO2, Inc.: http://wso2.com lean. enterprise. middleware web: http://udaraliyanage.wordpress.com phone: +94 71 443 6897