diff --git a/router/java/src/org/cybergarage/upnp/ControlPoint.java b/router/java/src/org/cybergarage/upnp/ControlPoint.java index f1d56f44bc303a301471ba87a24e11be5ecbe65b..d66209f974fe6382fd357f2f0be0a09fee041c9e 100644 --- a/router/java/src/org/cybergarage/upnp/ControlPoint.java +++ b/router/java/src/org/cybergarage/upnp/ControlPoint.java @@ -276,7 +276,14 @@ public class ControlPoint implements HTTPRequestListener { int nRoots = devNodeList.size(); for (int n=0; n<nRoots; n++) { - Node rootNode = devNodeList.getNode(n); + // AIOOB was thrown from here, maybe would be better to + // copy the list before traversal? + Node rootNode; + try { + rootNode = devNodeList.getNode(n); + } catch (ArrayIndexOutOfBoundsException aioob) { + break; + } Device dev = getDevice(rootNode); if (dev == null) continue;