protected static Pair<Optional<Protocol>, Integer> parseProtocol( final String protocolText, final boolean vpc) { Protocol protocol = null; try { protocol = Protocol.fromString(protocolText); return Pair.lopair(protocol, protocol.getNumber()); } catch (final IllegalArgumentException e) { Integer protocolNumber = protocol != null ? protocol.getNumber() : Integer.parseInt(protocolText); if (vpc || ExtendedNetworkingConfiguration.isProtocolInExceptionList(protocolNumber)) { return Pair.lopair(protocol, protocolNumber); } else { throw new IllegalArgumentException("Invalid protocol " + protocolText, e); } } }