[JBoss JIRA] Created: (ISPN-1404) Make hash id seed for a node's position in the hash wheel configurable
by Galder Zamarreño (JIRA)
Make hash id seed for a node's position in the hash wheel configurable
----------------------------------------------------------------------
Key: ISPN-1404
URL: https://issues.jboss.org/browse/ISPN-1404
Project: Infinispan
Issue Type: Enhancement
Components: Cache Server, Configuration, Distributed Cache
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Fix For: 5.2.0.FINAL
In distributed caches, make hash seeds configurable. Right now, this is configured to be:
- WO/ virtual nodes -> org.infinispan.remoting.transport.jgroups.JGroupsAddress
- W/ virtual nodes -> org.infinispan.distribution.ch.VirtualAddress
To avoid needing Hot Rod servers needing to keep hash ids in the server side memory, it'd be helpful to have this configurable so that both the server and client can hash on the same seed to find a node's position in the hash wheel. For example, a HotRod server would provide an implementation where the source would be:
- WO/ virtual nodes -> String UTF-8 byte[] based on: '<node_host>:<node_port>'
- W/ virtual nodes -> String UTF-8 byte[] based on: '<node_host>:<node_port>:<virtual_node_index>'
This would be doable with some kind of SPI class that's configurable. By default, Infinispan would use a class that uses the Java classes and Hot Rod would plug a different implementation that returns the byte[] in the format spelled.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months
[JBoss JIRA] (ISPN-1479) CacheRemoveAllInterceptorTest log errors without failing the test
by Sanne Grinovero (Created) (JIRA)
CacheRemoveAllInterceptorTest log errors without failing the test
-----------------------------------------------------------------
Key: ISPN-1479
URL: https://issues.jboss.org/browse/ISPN-1479
Project: Infinispan
Issue Type: Enhancement
Affects Versions: 5.1.0.BETA2
Reporter: Sanne Grinovero
Assignee: Kevin Pollet
Priority: Minor
Fix For: 5.1.0.BETA3
I'm not sure if it's a problem, but it doesn't look like this was meant to be logged:
{quote}
2011-10-21 10:26:47,488 ERROR [UnitTestTestNGListener] (testng-CacheRemoveAllInterceptorTest) Method testCacheRemoveAll(org.infinispan.cdi.test.interceptor.CacheRemoveAllInterceptorTest) threw an exception
javax.cache.CacheException: ISPN017007: Method named 'removeAll' is annotated with CacheRemoveAll but doesn't specify a cache name
at org.infinispan.cdi.interceptor.context.CacheKeyInvocationContextFactory.getMethodMetaData(CacheKeyInvocationContextFactory.java:133)
at org.infinispan.cdi.interceptor.context.CacheKeyInvocationContextFactory.getCacheKeyInvocationContext(CacheKeyInvocationContextFactory.java:87)
at org.infinispan.cdi.interceptor.context.CacheKeyInvocationContextFactory$Proxy$_$$_WeldClientProxy.getCacheKeyInvocationContext(CacheKeyInvocationContextFactory$Proxy$_$$_WeldClientProxy.java)
at org.infinispan.cdi.interceptor.CacheRemoveAllInterceptor.cacheRemoveAll(CacheRemoveAllInterceptor.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.interceptor.proxy.InterceptorInvocation$InterceptorMethodInvocation.invoke(InterceptorInvocation.java:72)
at org.jboss.interceptor.proxy.SimpleInterceptionChain.invokeNextInterceptor(SimpleInterceptionChain.java:82)
at org.jboss.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:133)
at org.jboss.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:112)
at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:65)
at org.infinispan.cdi.test.interceptor.service.726545320$Proxy$_$$_WeldSubclass.removeAll(726545320$Proxy$_$$_WeldSubclass.java)
at org.infinispan.cdi.test.interceptor.CacheRemoveAllInterceptorTest.testCacheRemoveAll(CacheRemoveAllInterceptorTest.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
{quote}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months
[JBoss JIRA] (ISPN-1477) KeyTransformationHandler should use proper CL to load key's class
by Ales Justin (Created) (JIRA)
KeyTransformationHandler should use proper CL to load key's class
-----------------------------------------------------------------
Key: ISPN-1477
URL: https://issues.jboss.org/browse/ISPN-1477
Project: Infinispan
Issue Type: Bug
Reporter: Ales Justin
Assignee: Sanne Grinovero
Wrong classloader is used when looking up key class -- it uses cache's classloader (in JBossAS7 case this is org.jboss.as.clustering' module CL).
e.g. user could have custom key and its Transformer as part of his deployment, but only deployment's CL sees this two classes
18:04:02,866 ERROR [org.infinispan.query.backend.KeyTransformationHandler] (RMI TCP Connection(3)-127.0.0.1) ISPN014001: Could not locate key class com.google.appengine.api.datastore.Key: java.lang.ClassNotFoundException: com.google.appengine.api.datastore.Key
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) [:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_26]
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) [:1.6.0_26]
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) [:1.6.0_26]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [:1.6.0_26]
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) [:1.6.0_26]
at java.lang.Class.forName0(Native Method) [:1.6.0_26]
at java.lang.Class.forName(Class.java:247) [:1.6.0_26]
at org.infinispan.util.Util.loadClassStrict(Util.java:126)
at org.infinispan.query.backend.KeyTransformationHandler.stringToKey(KeyTransformationHandler.java:90)
at org.infinispan.query.impl.EntityLoader.load(EntityLoader.java:47)
at org.infinispan.query.impl.EntityLoader.load(EntityLoader.java:55)
at org.infinispan.query.impl.CacheQueryImpl.list(CacheQueryImpl.java:147)
at org.jboss.capedwarf.datastore.query.PreparedQueryImpl.asQueryResultList(PreparedQueryImpl.java:30)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months
[JBoss JIRA] Created: (ISPN-439) Define and implement configuration file backward and forward compatibility policy
by Vladimir Blagojevic (JIRA)
Define and implement configuration file backward and forward compatibility policy
---------------------------------------------------------------------------------
Key: ISPN-439
URL: https://jira.jboss.org/jira/browse/ISPN-439
Project: Infinispan
Issue Type: Task
Affects Versions: 4.1.0.BETA1
Reporter: Vladimir Blagojevic
Assignee: Manik Surtani
Fix For: 4.1.0.CR1
Backward compatibility:
Process any previous version configuration file from the same minor version. For example, Infinispan release 4.2 should process configuration file produced for version 4.1 without any configuration file changes or any other adjustments. For configuration options present in 4.2, but not in 4.1 assume default values. However, Infinispan version 5.0 is not required to process configuration files from previous major versions, i.e 4.0...4.x.
Forward compatibility.
Do not process any forward version configuration file. For example, Infinispan release 4.1, give configuration file input from any succeeding versions (i.e 4.2...4.x, 5.x) would simply fail outright with proper error message.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months
[JBoss JIRA] Created: (ISPN-1375) Tx lock should not be locked for writing as long as the latch is open during stress
by Jan Slezak (JIRA)
Tx lock should not be locked for writing as long as the latch is open during stress
-----------------------------------------------------------------------------------
Key: ISPN-1375
URL: https://issues.jboss.org/browse/ISPN-1375
Project: Infinispan
Issue Type: Bug
Components: Distributed Cache
Affects Versions: 5.0.0.FINAL
Environment: windows 2008 server / cluster / 40 nodes
Reporter: Jan Slezak
Assignee: Manik Surtani
Priority: Critical
2011-09-05 12:37:17,846 ERROR local -> dist buckets| RpcManagerImpl| ISPN000073: Unexpected error while replicating
java.lang.IllegalStateException: Tx lock should not be locked for writing as long as the latch is open
at org.infinispan.distribution.TransactionLoggerImpl.acquireLockForTx(TransactionLoggerImpl.java:303)
at org.infinispan.distribution.TransactionLoggerImpl.beforeCommand(TransactionLoggerImpl.java:185)
at org.infinispan.interceptors.DistTxInterceptor.visitPutKeyValueCommand(DistTxInterceptor.java:125)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:114)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:104)
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:64)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:61)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:274)
at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:71)
at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:62)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:181)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithWaitForBlocks(InboundInvocationHandlerImpl.java:195)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithRetry(InboundInvocationHandlerImpl.java:309)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:167)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommand(CommandAwareRpcDispatcher.java:165)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:144)
at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:577)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:488)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:364)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:770)
at org.jgroups.JChannel.up(JChannel.java:1484)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1074)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:263)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:189)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:908)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:246)
at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:575)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:294)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:703)
at org.jgroups.protocols.BARRIER.up(BARRIER.java:99)
at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:177)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:275)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:209)
at org.jgroups.protocols.Discovery.up(Discovery.java:293)
at org.jgroups.protocols.PING.up(PING.java:69)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1109)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1665)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1647)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2011-09-05 12:37:17,924 ERROR local -> dist buckets| tionContextInterceptor| ISPN000136: Execution error
org.infinispan.CacheException: java.lang.IllegalStateException: Tx lock should not be locked for writing as long as the latch is open
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:145)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:156)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:265)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:252)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:248)
at org.infinispan.interceptors.DistributionInterceptor.handleWriteCommand(DistributionInterceptor.java:432)
at org.infinispan.interceptors.DistributionInterceptor.visitPutKeyValueCommand(DistributionInterceptor.java:214)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.LockingInterceptor.visitPutKeyValueCommand(LockingInterceptor.java:294)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:214)
at org.infinispan.interceptors.TxInterceptor.visitPutKeyValueCommand(TxInterceptor.java:162)
at org.infinispan.interceptors.DistTxInterceptor.visitPutKeyValueCommand(DistTxInterceptor.java:129)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:114)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:104)
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:64)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:77)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:274)
at org.infinispan.CacheImpl.put(CacheImpl.java:515)
at org.infinispan.CacheSupport.put(CacheSupport.java:51)
at eu.ysoft.cache.cluster.bucket.IfspnBucketManager$BucketSynchronizer.run(IfspnBucketManager.java:223)
Caused by: java.lang.IllegalStateException: Tx lock should not be locked for writing as long as the latch is open
at org.infinispan.distribution.TransactionLoggerImpl.acquireLockForTx(TransactionLoggerImpl.java:303)
at org.infinispan.distribution.TransactionLoggerImpl.beforeCommand(TransactionLoggerImpl.java:185)
at org.infinispan.interceptors.DistTxInterceptor.visitPutKeyValueCommand(DistTxInterceptor.java:125)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:114)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:104)
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:64)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:61)
at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60)
at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:274)
at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:71)
at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:62)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:181)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithWaitForBlocks(InboundInvocationHandlerImpl.java:195)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithRetry(InboundInvocationHandlerImpl.java:309)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:167)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommand(CommandAwareRpcDispatcher.java:165)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:144)
at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:577)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:488)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:364)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:770)
at org.jgroups.JChannel.up(JChannel.java:1484)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1074)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:263)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:189)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:908)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:246)
at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:575)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:294)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:703)
at org.jgroups.protocols.BARRIER.up(BARRIER.java:99)
at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:177)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:275)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:209)
at org.jgroups.protocols.Discovery.up(Discovery.java:293)
at org.jgroups.protocols.PING.up(PING.java:69)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1109)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1665)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1647)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months