title: Java Application- issue with new Autopilot laptops and TCP/IP over VPN
body: <p>We are having an issue with newer laptops connecting via TCP/IP over the Cisco VPN to the application</p>
  <p>The newer laptops show this error message &quot;TCP/IP network may not be configured.&quot; while launching the application. We have spoken with the Symantec endpoint IT folks and Network folks and have come to the conclusion that neither of these are causing the issue we are seeing.</p>
  <p>Over the VPN you can telnet to the ip,  ping the ip, perform a tracert and it completes.   The older laptops don’t seem to have this issue with the VPN.</p>
  <p>The newer HP Probooks  and Lenovo T14, T15 laptops do.  Based on working with the IT department it seems to be  a JAVA exception issue with the Java application when working over the VPN.</p>
  <p>If the new computer launches the application in the office not over the VPN  it works fine only when remote using the Cisco VPN do we see this error.</p>
  <p>Why Java application is rejecting TCP/IP when launched over the VPN  and not in the office?</p>
  <p>Here is my code:</p>
  <pre><code>public void connect(String userid, String pswd) throws ProcessConnectorException, InstalledSystemsException {
  
          // Start the server socket
          // Initialize the Globel Database
  
          setConnectionStatus(RMIConstants.CONNECTSTART);
  
          try {
  
            // get the unique id and register
  
            m_id = RMIFormat.newID();
  
            String s = RMIFormat.formatURL(getTID(),m_id+&quot;NetViewServerObj&quot;);
  
            NetViewServerObj rmi = new NetViewServerObj(this);
  
            Naming.rebind(s,rmi);
  
  
            String s2 = RMIFormat.formatURL(getTID(),m_id+&quot;NetViewServerObj2&quot;);
  
            NetViewServerObj2 rmi2 = new NetViewServerObj2(this);
  
            Naming.rebind(s2,rmi2);
  
              LogEvent ev = new LogEvent(this, &quot;RMI Bind: &quot;+s);
  
              LogSupport.fireLogEvent(ev);
  
  //          TraceStream.println(this,&quot;RMI Bind: &quot;+s,5);
                
                      StringBuffer buf = new StringBuffer();
  
  //          String[] add = Sqid.getProxyAddresss();
  
                  buf.append( getTID()+&quot; &quot;+
  
                              userid+&quot; &quot;+
  
                              pswd+&quot; &quot;+
  
                                      //AdminDefaultsDlg.getUserID()+&quot; &quot;+
  
                                      //AdminDefaultsDlg.getPswd()+&quot; &quot;+
  
                                      m_id+&quot; &quot;+
  
                                      getStrType()+&quot; &quot;+
  
                                      Sqid.getOtherOptions() );                          
  
              String key=null;
  
              if ( m_systemViewType == NetViewConst.SYSTEMVIEW ) {
  
                  key = m_is.getKey(getStrType());
  
              } else
  
              if ( m_systemViewType == NetViewConst.CUTTHROUGH ) {
  
                  key = m_is.getCutThroughKeyName();
  
              } else
  
              if ( m_systemViewType == NetViewConst.CMDBLDR ) {
  
                  key = m_is.getCommandBuilderKeyName();
  
              }       
  
              m_process = new ProccessConnector(this);
  
              if ( m_systemViewType == NetViewConst.CMDBLDR ) {
  
                  m_process.startCommandBuilder( m_ca, getTID(), userid , pswd, m_id );
  
              } else if ( m_systemViewType == NetViewConst.CUTTHROUGH ) {
  
                  m_process.startCutThrough( m_ca, getTID(), userid , pswd, m_id );
  
              } else {
  
                  m_process.startThread( key, getStrType(), m_sysId.getStrType() , m_ca, buf.toString() );
  
              }
  
                  } catch (RemoteException e) {
  
  
                      String title = &quot;Connection Denied&quot;;
  
              String msg = &quot;TCP/IP network may not be configured.&quot;;
  
              ShowDialogEvent.fireCriticalMessage(title, msg);
  
              ErrorEvent ev = new ErrorEvent(this, &quot;Remote Exception: &quot;+e);
  
              LogSupport.fireLogEvent(ev);
  
  //          System.out.println(&quot;Remote Exception: &quot;+e);
  
              setConnectionStatus(RMIConstants.NOCONNECTION);
  
                  } catch (MalformedURLException e2) {
  
              ErrorEvent ev = new ErrorEvent(this, &quot;Malformed URL Exception: &quot;+e2);
  
              LogSupport.fireLogEvent(ev);
  
  //          System.out.println(&quot;Malformed URL Exception: &quot;+e2);
  
              setConnectionStatus(RMIConstants.NOCONNECTION);
  
                  } catch (ProcessConnectorException e3) {
  
                      if ( e3.getMessage().equals(&quot;CANCLED BY HACK CODE&quot;) ) {
  
                  setConnectionStatus(RMIConstants.NOCONNECTION);
  
              } else throw e3;
          }
      }
  </code></pre>
  <p><strong>Error:</strong></p>
  <pre><code>Set Connection Status event recieved. Status=6
  StateChanged-inRep: Status=6 M_IsCommented=false
  Remote Exception: java.rmi.ConnectIOException: Exception creating connection to: 10.x.x.xx; nested exception is:
          java.net.SocketException: Permission denied: connect
  </code></pre>