# V6084. Suspicious return of an always empty collection.

The analyzer has detected a 'return' statement that returns an always empty collection defined as a local variable.

This typically happens when you forget to add elements to the collection:

    public List<Property> getProperties()
    {
      List<Property> properties = new ArrayList<>();
      Property p1 = new Property();
      p1.setName("property1");
      p1.setValue(42);
      return properties;
    }

The program will create an object of the appropriate type, but since the call 'properties.add(p1)' is missing, the 'getProperties' method will return incorrect data. Fixed code:

    public List<Property> getProperties()
    {
      List<Property> properties = new ArrayList<>();
      Property p1 = new Property();
      p1.setName("property1");
      p1.setValue(42);
      properties.add(p1);              // <=
      return properties;
    }

When you need to return an empty collection, do so explicitly:

    public List<Property> getMutableProperties()
    {
      return new ArrayList<>();
    }
    public List<Property> getImmutableProperties()
    {
      return Collections.emptyList();
    }