Knowledge Base > Troubleshooting > Working with code E020

Working with code E020

Diffblue Cover is designed to perform most of the hard work of test case production in a separate service process; this allows us to control resource usage and recover from difficult error conditions. For Diffblue Cover to run successfully, it must be able to start up this service and communicate with it successfully. In particular, we assume that we can do the following:

  • Start up a Java process using the JDK that compiled the project for which we are supposed to generate tests (the “analysis service”);
  • Set up a TCP socket listening on a port on localhost, both inside Cover itself and inside the analysis service;
  • Connect to the TCP socket of the other process, i.e., Diffblue Cover must be able to connect to the analysis service’s TCP port, and the analysis service to that of Diffblue Cover. We do not require any specific ports to be available - any port assigned by the operating system is acceptable.

In general, when you encounter an E020 output code, it is worth checking the following:

  • Is your Diffblue Cover installation complete?
  • Are the files belonging to Diffblue Cover all readable?
  • Is the JVM in JAVA_HOME executable? Is it a JDK? In particular, check that you can run both java and javac successfully.
  • Can you successfully set up a TCP service on your machine, and connect to it? Please contact Diffblue Support if you need help with this step.

Other possible failure modes that are covered by E020 include:

  • Communication between Diffblue Cover and the analysis service may time out. This may happen if your machine is heavily loaded or very slow.
  • There may be issues with setting up an SSL connection between Diffblue Cover and the analysis service. This may happen if you have configured SSL for your JVM in a very unusual way.
  • The JVM running the analysis service exits for an unexpected reason. In this case, Diffblue Cover will report that the JVM exited with an exit code below 218; check the manual of your JVM for the meaning of this exit code.