retrieving autocomplete list sometimes take a lot of time
the reason is this stacktrace: ``` 2019-06-13 09:04:01,244 ERROR [http-bio-8080-exec-59] (BaseController.java:47) - lcsb.mapviewer.annotation.services.DrugSearchException: lcsb.mapviewer.annotation.services.annotators.UniprotSearchException: Problem with accessing uniprot webpage lcsb.mapviewer.annotation.services.DrugSearchException: lcsb.mapviewer.annotation.services.annotators.UniprotSearchException: Problem with accessing uniprot webpage at lcsb.mapviewer.annotation.services.ChEMBLParser.targetComponentToMiriamData(ChEMBLParser.java:263) at lcsb.mapviewer.annotation.services.ChEMBLParser.getTargetFromId(ChEMBLParser.java:212) at lcsb.mapviewer.annotation.services.ChEMBLParser.getTargetsByDrugId(ChEMBLParser.java:300) at lcsb.mapviewer.annotation.services.ChEMBLParser.parseDrug(ChEMBLParser.java:421) at lcsb.mapviewer.annotation.services.ChEMBLParser.getDrugById(ChEMBLParser.java:524) at lcsb.mapviewer.annotation.services.ChEMBLParser.getDrugsByChemblTarget(ChEMBLParser.java:642) at lcsb.mapviewer.annotation.services.ChEMBLParser.getDrugListByTarget(ChEMBLParser.java:595) at lcsb.mapviewer.annotation.services.DrugAnnotation.getDrugListByTargets(DrugAnnotation.java:173) at lcsb.mapviewer.annotation.services.DrugAnnotation.getSuggestedQueryListWithoutCache(DrugAnnotation.java:324) at lcsb.mapviewer.annotation.services.DrugAnnotation.getSuggestedQueryList(DrugAnnotation.java:267) at lcsb.mapviewer.services.search.drug.DrugService.getSuggestedQueryList(DrugService.java:375) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy90.getSuggestedQueryList(Unknown Source) at lcsb.mapviewer.api.projects.drugs.DrugRestImpl.getSuggestedQueryList(DrugRestImpl.java:209) at lcsb.mapviewer.api.projects.drugs.DrugRestImpl$$FastClassBySpringCGLIB$$9a4d0be7.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671) at lcsb.mapviewer.api.projects.drugs.DrugRestImpl$$EnhancerBySpringCGLIB$$2a610177.getSuggestedQueryList(<generated>) at lcsb.mapviewer.api.projects.drugs.DrugController.getSuggestedQueryList(DrugController.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:849) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:760) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at lcsb.mapviewer.web.bean.utils.ApiAccessControlFilter.doFilter(ApiAccessControlFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at lcsb.mapviewer.web.bean.utils.JsfAjaxAccessControlAllowFilter.doFilter(JsfAjaxAccessControlAllowFilter.java:37) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at lcsb.mapviewer.web.bean.utils.XFrameAccessControlFilter.doFilter(XFrameAccessControlFilter.java:54) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: lcsb.mapviewer.annotation.services.annotators.UniprotSearchException: Problem with accessing uniprot webpage at lcsb.mapviewer.annotation.services.annotators.UniprotAnnotator.uniProtToHgnc(UniprotAnnotator.java:249) at lcsb.mapviewer.annotation.services.ChEMBLParser.targetComponentToMiriamData(ChEMBLParser.java:260) ... 81 more Caused by: lcsb.mapviewer.annotation.services.WrongResponseCodeIOException: java.io.FileNotFoundException: https://www.uniprot.org/uniprot/.txt at lcsb.mapviewer.annotation.cache.WebPageDownloader$1Task.call(WebPageDownloader.java:147) at lcsb.mapviewer.annotation.cache.WebPageDownloader$1Task.call(WebPageDownloader.java:98) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ... 1 more Caused by: java.io.FileNotFoundException: https://www.uniprot.org/uniprot/.txt at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1944) at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1939) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1938) at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1508) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263) at lcsb.mapviewer.annotation.cache.WebPageDownloader$1Task.call(WebPageDownloader.java:143) ... 5 more Caused by: java.io.FileNotFoundException: https://www.uniprot.org/uniprot/.txt at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1890) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347) at lcsb.mapviewer.annotation.cache.WebPageDownloader$1Task.call(WebPageDownloader.java:123) ... 5 more ```
issue