Snapshot deployment fails with: IllegalArgumentException: Passed List had more than one value
Problem
Deployment fails with the following error:
java.lang.IllegalArgumentException: Passed List had more than one value. at org.ofbiz.core.entity.EntityUtil.getOnly(EntityUtil.java:68) at com.atlassian.jira.issue.search.OfBizSearchRequestStore.getRequestByAuthorAndName(OfBizSearchRequestStore.java:196) at com.atlassian.jira.issue.search.CachingSearchRequestStore.getRequestByAuthorAndName(CachingSearchRequestStore.java:123) at com.botronsoft.jira.rollout.impl.lookup.FilterLookupProvider.findFilterByNameAndOwner(FilterLookupProvider.java:81) at com.botronsoft.jira.rollout.impl.lookup.FilterLookupProvider.findMatch(FilterLookupProvider.java:38) at com.botronsoft.jira.rollout.impl.lookup.FilterLookupProvider.findMatch(FilterLookupProvider.java:20) at com.botronsoft.jira.rollout.impl.lookup.JiraObjectLookupImpl.findMatchingObject(JiraObjectLookupImpl.java:37) at com.botronsoft.jira.rollout.ui.diff.DiffModelBuilder.validateAdditionalDependencies(DiffModelBuilder.java:639) at com.botronsoft.jira.rollout.ui.diff.DiffModelBuilder.validateDiffNode(DiffModelBuilder.java:427) at com.botronsoft.jira.rollout.ui.diff.DiffModelBuilder.attachDiffNode(DiffModelBuilder.java:375) at com.botronsoft.jira.rollout.ui.diff.DiffModelBuilder.build(DiffModelBuilder.java:187) at com.botronsoft.jira.rollout.ui.DeployModelBuilder.buildDiffModel(DeployModelBuilder.java:131) at com.botronsoft.jira.rollout.impl.ui.DeployModeBuilderServiceImpl.buildDiffModel(DeployModeBuilderServiceImpl.java:51) at sun.reflect.GeneratedMethodAccessor9840.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at
Reason
This error usually suggests that on the target instance there are multiple filters with the same name and owner.
Solutions
The duplicates have to be deleted/renamed.
CMJ's Integrity Check can be used to identify the duplicates. If Integrity Check does not show any filter violations the following SQL query can help you find them.
SELECT COUNT * c, CONCAT (FILTERNAME, AUTHORNAME) FROM SEARCHREQUEST GROUP BY FILTERNAME, AUTHORNAME ORDER BY c desc;