Unable to produce Offline Symbol Table due to connection failure

Issue #425 resolved
Mark Bickford created an issue

My office uses an authenticating proxy to access the Internet. With Illuminated Cloud, I am able to make the initial connection and bring down classes, etc., but the process to create the Offline Symbol Table fails with the dialog boxes showing as follows:

  • Logging in as ...
  • Loading installed package namespaces
  • Loading system classes
  • Connect to cs1.salesforce.com:443 [cs1.salesforce.com/136.146.208.91] failed: Connection timed out: connect

Is that latter connection using some other path to connect that the initial connection is not?

As a result of this, I am unable to resolve the "Offline Symbol Table must be generated" and "Need to specify an Illuminated Cloud SDK" errors.

Comments (7)

  1. Scott Wells repo owner

    Mark, it shouldn't be using a separate connection path for OST generation vs. metadata retrieval. Can you elaborate on how your proxy settings are configured? Are you trying to use auto-proxy configuration or is it manually configured? Do you mind looking in idea.log (Help>Show Log in Finder/Explorer) to see if there's a stack trace associated with the connection time out? That will tell me the exact call that's failing so I can make 100% sure that it's configuring itself according to the proxy settings.

  2. Mark Bickford reporter

    Proxy settings are Auto-detect with a PAC file; I am able to successfully test a connection to https://cs1.salesforce.com.

    Here is the log output with the stack trace:

    2016-10-11 11:26:28,603 [  46272]   INFO - y.ReflectionServiceFactoryBean - Creating Service {urn:partner.soap.sforce.com}PartnerService from class com.sforce.soap.partner.PartnerApi 
    2016-10-11 11:26:32,168 [  49837]   INFO - y.ReflectionServiceFactoryBean - Creating Service {urn:partner.soap.sforce.com}PartnerService from class com.sforce.soap.partner.PartnerApi 
    2016-10-11 11:26:33,487 [  51156]   INFO - ct.OfflineSymbolTableGenerator - Starting activity Loading installed package namespaces with 1 steps. 
    2016-10-11 11:26:33,496 [  51165]   INFO - y.ReflectionServiceFactoryBean - Creating Service {http://soap.sforce.com/2006/04/metadata}MetadataService from class com.sforce.soap.metadata.MetadataApi 
    2016-10-11 11:26:42,315 [  59984]   INFO - ct.OfflineSymbolTableGenerator - Completed activity Loading installed package namespaces in 8827 ms. 
    2016-10-11 11:26:42,316 [  59985]   INFO - ct.OfflineSymbolTableGenerator - Starting activity Initializing local symbols with 1 steps. 
    2016-10-11 11:26:42,426 [  60095]   INFO - ct.OfflineSymbolTableGenerator - Completed activity Initializing local symbols in 110 ms. 
    2016-10-11 11:26:42,426 [  60095]   INFO - ct.OfflineSymbolTableGenerator - Starting activity Loading system classes with 1 steps. 
    2016-10-11 11:27:03,450 [  81119]   INFO - ct.OfflineSymbolTableGenerator - Completed activity Loading system classes in 21024 ms. 
    2016-10-11 11:27:03,451 [  81120]   WARN - .IlluminatedCloudExceptionUtil - Connect to cs1.salesforce.com:443 [cs1.salesforce.com/136.146.208.91] failed: Connection timed out: connect 
    org.apache.http.conn.HttpHostConnectException: Connect to cs1.salesforce.com:443 [cs1.salesforce.com/136.146.208.91] failed: Connection timed out: connect
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
        at com.illuminatedcloud.client.ForceComApiClient.runWithClient(SourceFile:244)
        at com.illuminatedcloud.client.ForceComApiClient.runWithClientSimple(SourceFile:287)
        at com.illuminatedcloud.symtab.OfflineSymbolTable.downloadSystemSymbols(SourceFile:3365)
        at com.illuminatedcloud.symtab.OfflineSymbolTable$20.compute(SourceFile:2252)
        at com.illuminatedcloud.symtab.OfflineSymbolTable$20.compute(SourceFile:2248)
        at com.illuminatedcloud.symtab.OfflineSymbolTable.runActivity(SourceFile:592)
        at com.illuminatedcloud.symtab.OfflineSymbolTable.runActivity(SourceFile:631)
        at com.illuminatedcloud.symtab.OfflineSymbolTable.loadSystemClasses(SourceFile:2247)
        at com.illuminatedcloud.symtab.OfflineSymbolTable.generateOfflineSymbolTable(SourceFile:744)
        at com.illuminatedcloud.intellij.settings.project.OfflineSymbolTableGenerator$3.run(SourceFile:199)
        at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:635)
        at com.intellij.openapi.progress.impl.CoreProgressManager$3.run(CoreProgressManager.java:170)
        at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:494)
        at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:443)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
        at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:155)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:128)
        at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:307)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.net.ConnectException: Connection timed out: connect
        at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
        ... 32 more
    
  3. Scott Wells repo owner

    Mark, unfortunately it won't currently work with auto-proxy configuration. Technically the place that's failing here should work fine and I'll address that, but the third-party license validation library that IC uses does not support auto-proxies. Do you know the host/port of the proxy server so that you can use manual configuration?

  4. Mark Bickford reporter

    Yes, I was able to manually configure it and log in. If you create a Knowledge Base out of this issue, you may want to note that manually configuring a Windows / NTLM proxy requires that you enter the username as DOMAIN\username; if you omit the domain you get a NullPointerException.

    Thanks for the assistance!

  5. Scott Wells repo owner

    Glad you got around it and thanks for the details. I'll add that to the FAQ where I'd already been planning to add details on what types of proxy configuration are supported.

  6. Scott Wells repo owner

    Using manual proxy configuration works. Need to capture KB/FAQ info regarding manual proxy configuration support/quirks.

  7. Log in to comment