From 8aeca5b433b74a0ea7f0c43a0e5050b833034837 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 24 Jul 2013 14:24:29 +0000 Subject: [PATCH] catch NPE in main when no state table available --- router/java/src/net/i2p/router/transport/UPnP.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/UPnP.java b/router/java/src/net/i2p/router/transport/UPnP.java index 7030ffcad8..9d38230e1e 100644 --- a/router/java/src/net/i2p/router/transport/UPnP.java +++ b/router/java/src/net/i2p/router/transport/UPnP.java @@ -394,7 +394,15 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener { /** debug only */ private static void listStateTable(Service serv, StringBuilder sb) { - ServiceStateTable table = serv.getServiceStateTable(); + ServiceStateTable table; + try { + table = serv.getServiceStateTable(); + } catch (Exception e) { + // getSCPDNode() returns null, + // NPE at org.cybergarage.upnp.Service.getServiceStateTable(Service.java:526) + sb.append(" : no state"); + return; + } sb.append("<ul><small>"); for(int i=0; i<table.size(); i++) { StateVariable current = table.getStateVariable(i); @@ -928,7 +936,7 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener { I2PAppContext ctx = new I2PAppContext(props); UPnP upnp = new UPnP(ctx); ControlPoint cp = new ControlPoint(); - System.out.println("Searching for up&p devices:"); + System.out.println("Searching for UPnP devices:"); cp.start(); cp.search(); Thread.sleep(10000); -- GitLab