diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java b/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java index 34186d37bba13fecb77bf1fad9c254e502f2796d..d01561f2d301fad3469d8cba947f825616e9eb82 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java @@ -245,7 +245,10 @@ public class SearchService implements ISearchService { if (query.startsWith(REACTION_SEARCH_PREFIX)) { return getReactionById(model, query.replaceFirst(REACTION_SEARCH_PREFIX, "").toLowerCase()); } else if (query.startsWith(SPECIES_SEARCH_PREFIX)) { - result.add(fullAliasViewFactory.create(model.getElementByElementId(query.replaceFirst(SPECIES_SEARCH_PREFIX, "")))); + Element element = model.getElementByElementId(query.replaceFirst(SPECIES_SEARCH_PREFIX, "")); + if (element !=null) { + result.add(fullAliasViewFactory.create(element)); + } } else if (query.startsWith(ELEMENT_SEARCH_PREFIX)) { return getElementById(model, query.replaceFirst(ELEMENT_SEARCH_PREFIX, "").toLowerCase()); } else { diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java index 8dc37c8a7c57e7defae75f518845ffa12ca8b0bf..125d3d417c529f5ab14d7fe919ef2f42b2cbbf52 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java @@ -139,20 +139,35 @@ public class SearchServiceTest extends ServiceTestFunctions { } } - @Test - public void testSearchByElementId() throws Exception { - try { - Model model = createFullModel(); - Element element =model.getElements().iterator().next(); - element.setId(907); - SearchElementResult global = searchService.searchByQuery(model, "element:907", 50, null, "127.0.0.1"); - assertNotNull(global); - assertEquals(1, global.size()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + @Test + public void testSearchByElementId() throws Exception { + try { + Model model = createFullModel(); + Element element =model.getElements().iterator().next(); + element.setId(907); + SearchElementResult global = searchService.searchByQuery(model, "element:907", 50, null, "127.0.0.1"); + assertNotNull(global); + assertEquals(1, global.size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testSearchByUnknwonElementId() throws Exception { + try { + Model model = createFullModel(); + Element element =model.getElements().iterator().next(); + element.setId(907); + SearchElementResult global = searchService.searchByQuery(model, "species:90111117", 50, null, "127.0.0.1"); + assertNotNull(global); + assertEquals(0, global.size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } @Test public void testSearchByName4() throws Exception {