[ https://issues.apache.org/jira/browse/IGNITE-9031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549421#comment-16549421 ]
Joel Lang edited comment on IGNITE-9031 at 7/19/18 3:24 PM: ------------------------------------------------------------ [~aakhmedov] you described the setup I have. Ignite is being started inside of a host application which creates more than one {{ApplicationContext}}. This isn't Spring MVC. This host application first creates a {{FileSystemXmlApplicationContext}} using root-app-context.xml, which imports ignite.xml. Later it creates another {{ClassPathXmlApplicationContext}} using extensions.xml which uses the previously created context as its parent. This is the line in the stack trace when the assertion happens. This should be the root cause. I can post a stripped-down version of the root-app-context.xml and ignite.xml: *root-app-context.xml:* {code:xml} <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean id="appProperties" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"> <property name="locations"> <list> <value>cluster.properties</value> </list> </property> <property name="ignoreResourceNotFound" value="true" /> </bean> <!-- other beans here --> <import resource="classpath:ignite.xml"/> </beans> {code} *ignite.xml:* {code:xml} <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd"> <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> <!-- other settings here --> <property name="discoverySpi"> <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> <property name="localPort" value="${ignite.disc.port}"/> <property name="localPortRange" value="${ignite.disc.portrange}"/> <property name="ipFinder"> <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> <property name="addresses"> <bean class="org.springframework.util.StringUtils" factory-method="commaDelimitedListToSet"> <constructor-arg type="java.lang.String" value="${ignite.disc.nodes}"/> </bean> </property> </bean> </property> </bean> </property> <property name="communicationSpi"> <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi"> <property name="localPort" value="${ignite.comm.port}"/> <property name="localPortRange" value="${ignite.comm.portrange}"/> </bean> </property> <!-- other settings here --> </bean> <bean id="ignite" class="org.apache.ignite.IgniteSpringBean"> <property name="configuration" ref="ignite.cfg"/> </bean> <bean id="cacheManager" class="org.apache.ignite.cache.spring.SpringCacheManager" lazy-init="true"/> </beans> {code} was (Author: langj): [~aakhmedov] you described the setup I have. Ignite is being started inside of a host application which creates more than one {{ApplicationContext}}. This isn't Spring MVC. This host application first creates a {{FileSystemXmlApplicationContext}} using root-app-context.xml, which imports ignite.xml. Later it creates another {{ClassPathXmlApplicationContext}} using extensions.xml which uses the previously created context as its parent. This is the line in the stack trace when the assertion happens. This would be the root cause. I can post a stripped-down version of the root-app-context.xml and ignite.xml: *root-app-context.xml:* {code:xml} <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean id="appProperties" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"> <property name="locations"> <list> <value>cluster.properties</value> </list> </property> <property name="ignoreResourceNotFound" value="true" /> </bean> <!-- other beans here --> <import resource="classpath:ignite.xml"/> </beans> {code} *ignite.xml:* {code:xml} <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd"> <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> <!-- other settings here --> <property name="discoverySpi"> <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> <property name="localPort" value="${ignite.disc.port}"/> <property name="localPortRange" value="${ignite.disc.portrange}"/> <property name="ipFinder"> <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> <property name="addresses"> <bean class="org.springframework.util.StringUtils" factory-method="commaDelimitedListToSet"> <constructor-arg type="java.lang.String" value="${ignite.disc.nodes}"/> </bean> </property> </bean> </property> </bean> </property> <property name="communicationSpi"> <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi"> <property name="localPort" value="${ignite.comm.port}"/> <property name="localPortRange" value="${ignite.comm.portrange}"/> </bean> </property> <!-- other settings here --> </bean> <bean id="ignite" class="org.apache.ignite.IgniteSpringBean"> <property name="configuration" ref="ignite.cfg"/> </bean> <bean id="cacheManager" class="org.apache.ignite.cache.spring.SpringCacheManager" lazy-init="true"/> </beans> {code} > SpringCacheManager throws AssertionError during Spring initialization > --------------------------------------------------------------------- > > Key: IGNITE-9031 > URL: https://issues.apache.org/jira/browse/IGNITE-9031 > Project: Ignite > Issue Type: Bug > Components: spring > Affects Versions: 2.6 > Reporter: Joel Lang > Assignee: Amir Akhmedov > Priority: Major > > When initializing Ignite using an IgniteSpringBean and also having a > SpringCacheManager defined, the SpringCacheManager throws an AssertionError > in the onApplicationEvent() method due to it being called more than once. > There is an "assert ignite == null" that fails after the first call. > This is related to the changes in IGNITE-8740. This happened immediately when > I first tried to start Ignite after upgrading from 2.5 to 2.6. -- This message was sent by Atlassian JIRA (v7.6.3#76005)