diff --git a/src/org/redkale/net/sncp/Sncp.java b/src/org/redkale/net/sncp/Sncp.java index 6a223e5d0..b47b222bd 100644 --- a/src/org/redkale/net/sncp/Sncp.java +++ b/src/org/redkale/net/sncp/Sncp.java @@ -199,6 +199,13 @@ public abstract class Sncp { final String transportsDesc = Type.getDescriptor(Transport[].class); ClassLoader loader = Sncp.class.getClassLoader(); String newDynName = supDynName.substring(0, supDynName.lastIndexOf('/') + 1) + LOCALPREFIX + serviceClass.getSimpleName(); + if (!name.isEmpty()) { + boolean normal = true; + for (char ch : name.toCharArray()) { + if (!((ch >= '0' && ch <= '9') || ch == '_' || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))) normal = false; + } + newDynName += "_" + (normal ? name : hash(name)); + } try { return (Class) Class.forName(newDynName.replace('/', '.')); } catch (Exception ex) {