Is this vulnerable to DoS (StackOverflow) via comparison?

```
public class Test1 {
    final int id;
    final String name;

    public Test1(int id, String name) {
        this.id = id;
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        return equals(this, o);
    }

    public boolean equals(Object a, Object b) {
        if (a == null || b == null) {
            return false;
        }

        if(Test1.class != a.getClass() || Test1.class != b.getClass()){
            return false;
        }

        if(((Test1) a).id != ((Test1) b).id  || !((Test1) a).name.equals(((Test1) b).name)){
            return false;
        }

        return (a.equals(b) || a == b);
    }
}
```