Java is verbose :). All it is doing is initializing a variable, which is obvious with this construct but not so much if you write

  DateTime end;
  if (endDate == null) {
      end = new DateTime();
  }
  else {
      end = new DateTime(endDate.getTime());
  }

I could add a function called initializeToCurrentDateIfNull, but that seems like overkill. Alternatively we could add an additional method to the interface with signature

public AggregateCount getCounts(int nCounts, AggregateCountResolution resolution)

which would avoid having to use a null to represent an optional parameter (which I hate anyway) and remove the need to check for null, other than as an Assert.notNull(endDate);

What do you think?