@Udtf
  public <T> List<List<T>> cube(final List<T> columns) {
    if (columns == null) {
      return Collections.emptyList();
    }
    return createAllCombinations(columns);
  }
@Test
  public void shouldHandleOneNull() {
    // Given:
    final Object[] oneNull = {1, null};

    // When:
    final List<List<Object>> result = cubeUdtf.cube(Arrays.asList(oneNull));

    // Then:
    assertThat(result.size(), is(2));
    assertThat(result.get(0), is(Arrays.asList(null, null)));
    assertThat(result.get(1), is(Arrays.asList(1, null)));
  }