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(); }