Scott,
Thanks for your reply. I have found the problem and it appears to be with our firewall
situation. Well I found that connections initiated from server were being denied since
our clients are behind firewall themselves. Opening up a client box did resolve this
issue.
But this is not an option for us unless we know which ports on the client the server
is going to connect to. Can you suggest how to achieve notifications from server in a
situation where client is behind a firewall.
I am posting the thread dumps from the run that hangs.
I hope you can throw some light on how to resolve this issue or some workaround.
Thread dump follow:
CLIENT
--
sun.applet.AppletViewer at localhost:10831 (Suspended)
System Thread [Finalizer] (Suspended)
Object.wait(long) line: not available [native method]
ReferenceQueue.remove(long) line: 111
ReferenceQueue.remove() line: 127
Finalizer$FinalizerThread.run() line: 159
System Thread [Reference Handler] (Suspended)
Object.wait(long) line: not available [native method]
Reference$Lock(Object).wait() line: 426
Reference$ReferenceHandler.run() line: 113
System Thread [Signal Dispatcher] (Suspended)
Thread [AWT-Shutdown] (Suspended)
Object.wait(long) line: not available [native method]
Object.wait() line: 426
AWTAutoShutdown.run() line: 259
Thread.run() line: 536
Thread [AWT-Windows] (Suspended)
WToolkit.eventLoop() line: not available [native method]
WToolkit.run() line: 253
Thread.run() line: 536
Thread [Java2D Disposer] (Suspended)
Object.wait(long) line: not available [native method]
ReferenceQueue.remove(long) line: 111
ReferenceQueue.remove() line: 127
Disposer.run() line: 97
Thread.run() line: 536
Thread [AWT-EventQueue-0] (Suspended)
Object.wait(long) line: not available [native method]
EventQueue(Object).wait() line: 426
EventQueue.getNextEvent() line: 333
EventDispatchThread.pumpOneEventForHierarchy(int, Component) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional,
Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 144
EventDispatchThread.pumpEvents(Conditional) line: 136
EventDispatchThread.run() line: 99
Thread [thread applet-iTree.iTree.class] (Suspended)
Object.wait(long) line: not available [native method]
Thread.join(long) line: 1008
Thread.join() line: 1061
AppletViewerPanel(AppletPanel).run() line: 328
Thread.run() line: 536
Thread [DestroyJavaVM] (Suspended)
Thread [Thread-2] (Suspended)
SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int)
line: not available [native method]
SocketInputStream.read(byte[], int, int) line: 129
BufferedInputStream.fill() line: 183
BufferedInputStream.read() line: 201
DataInputStream.readByte() line: 276
StreamRemoteCall.executeCall() line: 189
UnicastRef2(UnicastRef).invoke(Remote, Method, Object[], long) line:
133
JRMPInvoker_Stub.invoke(Invocation) line: not available
JRMPInvokerProxy.invoke(Invocation) line: 135
InvokerInterceptor.invoke(Invocation) line: 96
InvokerAdaptorClientInterceptor.invoke(Invocation) line: 58
SecurityInterceptor.invoke(Invocation) line: 45
ClientMethodInterceptor.invoke(Invocation) line: 55
ClientContainer.invoke(Object, Method, Object[]) line: 85
$Proxy0.createMBean(String, ObjectName, Object[], String[]) line: not
available
RMIConnectorImpl.createMBean(String, ObjectName, Object[], String[])
line: 230
RMIClientNotificationListener(ClientNotificationListener).createListener(RemoteMBeanServer,
String, Object[], String[]) line: 73
RMIClientNotificationListener.(ObjectName, NotificationListener,
Object, NotificationFilter, RemoteMBeanServer) line: 48
RMIConnectorImpl.addNotificationListener(ObjectName,
NotificationListener, NotificationFilter, Object) line: 446
MBeanUtil.registerListener(MBeanServer, ObjectName,
NotificationListener) line: 237
ITreeMBeanService.registerListener(NotificationListener) line: 70
ITreeSvcProxy.registerListener(ITreeNotificationListener) line: 95
DataLoadingThread.(DataManager) line: 41
DataManager.() line: 36