Issue #3597 NPE in DumpableCollection

Signed-off-by: Jan Bartel <janb@webtide.com>
This commit is contained in:
Jan Bartel 2019-04-24 14:20:05 +02:00 committed by Greg Wilkins
parent 2d23cb0ecf
commit 41f9d7a95d
2 changed files with 56 additions and 2 deletions

View File

@ -53,7 +53,7 @@ public class DumpableCollection implements Dumpable
@Override
public void dump(Appendable out, String indent) throws IOException
{
Object[] array = _collection.toArray();
Dumpable.dumpObjects(out,indent,_name + " size="+array.length, array);
Object[] array = (_collection == null ? null : _collection.toArray());
Dumpable.dumpObjects(out,indent,_name + " size="+(array == null ? 0 : array.length), array);
}
}

View File

@ -0,0 +1,54 @@
//
// ========================================================================
// Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.util.component;
import static org.hamcrest.MatcherAssert.assertThat;
import java.util.ArrayList;
import java.util.Collection;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
public class DumpableCollectionTest
{
@Test
public void testNullDumpableCollection () throws Exception
{
DumpableCollection dc = new DumpableCollection("null test", null);
String dump = dc.dump();
assertThat(dump, Matchers.containsString("size=0"));
}
@Test
public void testNonNullDumpableCollection () throws Exception
{
Collection<String> collection = new ArrayList<>();
collection.add("one");
collection.add("two");
collection.add("three");
DumpableCollection dc = new DumpableCollection("non null test", collection);
String dump = dc.dump();
assertThat(dump, Matchers.containsString("one"));
assertThat(dump, Matchers.containsString("two"));
assertThat(dump, Matchers.containsString("three"));
}
}