< prev index next >

src/share/classes/com/sun/tools/jdi/SocketListeningConnector.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 27,36 **** --- 27,37 ---- import com.sun.jdi.connect.*; import com.sun.jdi.connect.spi.*; import java.util.Map; import java.util.HashMap; import java.io.IOException; + import com.sun.jdi.connect.spi.TransportService; /* * An ListeningConnector that uses the SocketTransportService */ public class SocketListeningConnector extends GenericListeningConnector {
*** 90,95 **** --- 91,113 ---- } public String description() { return getString("socket_listening.description"); } + + // If the port is auto detected update the argument map with the bound port number. + @Override + protected void updateArgumentMapIfRequired( + Map<String, ? extends Connector.Argument> args, TransportService.ListenKey listener) { + if (isWildcardPort(args)) { + String[] address = listener.address().split(":"); + if (address.length > 1) { + args.get(ARG_PORT).setValue(address[1]); + } + } + } + + private boolean isWildcardPort(Map<String, ? extends Connector.Argument> args) { + String port = args.get(ARG_PORT).value(); + return port.isEmpty() || Integer.valueOf(port) == 0; + } }
< prev index next >