[
https://jira.jboss.org/browse/ISPN-696?page=com.atlassian.jira.plugin.sys...
]
Galder Zamarreño commented on ISPN-696:
---------------------------------------
I've gone and look at the commits and hudson.
The change came in at:
http://hudson.infinispan.org/hudson/job/Infinispan-4.2.x-JDK6-tcp/32/#sho...
That change seems to have fixed three tests from previous run:
http://hudson.infinispan.org/hudson/job/Infinispan-4.2.x-JDK6-tcp/org.inf...
as opposed to
http://hudson.infinispan.org/hudson/job/Infinispan-4.2.x-JDK6-tcp/org.inf...
Funnily enough, I've run these state transfer tests after moving register code to
start() and it looks fine.
I'm gonna run the whole testsuite again locally and see what it comes back with. If it
looks good, I'll put it back and Manik can double check it when he gets back.
NPE during state transfer after restarting cache
------------------------------------------------
Key: ISPN-696
URL:
https://jira.jboss.org/browse/ISPN-696
Project: Infinispan
Issue Type: Bug
Components: State transfer
Affects Versions: 4.2.0.ALPHA2
Reporter: Paul Ferraro
Assignee: Galder Zamarreño
When a named cache is restarted, and fetchInMemoryState = true, the state transfer
initiated in StateTransferManager.start() causes a NPE, because the cache's
ComponentRegistry does not get reregistered with the GlobalComponentRegistry.
The NPE comes from InboundInvocationHandlerImpl:
public void applyState(String cacheName, InputStream i) throws StateTransferException
{
getStateTransferManager(cacheName).applyState(i);
}
private StateTransferManager getStateTransferManager(String cacheName) throws
StateTransferException {
ComponentRegistry cr = gcr.getNamedComponentRegistry(cacheName);
if (cr == null) {
return null;
}
return cr.getComponent(StateTransferManager.class);
}
A quick glance at ComponentRegistry indicates that the registry is registered with the
GlobalComponentRegistry in the constructor and unregistered in stop(). Because of the
unbalanced logic, when the stopped component registry is restarted, it never gets
re-registered with the GlobalComponentRegistry, hence the NPE during state transfer the
second time around.
This specific regression was introduced in revision 2384. Rolling back
ComponentRegistry.java to revision 2273 resolves the issue.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira