JavaCaeLa / JCL

Apache License 2.0
6 stars 5 forks source link

Bug ao desconectar Host pela segunda vez usando o mesmo User #91

Open leoscimino opened 6 years ago

leoscimino commented 6 years ago

Implementei o método disconnect no Dashboard para desconectar um Host do cluster. Porém, em uma situação está ocorrendo um bug que ainda não consegui descobrir o motivo. Suponha o seguinte cenário: tenho um cluster montado (1 Server e 2 Hosts) e utilizo o método implementado para desconectar o Host X. Após isso, o Host X é desconectado e é exibido no console do server que o Host foi desregistrado. Posteriormente, registro novamente o Host X no cluster. Ele é registrado normalmente no console do Server. Porém, ao chamar o método para desconectar o Host X, é disparada a exceção abaixo. Reparei que ao reiniciar o Dashboard (fechar a execução atual e abrir outra execução), o erro não ocorre. Por isso, creio que pode ser alguma coisa do User que não está atualizando e que preciso forçar a atualização. André, você já pegou algum cenário parecido ou tem alguma ideia do que pode ser?

obs: a linha 45 do JCL_DasbhardFacadeImpl é: JCL_message_bool msgR = (JCL_message_bool) controlConnector.sendReceiveG(msg, port);

error in sendreceiveG method java.io.IOException: Conexão fechada pela outra ponta at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:65) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) at implementations.dm_kernel.ConnectorImpl.sendReceiveG(ConnectorImpl.java:220) at implementations.dm_kernel.DashboardUser.JCL_DashboardFacadeImpl.removeHost(JCL_DashboardFacadeImpl.java:45) at model.ModelJCLHost.remove(ModelJCLHost.java:19) at controller.ControllerDashboard.removeJCLHost(ControllerDashboard.java:125) at view.Dashboard$9.actionPerformed(Dashboard.java:260) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.Component.processMouseEvent(Component.java:6533) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)problem in JCL Dashboardfacade removeHost(Device device)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)