[jboss-jira] [JBoss JIRA] Updated: (JBCACHE-1362) BuddyFqnTransformer.getActualFqn() fails if the passed FQN is the buddy backup tree root

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Tue Jun 10 17:18:32 EDT 2008


     [ http://jira.jboss.com/jira/browse/JBCACHE-1362?page=all ]

Brian Stansberry updated JBCACHE-1362:
--------------------------------------

    Assignee: Manik Surtani  (was: Brian Stansberry)

Removing myself as assignee on this one, as I'm not sure of the intended behavior of the relevant methods.

Here's the failure I see now, after fixing isDeadBackupFqn():

Caused by: java.lang.IllegalArgumentException: fromIndex(2) > toIndex(1)
	at java.util.SubList.<init>(AbstractList.java:707)
	at java.util.RandomAccessSubList.<init>(AbstractList.java:861)
	at java.util.AbstractList.subList(AbstractList.java:570)
	at org.jboss.cache.Fqn.getSubFqn(Fqn.java:391)
	at org.jboss.cache.buddyreplication.BuddyFqnTransformer.getActualFqn(BuddyFqnTransformer.java:283)

So, not sure what getActualFqn() should return if passed the FQN of the buddy backup region root.  Fqn.ROOT?

Looks like BuddyFqnTransformer.getBackupRootFromFqn(fqn) will have similar issues.

> BuddyFqnTransformer.getActualFqn() fails if the passed FQN is the buddy backup tree root
> ----------------------------------------------------------------------------------------
>
>                 Key: JBCACHE-1362
>                 URL: http://jira.jboss.com/jira/browse/JBCACHE-1362
>             Project: JBoss Cache
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Buddy Replication
>    Affects Versions: 2.2.0.CR3
>            Reporter: Brian Stansberry
>         Assigned To: Manik Surtani
>             Fix For: 2.2.0.GA
>
>
> This:
> Node buddyRoot = getCache().getRoot().getChild(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN)
> fails with this:
> Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
> 	at java.util.ArrayList.RangeCheck(ArrayList.java:546)
> 	at java.util.ArrayList.get(ArrayList.java:321)
> 	at org.jboss.cache.Fqn.get(Fqn.java:409)
> 	at org.jboss.cache.buddyreplication.BuddyFqnTransformer.isDeadBackupFqn(BuddyFqnTransformer.java:296)
> 	at org.jboss.cache.buddyreplication.BuddyFqnTransformer.getActualFqn(BuddyFqnTransformer.java:283)
> 	at org.jboss.cache.interceptors.BuddyRegionAwareEvictionInterceptor.getRegion(BuddyRegionAwareEvictionInterceptor.java:25)
> 	at org.jboss.cache.interceptors.EvictionInterceptor.handleGetNodeOrDataCommands(EvictionInterceptor.java:168)
> 	at org.jboss.cache.interceptors.EvictionInterceptor.visitGetNodeCommand(EvictionInterceptor.java:153)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.DataGravitatorInterceptor.handleGetMethod(DataGravitatorInterceptor.java:195)
> 	at org.jboss.cache.interceptors.DataGravitatorInterceptor.visitGetNodeCommand(DataGravitatorInterceptor.java:115)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
> 	at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:85)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.CacheLoaderInterceptor.visitGetNodeCommand(CacheLoaderInterceptor.java:149)
> 	at org.jboss.cache.interceptors.ActivationInterceptor.visitGetNodeCommand(ActivationInterceptor.java:109)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.PessimisticLockInterceptor.handleGetNodeCommand(PessimisticLockInterceptor.java:317)
> 	at org.jboss.cache.interceptors.base.PostProcessingCommandInterceptor.visitGetNodeCommand(PostProcessingCommandInterceptor.java:246)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
> 	at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:85)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
> 	at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:85)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:266)
> 	at org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:253)
> 	at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:85)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
> 	at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:85)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
> 	at org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:158)
> 	at org.jboss.cache.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:108)
> 	at org.jboss.cache.commands.AbstractVisitor.visitGetNodeCommand(AbstractVisitor.java:85)
> 	at org.jboss.cache.commands.read.GetNodeCommand.acceptVisitor(GetNodeCommand.java:42)
> 	at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:215)
> 	at org.jboss.cache.invocation.CacheInvocationDelegate.getNode(CacheInvocationDelegate.java:409)
> 	at org.jboss.cache.invocation.NodeInvocationDelegate.getChild(NodeInvocationDelegate.java:329)
> 	at org.jboss.test.cluster.web.CacheHelper.getBuddyBackupRoots(CacheHelper.java:286)
> 	at org.jboss.test.cluster.web.CacheHelper.getSessionIds(CacheHelper.java:151)
> 	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
> 	... 41 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list