From: Steven Pisarski Date: Wed, 6 May 2015 17:54:38 +0000 (-0600) Subject: Complete PDP connection refactor. X-Git-Tag: release/lithium~16^2~4 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=50b2255123e82bca3413b37675e6573be02748d8;p=packetcable.git Complete PDP connection refactor. Fixed error handling in run() and moved the addition of new state managers up to the super. Change-Id: Ia751f131d690cfccbf590d728e0eb2863300ed42 Signed-off-by: Steven Pisarski --- diff --git a/packetcable-driver/src/main/java/org/pcmm/PCMMPdpConnection.java b/packetcable-driver/src/main/java/org/pcmm/PCMMPdpConnection.java index c14a4d9..5c50667 100644 --- a/packetcable-driver/src/main/java/org/pcmm/PCMMPdpConnection.java +++ b/packetcable-driver/src/main/java/org/pcmm/PCMMPdpConnection.java @@ -6,7 +6,6 @@ package org.pcmm; import org.umu.cops.prpdp.COPSPdpConnection; import org.umu.cops.prpdp.COPSPdpReqStateMan; -import org.umu.cops.stack.COPSHandle; import org.umu.cops.stack.COPSPepId; import org.umu.cops.stack.COPSReqMsg; @@ -37,10 +36,6 @@ public class PCMMPdpConnection extends COPSPdpConnection { _thisProcess = process; } - public void addStateMan(final COPSHandle handle, final PCMMPdpReqStateMan man) { - _managerMap.put(handle, man); - } - /** * Returns an instance of a COPSPdpReqStateMan * @param reqMsg - the request on which to create the state manager diff --git a/packetcable-driver/src/main/java/org/umu/cops/prpdp/COPSPdpConnection.java b/packetcable-driver/src/main/java/org/umu/cops/prpdp/COPSPdpConnection.java index bb550f7..2248a9e 100644 --- a/packetcable-driver/src/main/java/org/umu/cops/prpdp/COPSPdpConnection.java +++ b/packetcable-driver/src/main/java/org/umu/cops/prpdp/COPSPdpConnection.java @@ -76,14 +76,18 @@ public class COPSPdpConnection extends COPSConnection { _managerMap = new ConcurrentHashMap<>(); } + public void addStateMan(final COPSHandle handle, final COPSPdpReqStateMan man) { + _managerMap.put(handle, man); + } + /** * Main loop */ public void run () { Date lastSendKa = new Date(); Date lastRecKa = new Date(); - try { - while (!_sock.isClosed()) { + while (!_sock.isClosed()) { + try { if (_sock.getInputStream().available() != 0) { processMessage(_sock); lastRecKa = new Date(); @@ -115,17 +119,18 @@ public class COPSPdpConnection extends COPSConnection { try { Thread.sleep(500); - } catch (Exception e) { - logger.error("Exception thrown while sleeping", e); + } catch (InterruptedException e) { + logger.warn("Thread interrupted, shutting down", e); + break; } - + } catch (Exception e) { + logger.error("Error while processing socket messages, continue processing", e); } - } catch (Exception e) { - logger.error("Error while processing socket messages", e); } // connection closed by server try { + logger.info("Closing socket"); _sock.close(); } catch (IOException e) { logger.error("Error closing socket", e); @@ -133,6 +138,7 @@ public class COPSPdpConnection extends COPSConnection { // Notify all Request State Managers try { + logger.info("Notifying state managers that PDP connection is closing"); notifyCloseAllReqStateMan(); } catch (COPSException e) { logger.error("Error closing state managers");