[JBoss JIRA] (ISPN-6570) Add a disconnect command to the server CLI for symmetry with embedded
by Tristan Tarrant (JIRA)
Tristan Tarrant created ISPN-6570:
-------------------------------------
Summary: Add a disconnect command to the server CLI for symmetry with embedded
Key: ISPN-6570
URL: https://issues.jboss.org/browse/ISPN-6570
Project: Infinispan
Issue Type: Enhancement
Components: CLI, Server
Affects Versions: 9.0.0.Alpha1
Reporter: Tristan Tarrant
Assignee: Tristan Tarrant
Fix For: 8.2.2.Final, 9.0.0.Final
Add a disconnect command which behaves like quit in server mode for symmetry with the embedded CLI
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (ISPN-6535) CacheRemoveAllInterceptorTest and CacheResultInterceptorTest are unstable
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-6535?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-6535:
-------------------------------
Fix Version/s: (was: 9.0.0.Final)
> CacheRemoveAllInterceptorTest and CacheResultInterceptorTest are unstable
> -------------------------------------------------------------------------
>
> Key: ISPN-6535
> URL: https://issues.jboss.org/browse/ISPN-6535
> Project: Infinispan
> Issue Type: Feature Request
> Reporter: Sebastian Łaskawiec
> Assignee: Sebastian Łaskawiec
> Fix For: 9.0.0.Alpha2
>
>
> {code}
> java.lang.RuntimeException: Could not inject members
> at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:135)
> at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.enrich(CDIInjectionEnricher.java:78)
> at org.jboss.arquillian.test.impl.TestInstanceEnricher.enrich(TestInstanceEnricher.java:52)
> at org.jboss.arquillian.container.test.impl.ClientTestInstanceEnricher.enrich(ClientTestInstanceEnricher.java:51)
> at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
> at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createBeforeContext(ContainerEventController.java:124)
> at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:102)
> at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:84)
> at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:65)
> at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116)
> at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.before(EventTestRunnerAdaptor.java:95)
> at org.jboss.arquillian.testng.Arquillian.arquillianBeforeTest(Arquillian.java:133)
> at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
> at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:653)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
> at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
> at org.testng.TestRunner.privateRun(TestRunner.java:767)
> at org.testng.TestRunner.run(TestRunner.java:617)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
> at org.testng.SuiteRunner.run(SuiteRunner.java:254)
> at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
> at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
> at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
> at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
> at org.testng.TestNG.run(TestNG.java:1057)
> at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:115)
> at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:205)
> at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:108)
> at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111)
> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
> Caused by: java.lang.IllegalStateException: Test name is not set! Please call TestResourceTracker.testThreadStarted(this) in thread testng-CachePutInterceptorTest !
> at org.infinispan.test.fwk.TestResourceTracker.getCurrentTestName(TestResourceTracker.java:77)
> at org.infinispan.test.fwk.TestResourceTracker.addResource(TestResourceTracker.java:43)
> at org.infinispan.test.fwk.TestCacheManagerFactory.newDefaultCacheManager(TestCacheManagerFactory.java:401)
> at org.infinispan.test.fwk.TestCacheManagerFactory.newDefaultCacheManager(TestCacheManagerFactory.java:70)
> at org.infinispan.test.fwk.TestCacheManagerFactory.createCacheManager(TestCacheManagerFactory.java:234)
> at org.infinispan.test.fwk.TestCacheManagerFactory.createCacheManager(TestCacheManagerFactory.java:219)
> at org.infinispan.integrationtests.cdijcache.interceptor.config.Config.smallCacheManager(Config.java:55)
> 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:497)
> at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:267)
> at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
> at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137)
> at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:263)
> at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170)
> at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstance(MethodInjectionPoint.java:137)
> at org.jboss.weld.bean.ProducerMethod$ProducerMethodProducer.produce(ProducerMethod.java:136)
> at org.jboss.weld.bean.AbstractProducerBean$AbstractProducer.produce(AbstractProducerBean.java:319)
> at org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:307)
> at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103)
> at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90)
> at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:104)
> at org.jboss.weld.proxies.BasicCacheContainer$CacheContainer$EmbeddedCacheManager$Lifecycle$Listenable$-85647394$Proxy$_$$_WeldClientProxy.getCacheNames(BasicCacheContainer$CacheContainer$EmbeddedCacheManager$Lifecycle$Listenable$-85647394$Proxy$_$$_WeldClientProxy.java)
> at org.infinispan.cdi.InfinispanExtensionEmbedded.registerCacheConfigurations(InfinispanExtensionEmbedded.java:177)
> at org.infinispan.cdi.AdvancedCacheProducer.getAdvancedCache(AdvancedCacheProducer.java:59)
> at org.infinispan.cdi.InfinispanExtensionEmbedded$1.create(InfinispanExtensionEmbedded.java:96)
> at org.infinispan.cdi.InfinispanExtensionEmbedded$1.create(InfinispanExtensionEmbedded.java:92)
> at org.infinispan.cdi.util.ImmutableBean.create(ImmutableBean.java:65)
> at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:68)
> at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:608)
> at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:674)
> at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:136)
> at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:763)
> at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:772)
> at org.jboss.weld.manager.SimpleInjectionTarget$1.proceed(SimpleInjectionTarget.java:106)
> at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
> at org.jboss.weld.manager.SimpleInjectionTarget.inject(SimpleInjectionTarget.java:102)
> at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectNonContextualInstance(CDIInjectionEnricher.java:145)
> at org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:125)
> ... 67 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (ISPN-6568) ExampleConfigsIT.testRestRollingUpgrades still fails randomly
by Dan Berindei (JIRA)
Dan Berindei created ISPN-6568:
----------------------------------
Summary: ExampleConfigsIT.testRestRollingUpgrades still fails randomly
Key: ISPN-6568
URL: https://issues.jboss.org/browse/ISPN-6568
Project: Infinispan
Issue Type: Bug
Components: Server, Test Suite - Server
Affects Versions: 9.0.0.Alpha1
Reporter: Dan Berindei
{{ExampleConfigsIT.testRestRollingUpgrades}} still fails randomly in CI, and the log always includes this warning:
{noformat}
09:26:39,332 WARN [org.infinispan.persistence.rest.upgrade.RestTargetMigrator] (pool-5-thread-4) ISPN000277: Could not migrate key keyLoad49: org.infinispan.commons.CacheException: java.lang.NoClassDefFoundError: io/netty/util/internal/TypeParameterMatcher
at org.infinispan.interceptors.impl.SequentialInterceptorChainImpl.invoke(SequentialInterceptorChainImpl.java:247)
at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:422)
at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:408)
at org.infinispan.persistence.rest.upgrade.RestTargetMigrator$1.run(RestTargetMigrator.java:62)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: io/netty/util/internal/TypeParameterMatcher
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at io.netty.util.internal.JavassistTypeParameterMatcherGenerator.generate(JavassistTypeParameterMatcherGenerator.java:62)
at io.netty.util.internal.JavassistTypeParameterMatcherGenerator.generate(JavassistTypeParameterMatcherGenerator.java:54)
at io.netty.util.internal.TypeParameterMatcher.get(TypeParameterMatcher.java:42)
at io.netty.util.internal.TypeParameterMatcher.find(TypeParameterMatcher.java:78)
at io.netty.channel.SimpleChannelInboundHandler.<init>(SimpleChannelInboundHandler.java:67)
at io.netty.channel.SimpleChannelInboundHandler.<init>(SimpleChannelInboundHandler.java:57)
at org.infinispan.persistence.rest.RestStore$HttpResponseHandler.<init>(RestStore.java:212)
at org.infinispan.persistence.rest.RestStore.load(RestStore.java:269)
at org.infinispan.persistence.manager.PersistenceManagerImpl.loadFromAllStores(PersistenceManagerImpl.java:456)
at org.infinispan.persistence.PersistenceUtil.loadAndCheckExpiration(PersistenceUtil.java:113)
at org.infinispan.persistence.PersistenceUtil.lambda$loadAndStoreInDataContainer$2(PersistenceUtil.java:98)
at org.infinispan.persistence.PersistenceUtil$$Lambda$56/511185912.compute(Unknown Source)
at org.infinispan.container.DefaultDataContainer.lambda$compute$313(DefaultDataContainer.java:324)
at org.infinispan.container.DefaultDataContainer$$Lambda$57/1297726545.apply(Unknown Source)
at org.infinispan.commons.util.concurrent.jdk8backported.EquivalentConcurrentHashMapV8.compute(EquivalentConcurrentHashMapV8.java:1873)
at org.infinispan.container.DefaultDataContainer.compute(DefaultDataContainer.java:323)
at org.infinispan.persistence.PersistenceUtil.loadAndStoreInDataContainer(PersistenceUtil.java:91)
at org.infinispan.interceptors.CacheLoaderInterceptor.loadInContext(CacheLoaderInterceptor.java:371)
at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:366)
at org.infinispan.interceptors.CacheLoaderInterceptor.visitDataCommand(CacheLoaderInterceptor.java:187)
at org.infinispan.interceptors.CacheLoaderInterceptor.visitGetKeyValueCommand(CacheLoaderInterceptor.java:141)
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:41)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.doInvokeNextSync(BaseSequentialInvocationContext.java:263)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.forkInvocationSync(BaseSequentialInvocationContext.java:90)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
at org.infinispan.interceptors.EntryWrappingInterceptor.visitDataReadCommand(EntryWrappingInterceptor.java:134)
at org.infinispan.interceptors.EntryWrappingInterceptor.visitGetKeyValueCommand(EntryWrappingInterceptor.java:124)
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:41)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.doInvokeNextSync(BaseSequentialInvocationContext.java:263)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.forkInvocationSync(BaseSequentialInvocationContext.java:90)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataReadCommand(NonTransactionalLockingInterceptor.java:32)
at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitGetKeyValueCommand(AbstractLockingInterceptor.java:78)
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:41)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.doInvokeNextSync(BaseSequentialInvocationContext.java:263)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.forkInvocationSync(BaseSequentialInvocationContext.java:90)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
at org.infinispan.interceptors.CacheMgmtInterceptor.visitDataReadCommand(CacheMgmtInterceptor.java:103)
at org.infinispan.interceptors.CacheMgmtInterceptor.visitGetKeyValueCommand(CacheMgmtInterceptor.java:91)
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:41)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.doInvokeNextSync(BaseSequentialInvocationContext.java:263)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.forkInvocationSync(BaseSequentialInvocationContext.java:90)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:79)
at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:41)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.doInvokeNextSync(BaseSequentialInvocationContext.java:263)
at org.infinispan.interceptors.impl.BaseSequentialInvocationContext.invokeSync(BaseSequentialInvocationContext.java:253)
at org.infinispan.interceptors.impl.SequentialInterceptorChainImpl.invoke(SequentialInterceptorChainImpl.java:240)
... 8 more
Caused by: java.lang.ClassNotFoundException: io.netty.util.internal.TypeParameterMatcher from [Module "org.infinispan:main" from local module loader @18e8568 (finder: local module finder @33e5ccce (roots: /opt/buildAgent/work/4107e96132ab99f9/server/integration/testsuite/target/server/node1/modules,/opt/buildAgent/work/4107e96132ab99f9/server/integration/testsuite/target/server/node1/modules/system/layers/base))]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
... 60 more
{noformat}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (ISPN-6567) Server CLI doesn't support help for commands
by Tristan Tarrant (JIRA)
Tristan Tarrant created ISPN-6567:
-------------------------------------
Summary: Server CLI doesn't support help for commands
Key: ISPN-6567
URL: https://issues.jboss.org/browse/ISPN-6567
Project: Infinispan
Issue Type: Bug
Components: CLI, Server
Affects Versions: 9.0.0.Alpha1
Reporter: Tristan Tarrant
Assignee: Tristan Tarrant
Fix For: 8.2.2.Final, 9.0.0.Final
The server CLI commands should support the --help switch (which is standard for the WildFly CLI as well).
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months
[JBoss JIRA] (ISPN-6540) Management console doesn't display cache containers correctly if there are two containers with the same name
by Vladimir Blagojevic (JIRA)
[ https://issues.jboss.org/browse/ISPN-6540?page=com.atlassian.jira.plugin.... ]
Vladimir Blagojevic edited comment on ISPN-6540 at 4/28/16 9:57 AM:
--------------------------------------------------------------------
[~rmacor] I really appreciate your effort here. I will look into remote sites today, solve it and then update the relevant PRs on both sides!
was (Author: vblagojevic):
[~rmacor] I really appreciate your effort here. I will look into this remote sites today, solve it and then update the relevant PRs on both sides!
> Management console doesn't display cache containers correctly if there are two containers with the same name
> ------------------------------------------------------------------------------------------------------------
>
> Key: ISPN-6540
> URL: https://issues.jboss.org/browse/ISPN-6540
> Project: Infinispan
> Issue Type: Bug
> Components: Console
> Reporter: Roman Macor
> Assignee: Vladimir Blagojevic
> Attachments: configs.zip, config_with_remoteSite.zip, Screenshot-containersWithSameName.png, Screenshot-detalPageForBothContainers.png
>
>
> When we have two containers with the same name on different clusters some values are displayed correctly - #caches, name, clustering-info, but some are not - endpoints, sites.
> Additionally, clicking on either of containers display the same information, even though containers are configured differently.
> Please see the screenshots.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 7 months