Bugzilla – Bug 5826
ClassNotFoundException in recovery of subscription resources
Last modified: 2008-04-18 17:50:13
You need to log in before you can comment on or make changes to this bug.
If i shutdown a container in the middle of processing of jobs with staging and restart it ClassNotFoundException's show up when subscription resources of RFT transfer resources are about to be loaded from disk. It seems that RFT resumes an interrupted transfer after restarting the container and tries to notify Gram (who submitted the staging request) when a transfer resource changes it's state. In Gram the class StagingListener (implements NotifyCallback) is responsible for catching RFT's notifications. But this class cannot be found. I talked to Tom about this and it might be that a wrong ClassLoader is used. This issue didn't show up in 4.0.x. Maybe because all jar files are located in $GLOBUS_LOCATION/lib there Here's a stack trace: 2008-02-02T19:59:28.783-06:00 ERROR notification.SimpleSubscription [WorkThread-211,load:137] [JWSCORE-154] Failed to load the resource java.lang.ClassNotFoundException: org.globus.exec.service.exec.processing.StagingListener at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at org.globus.wsrf.impl.security.util.FixedObjectInputStream.resolveClass(FixedObjectInputStream.java:37) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) at org.globus.wsrf.impl.notification.PersistentSubscription.load(PersistentSubscription.java:133) at org.globus.wsrf.impl.notification.PersistentSubscription.load(PersistentSubscription.java:104) at org.globus.wsrf.impl.ResourceHomeImpl.createNewInstanceAndLoad(ResourceHomeImpl.java:276) at org.globus.wsrf.impl.ResourceHomeImpl.get(ResourceHomeImpl.java:314) at org.globus.wsrf.impl.ResourceHomeImpl.find(ResourceHomeImpl.java:299) at org.globus.wsrf.impl.SimpleSubscriptionTopicListener.getSubscription(SimpleSubscriptionTopicListener.java:155) at org.globus.wsrf.impl.SimpleSubscriptionTopicListener.topicChanged(SimpleSubscriptionTopicListener.java:108) at org.globus.wsrf.impl.SimpleTopic.topicChanged(SimpleTopic.java:205) at org.globus.wsrf.impl.SimpleTopic.notify(SimpleTopic.java:112) at org.globus.wsrf.impl.ResourcePropertyTopic.fireNotification(ResourcePropertyTopic.java:213) at org.globus.wsrf.impl.ResourcePropertyTopic.set(ResourcePropertyTopic.java:241) at org.globus.transfer.reliable.service.TransferWork.setRequestStatus(TransferWork.java:244) at org.globus.transfer.reliable.service.TransferWork.statusChanged(TransferWork.java:194) at org.globus.transfer.reliable.service.TransferWork.processStates(TransferWork.java:519) at org.globus.transfer.reliable.service.TransferWork.run(TransferWork.java:747) at org.globus.wsrf.impl.work.WorkManagerImpl$WorkWrapper.run(WorkManagerImpl.java:376) at java.lang.Thread.run(Thread.java:595)
*** Bug 5941 has been marked as a duplicate of this bug. ***
Fix committed to trunk. Based on some initial test things look good but will hold off on closing this one out for now.