From f8648ff4c43bd4ad502c519af3ff93e848e1fe2a Mon Sep 17 00:00:00 2001 From: zab2 <zab2@mail.i2p> Date: Fri, 28 Jun 2013 14:56:55 +0000 Subject: [PATCH] Explicitly check the type of I2PSocketManager --- .../src/net/i2p/client/streaming/I2PSocketManagerFactory.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java index b7e5cfb61e..e7990f28f6 100644 --- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java +++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java @@ -180,7 +180,9 @@ public class I2PSocketManagerFactory { I2PAppContext context = I2PAppContext.getGlobalContext(); String classname = opts.getProperty(PROP_MANAGER, DEFAULT_MANAGER); try { - Class cls = Class.forName(classname); + Class<?> cls = Class.forName(classname); + if (!I2PSocketManager.class.isAssignableFrom(cls)) + throw new IllegalArgumentException(classname + " is not an I2PSocketManager"); Constructor<I2PSocketManager> con = (Constructor<I2PSocketManager>) cls.getConstructor(new Class[] {I2PAppContext.class, I2PSession.class, Properties.class, String.class}); I2PSocketManager mgr = con.newInstance(new Object[] {context, session, opts, name}); -- GitLab