NullPointerException: Anulación del método de invocación del constructor de la clase Base en la clase Derivada

Tengo este fragmento de código:

class Base {
    public Base() {
        method();
    }

    void method() {
        System.out.println("In Base");
    }
}

class Derived extends Base {
    private String bar;

    public Derived() {
        bar="bar";
    }

    public void method() {
        System.out.println(bar.length());
    }

    public static void main(String[] args) {
        Base base=new Derived();
        base.method();
    }
}

Al ejecutar el código obtuve una excepción:

Exception in thread "main" java.lang.NullPointerException
    at Derived.method(Main.java:22)
    at Base.<init>(Main.java:5)
    at Derived.<init>(Main.java:17)
    at Derived.main(Main.java:27)

Soy incapaz de entender porque hayNullPointerException y elstackTrace de la excepción. ¿Alguien podría ayudarme a entender?

Puedes consultar el códigoaquí.

Respuestas a la pregunta(2)

Su respuesta a la pregunta