Error Details
XML does not match control XML
org.custommonkey.xmlunit.Diff
[different] Expected number of child nodes '3' but was '2' - comparing <field...> at /action[1]/config[1]/meta-data[1]/field[1] to <field...> at /action[1]/config[1]/meta-data[1]/field[1]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<action xmlns="http://www.appng.org/schema/platform" id="create" eventId="repositoryEvent" async="false">
<config>
<title id="repository.create">Create repository</title>
<permissions>
<permission ref="repository.create" mode="set"></permission>
</permissions>
<params>
<param name="form_action">create</param>
</params>
<meta-data binding="repository" bindClass="org.appng.application.manager.form.RepositoryForm">
<field name="name" type="text" binding="repository.name">
<label id="name">Name</label>
<validation>
<notNull>
<message ref="repository.name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
<size min="0" max="64">
<message ref="repository.name" class="ERROR" code="{validation.string.max}">Enter at most 64 characters</message>
</size>
</validation>
</field>
<field name="description" type="text" binding="repository.description">
<label id="description">Description</label>
<validation>
<size min="0" max="8192">
<message ref="repository.description" class="ERROR" code="{validation.string.max}">Enter at most 8192 characters</message>
</size>
</validation>
</field>
<field name="repositoryType" type="list:select" binding="repository.repositoryType">
<label id="type">Type</label>
</field>
<field name="uri" type="text" binding="repository.uri">
<label id="uri">URI</label>
</field>
<field name="active" type="checkbox" binding="repository.active">
<label id="active">Active</label>
</field>
</meta-data>
</config>
<condition expression="${form_action eq 'create'}"/>
<messages>
<message ref="create" class="ERROR">Failed to create the repository.</message>
</messages>
<datasource id="new-repository"/>
<userdata/>
<data>
<selection id="repositoryType">
<title id="repositoryType">repositoryType</title>
<option value="LOCAL" name="Local Repository" selected="false"/>
<option value="REMOTE" name="Published Repository" selected="false"/>
</selection>
<selection id="repositoryMode">
<title id="repositoryMode">repositoryMode</title>
<option value="ALL" name="All Applications" selected="false"/>
<option value="STABLE" name="Only Stable-Applications" selected="false"/>
<option value="SNAPSHOT" name="Only Snapshot-Applications" selected="false"/>
</selection>
<result>
<field name="name" type="text">
<value></value>
</field>
<field name="description" type="text">
<value></value>
</field>
<field name="repositoryType" type="list:select">
<value>LOCAL</value>
</field>
<field name="uri" type="text">
<value></value>
</field>
<field name="active" type="checkbox">
<value>false</value>
</field>
</result>
</data>
<bean id="repositories">
<option name="action" id="create"/>
</bean>
</action>
, org.custommonkey.xmlunit.Diff
[different] Expected number of child nodes '3' but was '2' - comparing <field...> at /action[1]/config[1]/meta-data[1]/field[1] to <field...> at /action[1]/config[1]/meta-data[1]/field[1]
Stack Trace
junit.framework.AssertionFailedError:
XML does not match control XML
org.custommonkey.xmlunit.Diff
[different] Expected number of child nodes '3' but was '2' - comparing <field...> at /action[1]/config[1]/meta-data[1]/field[1] to <field...> at /action[1]/config[1]/meta-data[1]/field[1]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<action xmlns="http://www.appng.org/schema/platform" id="create" eventId="repositoryEvent" async="false">
<config>
<title id="repository.create">Create repository</title>
<permissions>
<permission ref="repository.create" mode="set"></permission>
</permissions>
<params>
<param name="form_action">create</param>
</params>
<meta-data binding="repository" bindClass="org.appng.application.manager.form.RepositoryForm">
<field name="name" type="text" binding="repository.name">
<label id="name">Name</label>
<validation>
<notNull>
<message ref="repository.name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
<size min="0" max="64">
<message ref="repository.name" class="ERROR" code="{validation.string.max}">Enter at most 64 characters</message>
</size>
</validation>
</field>
<field name="description" type="text" binding="repository.description">
<label id="description">Description</label>
<validation>
<size min="0" max="8192">
<message ref="repository.description" class="ERROR" code="{validation.string.max}">Enter at most 8192 characters</message>
</size>
</validation>
</field>
<field name="repositoryType" type="list:select" binding="repository.repositoryType">
<label id="type">Type</label>
</field>
<field name="uri" type="text" binding="repository.uri">
<label id="uri">URI</label>
</field>
<field name="active" type="checkbox" binding="repository.active">
<label id="active">Active</label>
</field>
</meta-data>
</config>
<condition expression="${form_action eq 'create'}"/>
<messages>
<message ref="create" class="ERROR">Failed to create the repository.</message>
</messages>
<datasource id="new-repository"/>
<userdata/>
<data>
<selection id="repositoryType">
<title id="repositoryType">repositoryType</title>
<option value="LOCAL" name="Local Repository" selected="false"/>
<option value="REMOTE" name="Published Repository" selected="false"/>
</selection>
<selection id="repositoryMode">
<title id="repositoryMode">repositoryMode</title>
<option value="ALL" name="All Applications" selected="false"/>
<option value="STABLE" name="Only Stable-Applications" selected="false"/>
<option value="SNAPSHOT" name="Only Snapshot-Applications" selected="false"/>
</selection>
<result>
<field name="name" type="text">
<value></value>
</field>
<field name="description" type="text">
<value></value>
</field>
<field name="repositoryType" type="list:select">
<value>LOCAL</value>
</field>
<field name="uri" type="text">
<value></value>
</field>
<field name="active" type="checkbox">
<value>false</value>
</field>
</result>
</data>
<bean id="repositories">
<option name="action" id="create"/>
</bean>
</action>
, org.custommonkey.xmlunit.Diff
[different] Expected number of child nodes '3' but was '2' - comparing <field...> at /action[1]/config[1]/meta-data[1]/field[1] to <field...> at /action[1]/config[1]/meta-data[1]/field[1]
at org.appng.application.manager.business.RepositoriesTest.testCreateRepositoryNameExists(RepositoriesTest.java:63)
Standard Error
[main] ERROR org.appng.application.manager.business.Repositories - Failed to create the repository.
org.appng.api.BusinessException: org.springframework.dao.InvalidDataAccessApiUsageException: org.springframework.context.support.GenericApplicationContext@4a22f9e2 has been closed already; nested exception is java.lang.IllegalStateException: org.springframework.context.support.GenericApplicationContext@4a22f9e2 has been closed already
at org.appng.api.support.RequestSupportImpl.handleException(RequestSupportImpl.java:200)
at org.appng.api.support.ApplicationRequest.handleException(ApplicationRequest.java:134)
at org.appng.application.manager.service.ManagerService.createRepository(ManagerService.java:874)
at org.appng.application.manager.service.ManagerService$$FastClassBySpringCGLIB$$bbf10b1e.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:737)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:283)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:672)
at org.appng.application.manager.service.ManagerService$$EnhancerBySpringCGLIB$$845e3b03.createRepository(<generated>)
at org.appng.application.manager.business.Repositories.perform(Repositories.java:64)
at org.appng.application.manager.business.Repositories.perform(Repositories.java:44)
at org.appng.api.support.CallableAction.execute(CallableAction.java:438)
at org.appng.api.support.CallableAction.perform(CallableAction.java:336)
at org.appng.api.support.CallableAction.perform(CallableAction.java:308)
at org.appng.application.manager.business.RepositoriesTest.testCreateRepositoryNameExists(RepositoriesTest.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: org.springframework.context.support.GenericApplicationContext@4a22f9e2 has been closed already; nested exception is java.lang.IllegalStateException: org.springframework.context.support.GenericApplicationContext@4a22f9e2 has been closed already
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:387)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:526)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:209)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:140)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$ExposeRepositoryInvocationInterceptor.invoke(CrudMethodMetadataPostProcessor.java:347)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy136.save(Unknown Source)
at org.appng.core.service.CoreService.createRepository(CoreService.java:927)
at org.appng.application.manager.service.ManagerService.createRepository(ManagerService.java:872)
... 49 more
Caused by: java.lang.IllegalStateException: org.springframework.context.support.GenericApplicationContext@4a22f9e2 has been closed already
at org.springframework.context.support.AbstractApplicationContext.assertBeanFactoryActive(AbstractApplicationContext.java:1066)
at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1189)
at org.appng.core.domain.PlatformEventListener.getEventProvider(PlatformEventListener.java:143)
at org.appng.core.domain.PlatformEventListener.createEvent(PlatformEventListener.java:114)
at org.appng.core.domain.PlatformEventListener.createEvent(PlatformEventListener.java:106)
at org.appng.core.domain.PlatformEventListener.createEvent(PlatformEventListener.java:100)
at org.appng.core.domain.PlatformEventListener.beforeCreate(PlatformEventListener.java:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hibernate.jpa.event.internal.ListenerCallback.performCallback(ListenerCallback.java:35)
at org.hibernate.jpa.event.internal.CallbackRegistryImpl.callback(CallbackRegistryImpl.java:95)
at org.hibernate.jpa.event.internal.CallbackRegistryImpl.preCreate(CallbackRegistryImpl.java:55)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:108)
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:185)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:128)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:99)
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:720)
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:706)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:301)
at com.sun.proxy.$Proxy124.persist(Unknown Source)
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:531)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:515)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:500)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:477)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:283)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
... 62 more