Ticket #19436: 19436.2.patch
File 19436.2.patch, 2.2 KB (added by , 5 years ago) |
---|
-
src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java
407 407 public static JsonArray getHandlersInfoAsJSON(Collection<String> handlers) { 408 408 JsonArrayBuilder json = Json.createArrayBuilder(); 409 409 for (String s : Utils.firstNonNull(handlers, RequestProcessor.handlers.keySet())) { 410 json.add(getHandlerInfoAsJSON(s)); 410 JsonObject infoAsJson = getHandlerInfoAsJSON(s); 411 if (infoAsJson != null) { 412 json.add(infoAsJson); 413 } 411 414 } 412 415 return json.build(); 413 416 } … … 419 422 */ 420 423 public static JsonObject getHandlerInfoAsJSON(String cmd) { 421 424 RequestHandler handler; 425 if (cmd == null) { 426 return null; 427 } 428 if (!cmd.startsWith("/")) { 429 cmd = new StringBuilder("/").append(cmd).toString(); 430 } 422 431 try { 423 432 Class<?> c = handlers.get(cmd); 424 433 if (c == null) return null; -
test/unit/org/openstreetmap/josm/io/remotecontrol/RequestProcessorTest.java
1 // License: GPL. For details, see LICENSE file. 2 package org.openstreetmap.josm.io.remotecontrol; 3 4 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; 5 6 import java.util.Arrays; 7 8 import org.junit.jupiter.api.Test; 9 10 /** 11 * Tests for {@link RequestProcessor} 12 * @author Taylor Smock 13 */ 14 public class RequestProcessorTest { 15 /** 16 * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/19436">#19436</a> 17 */ 18 @Test 19 public void testFeaturesDoesNotThrowNPE() { 20 assertDoesNotThrow(() -> RequestProcessor.getHandlersInfoAsJSON(Arrays.asList("add_node", "/add_node", "", null))); 21 } 22 }