Skip to content

Rules do not detect SnapStart bugs when using dependency injection  #14

@maschnetwork

Description

@maschnetwork

Hi,

seems like the plugin does not detect downstream dependencies that are referenced via a DI framework (works when manually creating classes). This is an example that uses Spring Cloud Functions:

WORKS when manually initializing the class in the constructor (detects issue):

public class LambdaHandler implements RequestHandler<String, String> {
    private final MyDependency myDependency;

    public LambdaHandler(){
        this.myDependency = new MyDependency();
    }

    @Override
    public String handleRequest(String event, Context context) {
        return myDependency.getUUID().toString();
    }
}

class MyDependency {
    private final UUID random = UUID.randomUUID();

    public UUID getUUID() {
        return random;
    }
}

DOES NOT WORK when using constructor injection(detects no issues):

@Component
public class LambdaHandler implements RequestHandler<String, String> {
    private final MyDependency myDependency;

    public LambdaHandler(MyDependency myDependency){
        this.myDependency = myDependency;
    }

    @Override
    public String handleRequest(String event, Context context) {
        return myDependency.getUUID().toString();
    }
}

@Component
class MyDependency {
    private final UUID random = UUID.randomUUID();

    public UUID getUUID() {
        return random;
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions