thank you for the info but everything I found there tells me that the
problem is related
to some reference in the RMI server that is not unbind or unexported
properly.
I tried the following code in the RepositoryStartupServlet to see if
there were some remote object that weren't unbind or unexported but I
couldn't find any,
I inserted this line after the last line of code in the method
unregisterRMI():
try {
String[] names = registry.list();
log.info("names list lenght: " + names.length);
for(int i = 0; i < names.length; i++){
try{
log.info("trying to unbind: " + names[i]);
registry.unbind(names[i]);
log.info("trying to unexport remote obj with
name: " + names[i]);
Remote remoteobj = (Remote)
registry.lookup(names[i]);
UnicastRemoteObject.unexportObject(remoteobj,
true);
} catch(Exception ex) {
log.error("Exception " + ex);
}
}
} catch (RemoteException re) {
log.error("Remote Exception getting list: " + re);
}
but the list is empty!
so at this moment I don't know whatelse to try...
is there any other place in the code where are some objects being bind?
thanks one more time!
cheers,
bruno coelho
On Sep 22, 2009, at 4:58 PM, Sébastien Launay wrote:
Le 22/09/2009 17:29, Bruno Coelho a écrit :
"RMI Reaper" prio=5 tid=0x0102cfe0 nid=0x8d2400 in Object.wait()
[0xb1011000..0xb1011d90]
at java.lang.Object.wait(Native Method)
- waiting on <0x29adfdd8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
- locked <0x29adfdd8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:336)
at java.lang.Thread.run(Thread.java:613)
This is the only user thread as it does not contains the "daemon"
token.
I don't know well how RMI and Jackrabbit works but the RMI connection
appears to not be closed leading to this thread still alive.
After googling, i find more information here:
http://www.nabble.com/Correct-way-of-avoiding-a-shutdown-delay-caused-by-the-Reaper-thread-td5661918.html
--
Sébastien Launay