{"record":{"id":"22b6e2ab69df4de0","repo":"aeron-io/aeron","slug":"search-address-string-is-null-or-empty","errorCode":null,"errorMessage":"search address string is null or empty","messagePattern":"search address string is null or empty","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"aeron-driver/src/main/java/io/aeron/driver/media/InterfaceSearchAddress.java","lineNumber":131,"sourceCode":"                    .append(ifc.isLoopback())\n                    .append(\", state: \")\n                    .append(ifc.isUp() ? \"UP\" : \"DOWN\");\n            }\n        }\n\n        return builder.toString();\n    }\n\n    static InterfaceSearchAddress wildcard()\n    {\n        return WILDCARD;\n    }\n\n    static InterfaceSearchAddress parse(final String addressAndPort) throws UnknownHostException\n    {\n        if (Strings.isEmpty(addressAndPort))\n        {\n            throw new IllegalArgumentException(\"search address string is null or empty\");\n        }\n\n        int slashIndex = -1;\n        int colonIndex = -1;\n        int rightAngleBraceIndex = -1;\n\n        for (int i = 0, length = addressAndPort.length(); i < length; i++)\n        {\n            switch (addressAndPort.charAt(i))\n            {\n                case '/':\n                    slashIndex = i;\n                    break;\n\n                case ':':\n                    colonIndex = i;\n                    break;\n","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/aeron-io/aeron/blob/6d60124e15e35c11b49ba2e3c2c2858a09a18803/aeron-driver/src/main/java/io/aeron/driver/media/InterfaceSearchAddress.java#L113-L149","documentation":"Thrown by InterfaceSearchAddress.parse when the string supplied to define an interface search address is null or empty. Parse expects a non-empty 'address[:port][/subnet]' spec. It is an immediate input-validation failure before any parsing of delimiters.","triggerScenarios":"Passing a null or empty string to InterfaceSearchAddress.parse(String addressAndPort), typically from driver configuration where the interface setting is unset or blank.","commonSituations":"Missing aeron.interface or similar config key; empty environment variable or system property substituted into the URI; config file with 'interface=' left blank.","solutions":["Provide a valid interface search address string such as '127.0.0.1:0' or '192.168.1.1/24'","Check the config source (system property, env var, channel URI) actually has a value before passing it to parse","Trim whitespace-only strings, which Strings.isEmpty may also flag or which will otherwise fail later parsing"],"exampleFix":"// before\nString iface = System.getProperty(\"aeron.interface\");\nInterfaceSearchAddress.parse(iface);\n// after\nString iface = System.getProperty(\"aeron.interface\", \"127.0.0.1:0\");\nif (iface != null && !iface.trim().isEmpty()) { InterfaceSearchAddress.parse(iface.trim()); }","handlingStrategy":"validation","validationCode":"if (addressAndPort == null || addressAndPort.trim().isEmpty()) {\n    throw new IllegalArgumentException(\"interface address must be non-empty, e.g. 127.0.0.1:0\");\n}","typeGuard":"static boolean isNonEmpty(String s) { return s != null && !s.trim().isEmpty(); }","tryCatchPattern":"try {\n    InterfaceSearchAddress.parse(cfg);\n} catch (IllegalArgumentException e) {\n    if (\"search address string is null or empty\".equals(e.getMessage())) {\n        // use default config value\n    } else { throw e; }\n}","preventionTips":["Set explicit defaults for interface config keys instead of relying on possibly-empty env/properties","Trim and check config strings before feeding them into driver setup","Fail config loading early with clear messages when required keys are blank"],"tags":["validation","aeron","configuration","empty-string"],"backgroundTag":"empty-required-field","analyzedSha":"6d60124e15e35c11b49ba2e3c2c2858a09a18803","analyzedAt":"2026-09-12T11:17:07.683Z","contentChangedAt":"2026-09-12T11:17:07.683Z","schemaVersion":2},"datasetVersion":"2026-09-19T12:17:13.211Z"}