(12495,'FIXME - should we do anything besides log these?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',742,742,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(12496,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1023,1023,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(12497,'create a class loader.\nTODO: reimplement special \'deploy\' dirs','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1181,1182,'org.apache.tomcat.lite.ServletContextImpl','start()',NULL),(12498,'JMX should know about us ( TODO: is it too early ? )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1193,1193,'org.apache.tomcat.lite.ServletContextImpl','start()',NULL),(12499,'TODO: configurable ? init-params','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1233,1233,'org.apache.tomcat.lite.ServletContextImpl','getSessionCookieName()',NULL),(12500,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1350,1350,'org.apache.tomcat.lite.ServletContextImpl','dispatchError(ServletRequestImpl, ServletResponseImpl, String)',NULL),(12501,'Notify interested application event listeners\nFIXME - Assumes we call listeners in reverse order','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/HttpSessionImpl.java',578,579,'org.apache.tomcat.servlets.session.HttpSessionImpl','expire(boolean)',NULL),(12502,'FIXME: Externalize this','Line','modules/tomcat-lite/java/org/apache/tomcat/util/http/mapper/BaseMapper.java',1297,1297,'org.apache.tomcat.util.http.mapper.BaseMapper','mapDefaultServlet(Context, CharChunk, MappingData, int, String)',NULL),(12503,'}\n\n\n/**\nSet the Host within which this Request is being processed.  This\nmust be called as soon as the appropriate Host is identified, and\nbefore the Request is passed to a context.\n\n@param host The newly associated Host\n/','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletRequestImpl.java',449,458,'org.apache.tomcat.lite.ServletRequestImpl','None',NULL),(12504,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletRequestImpl.java',1358,1358,'org.apache.tomcat.lite.ServletRequestImpl','getRequestURL()',NULL),(12505,'TODO: check !!!!\nCheck for a role defined directly as a <security-role>','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletRequestImpl.java',1557,1558,'org.apache.tomcat.lite.ServletRequestImpl','isUserInRole(String)',NULL),(12506,'TODO: can I make \'inject\' public - Guice seems to\nsupport this.','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/SimpleObjectManager.java',105,106,'org.apache.tomcat.integration.simple.SimpleObjectManager','bind(String, Object)',NULL),(12507,'Retrieve the thread local URI, used for mapping\nTODO: recycle RequestDispatcher stack and associated objects\ninstead of this object','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/RequestDispatcherImpl.java',422,424,'org.apache.tomcat.lite.RequestDispatcherImpl','mapPath()',NULL),(12508,'TODO: make charBuffer part of request or something','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/RequestDispatcherImpl.java',469,469,'org.apache.tomcat.lite.RequestDispatcherImpl','mapPath()',NULL),(12509,'TODO: find a better default','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',76,76,'org.apache.tomcat.servlets.file.DefaultServlet','None',NULL),(12510,'TODO: not allowed ?','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',293,293,'org.apache.tomcat.servlets.file.DefaultServlet','destroy()',NULL),(12511,'TODO: Check the file cache to avoid a bunch of FS accesses.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',376,376,'org.apache.tomcat.servlets.file.DefaultServlet','serveResource(HttpServletRequest, HttpServletResponse, boolean)',NULL),(12512,'TODO: remove the sync, optimize - it\'s from ResourceAttribute','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',437,437,'org.apache.tomcat.servlets.file.DefaultServlet','serveResource(HttpServletRequest, HttpServletResponse, boolean)',NULL),(12513,'We\'re included, and the response.sendError() below is going\nto be ignored by the resource that is including us.\nTherefore, the only way we can let the including resource\nknow is by including warning message in response','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',618,621,'org.apache.tomcat.servlets.file.DefaultServlet','send404(HttpServletRequest, HttpServletResponse)',NULL),(12514,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/sec/IPFilter.java',69,69,'org.apache.tomcat.servlets.sec.IPFilter','getPatterns(String)',NULL),(12515,'TODO: move \'expiring objects\' to a separate utility class\nTODO: hook the background thread','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',39,40,'None','None',NULL),(12516,'TODO: check if eldest is expired or if we\'re above the limit.\nif eldest is expired, turn a flag to check for more.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',96,97,'org.apache.tomcat.servlets.session.SimpleSessionManager','None','NOT_DESIGN'),(12517,'should be atomic\nnot sure it\'s the best solution','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',283,284,'org.apache.tomcat.servlets.session.SimpleSessionManager','removeEldestEntry(Map.Entry)',NULL),(12518,'TODO: mark session from cookie, check validity','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',522,522,'org.apache.tomcat.servlets.session.SimpleSessionManager','getRequestedSessionId(HttpServletRequest)',NULL),(12519,'TODO: move the readLine functionality to base coyote IO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletReaderImpl.java',112,112,'org.apache.tomcat.lite.ServletReaderImpl','readLine()',NULL),(12520,'Default servlet: check if it\'s file or dir to apply\nwelcome files rules.\nTODO: Save the File in attributes,\nto avoid duplication in DefaultServlet.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/WebappServletMapper.java',335,338,'org.apache.tomcat.lite.WebappServletMapper','setServletContext(ServletContextImpl)',NULL),(12521,'no authorization or principal not found.\nCall the auth servlet.\nTODO: use URL or RD.include.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/sec/AccessFilter.java',123,125,'org.apache.tomcat.servlets.sec.AccessFilter','doFilter(ServletRequest, ServletResponse, FilterChain)',NULL),(12522,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletRequestWrapperImpl.java',453,453,'org.apache.tomcat.lite.ServletRequestWrapperImpl','getAttribute(String)',NULL),(12523,'Refactoring: original code in catalina.connector.\n- renamed to OutputWriter to avoid confusion with coyote OutputBuffer\n-\nTODO: move it to coyote, add Response.getWriter\n','Block','modules/tomcat-lite/java/org/apache/tomcat/lite/coyote/MessageWriter.java',34,40,'None','None','DESIGN'),(12524,'An IOException on a write is almost always due to\nthe remote client aborting the request.  Wrap this\nso that it can be handled better by the error dispatcher.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/coyote/MessageWriter.java',375,377,'org.apache.tomcat.lite.coyote.MessageWriter','realWriteBytes(byte[], int, int)',NULL),(12525,'Not supported right now - TODO: collect, have jndi plugin','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/webxml/WebXml.java',183,183,'org.apache.tomcat.lite.webxml.WebXml','readWebXml(InputStream)',NULL),(12526,'ensure the arguments are not null so pre 1.2 VM\'s don\'t barf','Line','java/org/apache/tomcat/util/res/StringManager.java',143,143,'org.apache.tomcat.util.res.StringManager','getString(String)','NOT_DESIGN'),(12527,'None','None','java/org/apache/tomcat/util/res/StringManager.java',-1,-1,'None','None',NULL),(12528,'FIXME need we this?','Line','java/org/apache/catalina/manager/host/Constants.java',196,196,'org.apache.catalina.manager.host.Constants','None','DESIGN'),(12529,'None','None','java/org/apache/catalina/manager/host/Constants.java',-1,-1,'None','None',NULL),(12530,'as a hack, you can use a static file - and genarate the same\nsession ids ( good for strange debugging )','Line','java/org/apache/catalina/session/ManagerBase.java',508,509,'org.apache.catalina.session.ManagerBase','run()',NULL),(12531,'as a hack, you can use a static file - and generate the same\nsession ids ( good for strange debugging )','Line','java/org/apache/catalina/session/ManagerBase.java',522,523,'org.apache.catalina.session.ManagerBase','run()',NULL),(12532,'TODO Add 2.4, 2.5, 3.0','Line','java/org/apache/jasper/Constants.java',161,161,'org.apache.jasper.Constants','None',NULL),(12533,'Move drive spec to the front of the path','Line','java/org/apache/jk/config/BaseJkConfig.java',440,440,'org.apache.jk.config.BaseJkConfig','patch(String)',NULL),(12534,'fix path on NetWare - all \'/\' become \'\\\\\' and remove duplicate \'\\\\\'','Line','java/org/apache/jk/config/BaseJkConfig.java',477,477,'org.apache.jk.config.BaseJkConfig','patch(String)',NULL),(12535,'XXX we need to better collect all mappings','Line','java/org/apache/jk/config/IISConfig.java',249,249,'org.apache.jk.config.IISConfig','generateContextMappings(Context, PrintWriter)',NULL),(12536,'XXX it should be computed from request, by workerEnv','Block','java/org/apache/jk/common/HandlerRequest.java',285,285,'org.apache.jk.common.HandlerRequest','init()',NULL),(12537,'XXX add isSameAddress check','Line','java/org/apache/jk/common/HandlerRequest.java',313,313,'org.apache.jk.common.HandlerRequest','init()',NULL),(12538,'Special case ( XXX in future API make it separate type !)','Block','java/org/apache/jk/common/HandlerRequest.java',442,443,'org.apache.jk.common.HandlerRequest','decodeAttributes(MsgContext, Msg, Request, MessageBytes)',NULL),(12539,'SSL certificate extraction is costy, moved to JkCoyoteHandler','Line','java/org/apache/jk/common/HandlerRequest.java',523,523,'org.apache.jk.common.HandlerRequest','decodeAttributes(MsgContext, Msg, Request, MessageBytes)',NULL),(12540,'4 - hardcoded, byte[] marshalling overhead','Line','java/org/apache/jk/common/JkInputStream.java',146,146,'org.apache.jk.common.JkInputStream','doWrite(ByteChunk, Response)',NULL),(12541,'XXX add headers','Line','java/org/apache/jk/common/JkInputStream.java',299,299,'org.apache.jk.common.JkInputStream','appendHead(Response)',NULL),(12542,'XXX Reverse it -> this is a notification generator !!','Line','java/org/apache/jk/common/ChannelNioSocket.java',429,429,'org.apache.jk.common.ChannelNioSocket','getThreadPool()',NULL),(12543,'XXX?','Line','java/org/apache/jk/common/ChannelNioSocket.java',519,519,'org.apache.jk.common.ChannelNioSocket','getThreadPool()',NULL),(12544,'XXX If the length in the packet header doesn\'t agree with the\nactual number of bytes read, it should probably return an error\nvalue.  Also, callers of this method never use the length\nreturned -- should probably return true/false instead.','Line','java/org/apache/jk/common/ChannelNioSocket.java',564,567,'org.apache.jk.common.ChannelNioSocket','getThreadPool()',NULL),(12545,'XXX check if enough space - it\'s assert()-ed !!!','Line','java/org/apache/jk/common/ChannelNioSocket.java',584,584,'org.apache.jk.common.ChannelNioSocket','getThreadPool()',NULL),(12546,'XXX This should become handleNotification','Line','java/org/apache/jk/common/ChannelNioSocket.java',687,687,'org.apache.jk.common.ChannelNioSocket','getThreadPool()',NULL),(12547,'\nYou may wonder what you see here ... basically I am trying\nto maintain a stack of threads. This way locality in time\nis kept and there is a better chance to find residues of the\nthread in memory next time it runs.\n','Line','java/org/apache/tomcat/util/threads/ThreadPool.java',301,306,'org.apache.tomcat.util.threads.ThreadPool','createThreadPool(boolean)',NULL),(12548,'should rarely happen, so short-lived GC shouldn\'t hurt\nas much as allocating a long-lived buffer for this','Line','java/org/apache/jk/common/ChannelNioSocket.java',1039,1040,'org.apache.jk.common.ChannelNioSocket','getThreadPool()',NULL),(12549,'Checks for problematic configuration and fix it.\nThe fix provides reasonable settings for a single CPU\nwith medium load.','Block','java/org/apache/tomcat/util/threads/ThreadPool.java',471,475,'org.apache.tomcat.util.threads.ThreadPool','createThreadPool(boolean)',NULL),(12550,'XXX Need to determine what if/how static mappings are done','Line','java/org/apache/jk/config/NSConfig.java',281,281,'org.apache.jk.config.NSConfig','generateContextMappings(Context, PrintWriter)',NULL),(12551,'Do not re-init, the whole idea is to run init only once per\nthread - the pool is supposed to run a single task, that is\ninitialized once.','Line','java/org/apache/tomcat/util/threads/ThreadPool.java',738,740,'org.apache.tomcat.util.threads.ThreadPool','runIt(Runnable)',NULL),(12552,'XXX we need to better collect all mappings','Line','java/org/apache/jk/config/NSConfig.java',286,286,'org.apache.jk.config.NSConfig','generateContextMappings(Context, PrintWriter)',NULL),(12553,'Do not re-init, the whole idea is to run init only once per\nthread - the pool is supposed to run a single task, that is\ninitialized once.','Line','java/org/apache/tomcat/util/threads/ThreadPool.java',752,754,'org.apache.tomcat.util.threads.ThreadPool','runIt(ThreadPoolRunnable)',NULL),(12554,'Notify all other handlers of the new one\nXXX Could be a Coyote action ?','Line','java/org/apache/jk/core/WorkerEnv.java',118,119,'org.apache.jk.core.WorkerEnv','addHandler(String, JkHandler)',NULL),(12555,'do nothing - we are just cleaning up, this is\na workaround for Netscape \\n\\r in POST - it is supposed\nto be ignored','Line','java/org/apache/tomcat/util/net/TcpConnection.java',103,105,'org.apache.tomcat.util.net.TcpConnection','shutdownInput(Socket)',NULL),(12556,'Integer codes for common (optional) request attribute names\nXXX Unused\nXXX Unused','Line','java/org/apache/jk/common/AjpConstants.java',79,81,'org.apache.jk.common.AjpConstants','None',NULL),(12557,'XXX Convert !!','Line','java/org/apache/jk/common/MsgAjp.java',153,153,'org.apache.jk.common.MsgAjp','appendBytes(MessageBytes)',NULL),(12558,'XXX Should be if(pos + length > buff.legth)?','Line','java/org/apache/jk/common/MsgAjp.java',260,260,'org.apache.jk.common.MsgAjp','getBytes(byte[])',NULL),(12559,'Skip terminating \\0  XXX I believe this is wrong but harmless','Line','java/org/apache/jk/common/MsgAjp.java',271,271,'org.apache.jk.common.MsgAjp','getBytes(byte[])',NULL),(12560,'XXX Logging','Line','java/org/apache/jk/common/MsgAjp.java',302,302,'org.apache.jk.common.MsgAjp','processHeader()',NULL),(12561,'XXX Move to util package','Line','java/org/apache/jk/common/MsgAjp.java',327,327,'org.apache.jk.common.MsgAjp','hexLine(byte[], int, int)',NULL),(12562,'Common attributes ( XXX should be notes for flexibility ? )','Line','java/org/apache/jk/core/MsgContext.java',123,123,'org.apache.jk.core.MsgContext','getWorkerEnv()',NULL),(12563,'XXX Reverse it -> this is a notification generator !!','Line','java/org/apache/jk/common/ChannelSocket.java',400,400,'org.apache.jk.common.ChannelSocket','getThreadPool()',NULL),(12564,'XXX?','Line','java/org/apache/jk/common/ChannelSocket.java',507,507,'org.apache.jk.common.ChannelSocket','getThreadPool()',NULL),(12565,'XXX If the length in the packet header doesn\'t agree with the\nactual number of bytes read, it should probably return an error\nvalue.  Also, callers of this method never use the length\nreturned -- should probably return true/false instead.','Line','java/org/apache/jk/common/ChannelSocket.java',554,557,'org.apache.jk.common.ChannelSocket','getThreadPool()',NULL),(12566,'XXX check if enough space - it\'s assert()-ed !!!','Line','java/org/apache/jk/common/ChannelSocket.java',574,574,'org.apache.jk.common.ChannelSocket','getThreadPool()',NULL),(12567,'XXX This should become handleNotification','Line','java/org/apache/jk/common/ChannelSocket.java',741,741,'org.apache.jk.common.ChannelSocket','getThreadPool()',NULL),(12568,'XXX Move to util package','Line','java/org/apache/jk/core/Msg.java',126,126,'org.apache.jk.core.Msg','hexLine(byte[], int, int)',NULL),(12569,'XXX use IntrospectionUtil to find myself','Line','java/org/apache/jk/server/JkMain.java',246,246,'org.apache.jk.server.JkMain','getJkMain()',NULL),(12570,'A bit of magic to support workers.properties without giving\nup the clean get/set','Block','java/org/apache/jk/server/JkMain.java',361,363,'org.apache.jk.server.JkMain','getJkMain()',NULL),(12571,'wEnv sometime null at shutdown - bug45591','Line','java/org/apache/jk/server/JkMain.java',681,681,'org.apache.jk.server.JkMain','pause()',NULL),(12572,'XXX We can also generate location-independent mappings.','Line','java/org/apache/jk/config/WebXml2Jk.java',86,86,'org.apache.jk.config.WebXml2Jk','None',NULL),(12573,'XXX Add index.html, index.jsp','Line','java/org/apache/jk/config/WebXml2Jk.java',179,179,'org.apache.jk.config.WebXml2Jk','setHost(String)',NULL),(12574,'XXX Check if it\'s a text node','Line','java/org/apache/jk/config/WebXml2Jk.java',363,363,'org.apache.jk.config.WebXml2Jk','getContent(Node)',NULL),(12575,'The idea is to keep all configuration in server.xml and\nthe normal apache config files. We don\'t want people to\ntouch apache ( or IIS, NES ) config files unless they\nwant to and know what they\'re doing ( better than we do :-).\n\nOne nice feature ( if someone sends it ) would be to\nalso edit httpd.conf to add the include.\n\nWe\'ll generate a number of configuration files - this one\nis trying to generate a native apache config file.\n\nSome web.xml mappings do not \\\"map\\\" to server configuration - in\nthis case we need to fallback to forward all requests to tomcat.\n\nAjp14 will add to that the posibility to have tomcat and\napache on different machines, and many other improvements -\nbut this should also work for Ajp12, Ajp13 and Jni.','Block','java/org/apache/jk/config/ApacheConfig.java',30,48,'None','None',NULL),(12576,'XXX we need to better collect all mappings','Line','java/org/apache/jk/config/ApacheConfig.java',409,409,'org.apache.jk.config.ApacheConfig','generateContextMappings(Context, PrintWriter)',NULL),(12577,'XXX XXX Here goes the Mime types and welcome files !!!!!!!!','Line','java/org/apache/jk/config/ApacheConfig.java',502,502,'org.apache.jk.config.ApacheConfig','generateStaticMappings(Context, PrintWriter)',NULL),(12578,'we are probably not registered - not very good.','Line','java/org/apache/jk/server/JkCoyoteHandler.java',117,117,'org.apache.jk.server.JkCoyoteHandler','init()',NULL),(12579,'===============================================================================\nRegister the actual pool itself under the tomcat.jdbc domain\n===============================================================================','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSource.java',49,51,'org.apache.tomcat.jdbc.pool.DataSource','None',NULL),(12580,'we remove as much as we can, and\nsimply ignore possible exceptions','Line','java/org/apache/jasper/runtime/PageContextImpl.java',542,543,'org.apache.jasper.runtime.PageContextImpl','doRemoveAttribute(String)','NOT_DESIGN'),(12581,'Session has been invalidated.\nIgnore and fall throw to application scope.','Line','java/org/apache/jasper/runtime/PageContextImpl.java',550,551,'org.apache.jasper.runtime.PageContextImpl','doRemoveAttribute(String)',NULL),(12582,'Unquoted ETag - shouldn\'t happen - TODO complain','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',1676,1676,'org.apache.coyote.http11.Http11AprProcessor','prepareResponse()','NOT_DESIGN'),(12583,'Unquoted ETag - shouldn\'t happen - TODO complain','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',1715,1715,'org.apache.coyote.http11.Http11NioProcessor','prepareResponse()','NOT_DESIGN'),(12584,'Unquoted ETag - shouldn\'t happen - TODO complain','Line','java/org/apache/coyote/http11/Http11Processor.java',1572,1572,'org.apache.coyote.http11.Http11Processor','prepareResponse()','NOT_DESIGN'),(12585,'Make Proxies happy via Vary (from mod_deflate)','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',1648,1648,'org.apache.coyote.http11.Http11AprProcessor','prepareResponse()',NULL),(12586,'Make Proxies happy via Vary (from mod_deflate)','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',1690,1690,'org.apache.coyote.http11.Http11NioProcessor','prepareResponse()',NULL),(12587,'Make Proxies happy via Vary (from mod_deflate)','Line','java/org/apache/coyote/http11/Http11Processor.java',1545,1545,'org.apache.coyote.http11.Http11Processor','prepareResponse()',NULL),(12588,'FIXME: Remove','Line','java/org/apache/coyote/http11/InternalNioOutputBuffer.java',213,213,'org.apache.coyote.http11.InternalNioOutputBuffer','setSocket(NioChannel)','NOT_DESIGN'),(12589,'None','None','java/org/apache/coyote/http11/InternalNioOutputBuffer.java',-1,-1,'None','None',NULL),(12590,'FIXME: Remove','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',198,198,'org.apache.coyote.http11.InternalAprOutputBuffer','setSocketBuffer(int)','NOT_DESIGN'),(12591,'None','None','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',-1,-1,'None','None',NULL),(12592,'TODO SERVLET3 - ASync support','Line','java/org/apache/catalina/core/ApplicationContext.java',858,858,'org.apache.catalina.core.ApplicationContext','getResources()','NOT_DESIGN'),(12593,'TODO Spec breaking enhancement to ignore this restriction','Line','java/org/apache/catalina/core/ApplicationContext.java',878,878,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12594,'Description is ignored','Line','java/org/apache/catalina/core/ApplicationContext.java',885,885,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12595,'TODO SERVLET3 - The SSL test','Line','java/org/apache/catalina/core/ApplicationContext.java',1002,1002,'org.apache.catalina.core.ApplicationContext','getResources()','NOT_DESIGN'),(12596,'XXX\nshould give more detail about the illegal argument','Line','java/javax/servlet/http/HttpUtils.java',97,98,'javax.servlet.http.HttpUtils','String[]> parseQueryString(String)',NULL),(12597,'cheap hack to return an empty hash','Line','java/javax/servlet/http/HttpUtils.java',163,163,'javax.servlet.http.HttpUtils','String[]> parsePostData(int, ServletInputStream)',NULL),(12598,'XXX function should accept an encoding parameter & throw this\nexception.  Otherwise throw something expected.','Line','java/javax/servlet/http/HttpUtils.java',196,197,'javax.servlet.http.HttpUtils','String[]> parsePostData(int, ServletInputStream)',NULL),(12599,'XXX\nneed to be more specific about illegal arg','Line','java/javax/servlet/http/HttpUtils.java',220,221,'javax.servlet.http.HttpUtils','parseName(String, StringBuffer)',NULL),(12600,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1510,1510,'org.apache.catalina.connector.Request','addAsyncListener(AsyncListener)',NULL),(12601,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1509,1509,'org.apache.catalina.connector.Request','startAsync()',NULL),(12602,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1514,1514,'org.apache.catalina.connector.Request','getAsyncContext()',NULL),(12603,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1533,1533,'org.apache.catalina.connector.Request','setAsyncTimeout(long)',NULL),(12604,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1542,1542,'org.apache.catalina.connector.Request','startAsync(ServletRequest, ServletResponse)',NULL),(12605,'TODO Spec breaking enhancement to ignore this restriction','Line','java/org/apache/catalina/core/ApplicationContext.java',1023,1023,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12606,'TODO SERVLET 3','Line','java/org/apache/catalina/core/ApplicationContext.java',1071,1071,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12607,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1531,1531,'org.apache.catalina.connector.Request','getAsyncDispatcher()',NULL),(12608,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1536,1536,'org.apache.catalina.connector.Request','getAsyncDispatcher(String)',NULL),(12609,'TODO Servlet 3','Line','java/org/apache/catalina/core/ApplicationContext.java',1059,1059,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12610,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1513,1513,'org.apache.catalina.connector.Request','startAsync(Runnable)',NULL),(12611,'TODO Servlet 3','Line','java/org/apache/catalina/core/ApplicationContext.java',874,874,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12612,'TODO Servlet 3.0','Line','java/org/apache/catalina/core/ApplicationContext.java',906,906,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12613,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1518,1518,'org.apache.catalina.connector.Request','startAsync(ServletRequest, ServletResponse)',NULL),(12614,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1538,1538,'org.apache.catalina.connector.Request','addAsyncListener(AsyncListener)',NULL),(12615,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1547,1547,'org.apache.catalina.connector.Request','setAsyncTimeout(long)',NULL),(12616,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1551,1551,'org.apache.catalina.connector.Request','getAsyncTimeout()',NULL),(12617,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1556,1556,'org.apache.catalina.connector.Request','getDispatcherType()',NULL),(12618,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2370,2370,'org.apache.catalina.connector.Request','login(HttpServletResponse)',NULL),(12619,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2376,2376,'org.apache.catalina.connector.Request','login(String, String)',NULL),(12620,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2380,2380,'org.apache.catalina.connector.Request','logout()',NULL),(12621,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2384,2384,'org.apache.catalina.connector.Request','getParts()',NULL),(12622,'TODO Servlet 3.0','Line','java/org/apache/catalina/connector/Request.java',2389,2389,'org.apache.catalina.connector.Request','getPart(String)',NULL),(12623,'The following efficient algorithm is known as memberOf Algorithm, as described in \\\"Practices in\nDirectory Groups\\\". It avoids group slurping and handles cyclic group memberships as well.\nSee http://middleware.internet2.edu/dir/ for details','Line','java/org/apache/catalina/realm/JNDIRealm.java',1638,1640,'org.apache.catalina.realm.JNDIRealm','getRoles(DirContext, User)',NULL),(12624,'FIXME - Warp object hierarchy not currently supported','Line','java/org/apache/catalina/mbeans/ServerLifecycleListener.java',876,876,'org.apache.catalina.mbeans.ServerLifecycleListener','destroyMBeans(Server)','NOT_DESIGN'),(12625,'None','None','java/org/apache/catalina/mbeans/ServerLifecycleListener.java',-1,-1,'None','None',NULL),(12626,'MBean Factory - fixed name','Line','java/org/apache/catalina/mbeans/MBeanUtils.java',1738,1738,'org.apache.catalina.mbeans.MBeanUtils','destroyMBean(Server)',NULL),(12627,'Bug47080 - in rare cases this may be null\nMapper treats as \'/\' do the same to prevent NPE','Line','java/org/apache/catalina/realm/RealmBase.java',474,475,'org.apache.catalina.realm.RealmBase','getContainer()',NULL),(12628,'o.a.catalina.ha.session\nTODO rename\no.a.catalina.startup','Line','test/org/apache/TestAll.java',18,20,'org.apache.TestAll','suite()','DESIGN'),(12629,'o.a.catalina.tomcat.util.http - TODO fix package\nTODO rename\nTribes','Line','test/org/apache/TestAll.java',22,24,'org.apache.TestAll','suite()','DESIGN'),(12630,'TODO','Line','modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/driver/Connection.java',42,42,'org.apache.tomcat.jdbc.test.driver.Connection','close()','NOT_DESIGN'),(12631,'None','None','modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/driver/Connection.java',-1,-1,'None','None',NULL),(12632,'Register with the server\nHACK: ServerFactory should be removed...','Line','java/org/apache/catalina/core/StandardService.java',665,666,'org.apache.catalina.core.StandardService','getContainer()','DESIGN'),(12633,'If no server was defined - create one','Line','java/org/apache/catalina/core/StandardService.java',665,665,'org.apache.catalina.core.StandardService','getContainer()',NULL),(12634,'Could do this in one go. Lots of casts so split out for clarity','Line','java/org/apache/catalina/deploy/NamingResources.java',248,248,'org.apache.catalina.deploy.NamingResources','getServer()',NULL),(12635,'FIXME service & engine.getObjectName','Line','java/org/apache/catalina/mbeans/MBeanFactory.java',675,675,'org.apache.catalina.mbeans.MBeanFactory','createStandardEngineService(String, String, String, String)','NOT_DESIGN'),(12636,'None','None','java/org/apache/catalina/mbeans/MBeanFactory.java',-1,-1,'None','None',NULL),(12637,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2243,2243,'org.apache.catalina.connector.Request','login(HttpServletResponse)',NULL),(12638,'TODO: read mime from /etc/mime.types on linux, or some\nresource','Line','java/org/apache/catalina/startup/Tomcat.java',559,560,'org.apache.catalina.startup.Tomcat','setBaseDir(String)','NOT_DESIGN'),(12639,'MIME mappings','Line','java/org/apache/catalina/startup/Tomcat.java',553,553,'org.apache.catalina.startup.Tomcat','setBaseDir(String)',NULL),(12640,'TODO: set a default realm, add simple API to add users','Line','java/org/apache/catalina/startup/Tomcat.java',571,571,'org.apache.catalina.startup.Tomcat','setBaseDir(String)','NOT_DESIGN'),(12641,'None','None','java/org/apache/catalina/startup/Tomcat.java',-1,-1,'None','None',NULL),(12642,'o.a.catalina.ha.session','Line','test/org/apache/TestAll.java',18,18,'org.apache.TestAll','suite()',NULL),(12643,'o.a.catalina.startup','Line','test/org/apache/TestAll.java',20,20,'org.apache.TestAll','suite()',NULL),(12644,'o.a.tomcat.util.http','Line','test/org/apache/TestAll.java',22,22,'org.apache.TestAll','suite()',NULL),(12645,'Tribes','Line','test/org/apache/TestAll.java',24,24,'org.apache.TestAll','suite()',NULL),(12646,'Too much data','Line','java/org/apache/catalina/connector/Request.java',2578,2578,'org.apache.catalina.connector.Request','readChunkedPostBody()',NULL),(12647,'Is it better to use a sync or a thread local here?','Line','test/org/apache/catalina/valves/Benchmarks.java',33,33,'org.apache.catalina.valves.Benchmarks','None',NULL),(12648,'Is it better to use a sync or a thread local here?','Line','test/org/apache/catalina/valves/Benchmarks.java',75,75,'org.apache.catalina.valves.Benchmarks','testAccessLogGetDate()',NULL),(12649,'invalid chunk - no name, it\'s better to ignore\nXXX log it ?','Line','java/org/apache/tomcat/util/http/Parameters.java',511,512,'org.apache.tomcat.util.http.Parameters','setQuery(MessageBytes)','NOT_DESIGN'),(12650,'None','None','java/org/apache/tomcat/util/http/Parameters.java',-1,-1,'None','None',NULL),(12651,'Ignore, probably an unencoded char','Line','java/org/apache/catalina/startup/TldConfig.java',365,365,'org.apache.catalina.startup.TldConfig','tldScanJar(String)','NOT_DESIGN'),(12652,'None','None','java/org/apache/catalina/startup/TldConfig.java',-1,-1,'None','None',NULL),(12653,'FIXME - Servlet 2.4 DTD implies that the location MUST be\na context-relative path starting with \'/\'?','Line','java/org/apache/catalina/startup/TldConfig.java',510,511,'org.apache.catalina.startup.TldConfig','tldScanResourcePaths()','DESIGN'),(12654,'Scans the web application\'s subdirectory identified by rootPath,\nalong with its subdirectories, for TLDs.\n\nInitially, rootPath equals /WEB-INF. The /WEB-INF/classes and\n/WEB-INF/lib subdirectories are excluded from the search, as per the\nJSP 2.0 spec.\n\n@param resources The web application\'s resources\n@param rootPath The path whose subdirectories are to be searched for\nTLDs\n@param tldPaths The set of TLD resource paths to add to','Block','java/org/apache/catalina/startup/TldConfig.java',532,544,'org.apache.catalina.startup.TldConfig','tldScanResourcePathsWebInf(DirContext, String, Set<String>)','DESIGN'),(12655,'Determines if the JAR file with the given <tt>jarPath</tt> needs to be\nscanned for TLDs.\n\n@param loader The current classloader in the parent chain\n@param webappLoader The webapp classloader\n@param jarPath The JAR file path\n\n@return TRUE if the JAR file identified by <tt>jarPath</tt> needs to be\nscanned for TLDs, FALSE otherwise\n\nKeep in sync with o.a.jasper.compiler.TldLocationsCache','Block','java/org/apache/catalina/startup/TldConfig.java',496,508,'org.apache.catalina.startup.TldConfig','needScanJar(ClassLoader, ClassLoader, String)',NULL),(12656,'JARs under WEB-INF/lib must be scanned unconditionally according\nto the spec.','Line','java/org/apache/catalina/startup/TldConfig.java',512,513,'org.apache.catalina.startup.TldConfig','needScanJar(ClassLoader, ClassLoader, String)',NULL),(12657,'Identify the context we are associated with','Line','java/org/apache/catalina/startup/TldConfig.java',526,526,'org.apache.catalina.startup.TldConfig','lifecycleEvent(LifecycleEvent)',NULL),(12658,'Ignore, probably an unencoded char','Line','java/org/apache/catalina/startup/TldConfig.java',624,624,'org.apache.catalina.startup.TldConfig','File> getJarPaths()','NOT_DESIGN'),(12659,'\n// TODO: check if eldest is expired or if we\'re above the limit.\n// if eldest is expired, turn a flag to check for more.\n\n// Note: this doesn\'t work well for sessions that set shorter\n// expiry time, or longer expiry times.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',94,99,'org.apache.tomcat.servlets.session.SimpleSessionManager','None',NULL),(12660,'}','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',101,101,'org.apache.tomcat.servlets.session.SimpleSessionManager','None',NULL),(12661,'should be atomic\nnot sure it\'s the best solution','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',282,283,'org.apache.tomcat.servlets.session.SimpleSessionManager','run()',NULL),(12662,'None','None','modules/tomcat-lite/java/org/apache/tomcat/lite/BodyWriter.java',-1,-1,'None','None',NULL),(12663,'An IOException on a write is almost always due to\nthe remote client aborting the request.  Wrap this\nso that it can be handled better by the error dispatcher.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/BodyWriter.java',336,338,'org.apache.tomcat.lite.BodyWriter','realWriteBytes(byte[], int, int)',NULL),(12664,'If SimpleObjectManager ( or maybe other supporting dynamic config ):','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/ServletHelper.java',48,48,'org.apache.tomcat.integration.simple.ServletHelper','initServlet(Servlet)',NULL),(12665,'TODO: look for a pre-defined name in local dir, resource,\nmanifest','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/Main.java',27,28,'org.apache.tomcat.integration.simple.Main','main(String[])',NULL),(12666,'TODO: anything else computed in coyote ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/coyote/CoyoteConnector.java',101,101,'org.apache.tomcat.lite.coyote.CoyoteConnector','acknowledge(HttpServletResponse)',NULL),(12667,'Final processing\nTODO: only if not commet, this doesn\'t work with the\nother connectors since we don\'t have the info\nTODO: add this note in the nio/apr connectors\nTODO: play nice with TomcatLite, other adapters that flush/close','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/coyote/CoyoteConnector.java',187,191,'org.apache.tomcat.lite.coyote.CoyoteConnector','acknowledge(HttpServletResponse)',NULL),(12668,'XXX','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletResponseImpl.java',163,163,'org.apache.tomcat.lite.ServletResponseImpl','None',NULL),(12669,'XXX Cleanup ?','Line','java/org/apache/tomcat/util/modeler/Registry.java',886,886,'org.apache.tomcat.util.modeler.Registry','unregisterRegistry(ClassLoader)','DESIGN'),(12670,'None','None','java/org/apache/tomcat/util/modeler/Registry.java',-1,-1,'None','None',NULL),(12671,'XXX remove from our tables.','Line','java/org/apache/tomcat/util/modeler/Registry.java',929,929,'org.apache.tomcat.util.modeler.Registry','unregisterComponent(String, String)','NOT_DESIGN'),(12672,'Namespace issue maybe\nsee http://greenbytes.de/tech/webdav/webdav-redirector-list.html','Line','java/org/apache/catalina/filters/WebdavFixFilter.java',115,116,'org.apache.catalina.filters.WebdavFixFilter','doFilter(ServletRequest, ServletResponse, FilterChain)',NULL),(12673,'FIXME - Servlet 2.4 DTD implies that the location MUST be\na context-relative path starting with \'/\'?','Line','java/org/apache/catalina/startup/TldConfig.java',511,512,'org.apache.catalina.startup.TldConfig','tldScanResourcePaths()','DESIGN'),(12674,'Note: Whilst the Servlet 2.4 DTD implies that the location must\nbe a context-relative path starting with \'/\', JSP.7.3.6.1 states\nexplicitly how paths that do not start with \'/\' should be\nhandled.','Line','java/org/apache/catalina/startup/TldConfig.java',511,514,'org.apache.catalina.startup.TldConfig','tldScanResourcePaths()',NULL),(12675,'ensure the arguments are not null so pre 1.2 VM\'s don\'t barf','Line','java/org/apache/catalina/util/StringManager.java',146,146,'org.apache.catalina.util.StringManager','getString(String)',NULL),(12676,'===============================================================================\nRegister the actual pool itself under the tomcat.jdbc domain\n===============================================================================','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSource.java',50,52,'org.apache.tomcat.jdbc.pool.DataSource','None',NULL),(12677,'===============================================================================\nJMX Operations - Register the actual pool itself under the tomcat.jdbc domain\n===============================================================================','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/DataSource.java',57,59,'org.apache.tomcat.jdbc.pool.DataSource','None',NULL),(12678,'TODO: resource injection','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/FilterConfigImpl.java',149,149,'org.apache.tomcat.lite.FilterConfigImpl','createFilter()',NULL),(12679,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1439,1439,'org.apache.catalina.connector.Request','startAsync()',NULL),(12680,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1462,1462,'org.apache.catalina.connector.Request','startAsync()',NULL),(12681,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1445,1445,'org.apache.catalina.connector.Request','startAsync(ServletRequest, ServletResponse)','NOT_DESIGN'),(12682,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1450,1450,'org.apache.catalina.connector.Request','isAsyncStarted()','NOT_DESIGN'),(12683,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1455,1455,'org.apache.catalina.connector.Request','isAsyncSupported()',NULL),(12684,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1486,1486,'org.apache.catalina.connector.Request','isAsyncSupported()',NULL),(12685,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1460,1460,'org.apache.catalina.connector.Request','getAsyncContext()',NULL),(12686,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1491,1491,'org.apache.catalina.connector.Request','getAsyncContext()',NULL),(12687,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1465,1465,'org.apache.catalina.connector.Request','addAsyncListener(AsyncListener)',NULL),(12688,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1496,1496,'org.apache.catalina.connector.Request','addAsyncListener(AsyncListener)',NULL),(12689,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1470,1470,'org.apache.catalina.connector.Request','addAsyncListener(AsyncListener, ServletRequest, ServletResponse)',NULL),(12690,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1505,1505,'org.apache.catalina.connector.Request','addAsyncListener(AsyncListener, ServletRequest, ServletResponse)','NOT_DESIGN'),(12691,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1474,1474,'org.apache.catalina.connector.Request','setAsyncTimeout(long)',NULL),(12692,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1514,1514,'org.apache.catalina.connector.Request','setAsyncTimeout(long)','NOT_DESIGN'),(12693,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1478,1478,'org.apache.catalina.connector.Request','getAsyncTimeout()',NULL),(12694,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1519,1519,'org.apache.catalina.connector.Request','getAsyncTimeout()',NULL),(12695,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',1483,1483,'org.apache.catalina.connector.Request','getDispatcherType()',NULL),(12696,'TODO SERVLET3 - dispatcher','Line','java/org/apache/catalina/connector/Request.java',1524,1524,'org.apache.catalina.connector.Request','getDispatcherType()',NULL),(12697,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2244,2244,'org.apache.catalina.connector.Request','authenticate(HttpServletResponse)',NULL),(12698,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2285,2285,'org.apache.catalina.connector.Request','authenticate(HttpServletResponse)',NULL),(12699,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2250,2250,'org.apache.catalina.connector.Request','login(String, String)',NULL),(12700,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2291,2291,'org.apache.catalina.connector.Request','login(String, String)',NULL),(12701,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2254,2254,'org.apache.catalina.connector.Request','logout()',NULL),(12702,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2295,2295,'org.apache.catalina.connector.Request','logout()',NULL),(12703,'TODO Servlet 3','Line','java/org/apache/catalina/connector/Request.java',2258,2258,'org.apache.catalina.connector.Request','getParts()',NULL),(12704,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2299,2299,'org.apache.catalina.connector.Request','getParts()',NULL),(12705,'TODO Servlet 3.0','Line','java/org/apache/catalina/connector/Request.java',2263,2263,'org.apache.catalina.connector.Request','getPart(String)',NULL),(12706,'TODO Servlet 3.0 - file upload','Line','java/org/apache/catalina/connector/Request.java',2304,2304,'org.apache.catalina.connector.Request','getPart(String)',NULL),(12707,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',1205,1205,'org.apache.coyote.http11.Http11AprProcessor','action(ActionCode, Object)',NULL),(12708,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',1242,1242,'org.apache.coyote.http11.Http11NioProcessor','action(ActionCode, Object)',NULL),(12709,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11Processor.java',1110,1110,'org.apache.coyote.http11.Http11Processor','action(ActionCode, Object)',NULL),(12710,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',323,323,'org.apache.catalina.connector.CoyoteAdapter','service(org.apache.coyote.Request, org.apache.coyote.Response)',NULL),(12711,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',46,46,'org.apache.catalina.connector.AsyncContextImpl','complete()',NULL),(12712,'how does this propagate, or should it?\nTODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',57,58,'org.apache.catalina.connector.AsyncContextImpl','complete()',NULL),(12713,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',67,67,'org.apache.catalina.connector.AsyncContextImpl','dispatch()','NOT_DESIGN'),(12714,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',73,73,'org.apache.catalina.connector.AsyncContextImpl','dispatch(String)',NULL),(12715,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',79,79,'org.apache.catalina.connector.AsyncContextImpl','dispatch(ServletContext, String)',NULL),(12716,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',95,95,'org.apache.catalina.connector.AsyncContextImpl','start(Runnable)',NULL),(12717,'spec right now only has an annotation, not XML but we will add it\nTODO SERVLET3 - async','Line','java/org/apache/catalina/startup/WebRuleSet.java',175,176,'org.apache.catalina.startup.WebRuleSet','addRuleInstances(Digester)','NOT_DESIGN'),(12718,'TODO SERVLET 3 - async','Line','java/org/apache/catalina/connector/AsyncListenerWrapper.java',36,36,'org.apache.catalina.connector.AsyncListenerWrapper','fireOnComplete()','NOT_DESIGN'),(12719,'TODO SERVLET 3 - async','Line','java/org/apache/catalina/connector/AsyncListenerWrapper.java',42,42,'org.apache.catalina.connector.AsyncListenerWrapper','fireOnTimeout()','NOT_DESIGN'),(12720,'Scans the web application\'s subdirectory identified by rootPath,\nalong with its subdirectories, for TLDs.\n\nInitially, rootPath equals /WEB-INF. The /WEB-INF/classes and\n/WEB-INF/lib subdirectories are excluded from the search, as per the\nJSP 2.0 spec.\n\n@param resources The web application\'s resources\n@param rootPath The path whose subdirectories are to be searched for\nTLDs\n@param tldPaths The set of TLD resource paths to add to','Block','java/org/apache/catalina/startup/TldConfig.java',554,566,'org.apache.catalina.startup.TldConfig','tldScanResourcePathsWebInf(DirContext, String, Set<String>)','DESIGN'),(12721,'Ignore, probably an unencoded char','Line','java/org/apache/catalina/startup/TldConfig.java',646,646,'org.apache.catalina.startup.TldConfig','File> getJarPaths()',NULL),(12722,'Ignore, probably an unencoded char','Line','java/org/apache/catalina/startup/TldConfig.java',502,502,'org.apache.catalina.startup.TldConfig','tldScanJar(String)',NULL),(12723,'Scans the web application\'s subdirectory identified by rootPath,\nalong with its subdirectories, for TLDs.\n\nInitially, rootPath equals /WEB-INF/. The /WEB-INF/classes and\n/WEB-INF/lib subdirectories are excluded from the search, as per the\nJSP 2.0 spec.\n\n@param resources The web application\'s resources\n@param rootPath The path whose subdirectories are to be searched for\nTLDs','Block','java/org/apache/catalina/startup/TldConfig.java',399,410,'org.apache.catalina.startup.TldConfig','tldScanResourcePathsWebInf(DirContext, String)',NULL),(12724,'Move on to the next URL','Line','java/org/apache/catalina/startup/TldConfig.java',698,698,'org.apache.catalina.startup.TldConfig','tldScanClassloaders()',NULL),(12725,'how does this propagate, or should it?\nTODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',61,62,'org.apache.catalina.connector.AsyncContextImpl','complete()',NULL),(12726,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',61,61,'org.apache.catalina.connector.AsyncContextImpl','complete()',NULL),(12727,'how does this propagate, or should it?\nTODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',209,210,'org.apache.catalina.connector.AsyncContextImpl','doInternalComplete(boolean)',NULL),(12728,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',292,292,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response)',NULL),(12729,'TODO SERVLET3 - async\nreset mapping data, should prolly be done elsewhere','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',535,536,'org.apache.catalina.connector.CoyoteAdapter','postParseRequest(org.apache.coyote.Request, Request, org.apache.coyote.Response, Response)',NULL),(12730,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/StandardWrapperValve.java',214,214,'org.apache.catalina.core.StandardWrapperValve','invoke(Request, Response)',NULL),(12731,'None','None','java/org/apache/catalina/connector/AsyncContextImpl.java',-1,-1,'None','None',NULL),(12732,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',74,74,'org.apache.catalina.connector.AsyncContextImpl','dispatch(String)',NULL),(12733,'TODO SERVLET3 - async\nTODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',79,80,'org.apache.catalina.connector.AsyncContextImpl','dispatch(ServletContext, String)','NOT_DESIGN'),(12734,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',119,119,'org.apache.catalina.connector.AsyncContextImpl','start(Runnable)',NULL),(12735,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',103,103,'org.apache.catalina.connector.AsyncContextImpl','dispatch(ServletContext, String)','NOT_DESIGN'),(12736,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',86,86,'org.apache.catalina.connector.AsyncContextImpl','dispatch(ServletContext, String)',NULL),(12737,'piggy back on the request dispatcher to ensure that filters etc get called.\nTODO SERVLET3 - async should this be include/forward or a new dispatch type\njavadoc suggests include with the type of DispatcherType.ASYNC','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',100,102,'org.apache.catalina.connector.AsyncContextImpl','dispatch(ServletContext, String)',NULL),(12738,'Scans the web application\'s subdirectory identified by rootPath,\nalong with its subdirectories, for TLDs.\n\nInitially, rootPath equals /WEB-INF/. The /WEB-INF/classes and\n/WEB-INF/lib subdirectories are excluded from the search, as per the\nJSP 2.0 spec.\n\n@param resources The web application\'s resources\n@param rootPath The path whose subdirectories are to be searched for\nTLDs','Block','java/org/apache/catalina/startup/TldConfig.java',401,412,'org.apache.catalina.startup.TldConfig','tldScanResourcePaths(DirContext, String)','NOT_DESIGN'),(12739,'Scans the web application\'s sub-directory identified by rootPath,\nalong with its sub-directories, for TLDs.\n\nInitially, rootPath equals /WEB-INF/. The /WEB-INF/classes and\n/WEB-INF/lib sub-directories are excluded from the search, as per the\nJSP 2.0 spec.\n\n@param startPath The path whose sub-directories are to be searched for\nTLDs\n\nKeep code in sync with o.a.j.compiler.TldLocationsCache','Block','java/org/apache/catalina/startup/TldConfig.java',403,415,'org.apache.catalina.startup.TldConfig','tldScanResourcePaths(String)',NULL),(12740,'Scans the web application\'s sub-directory identified by startPath,\nalong with its sub-directories, for TLDs.\n\nInitially, rootPath equals /WEB-INF/. The /WEB-INF/classes and\n/WEB-INF/lib sub-directories are excluded from the search, as per the\nJSP 2.0 spec.\n\nKeep in sync with o.a.j.comiler.TldLocationsCache','Block','java/org/apache/catalina/startup/TldConfig.java',404,413,'org.apache.catalina.startup.TldConfig','tldScanResourcePaths(String)',NULL),(12741,'Ignore, probably an unencoded char','Line','java/org/apache/catalina/startup/TldConfig.java',504,504,'org.apache.catalina.startup.TldConfig','tldScanJar(String)','NOT_DESIGN'),(12742,'Scan the classloader hierarchy for JARs and, optionally, for JARs where\nthe name doesn\'t end in .jar and directories that represent exploded\nJARs. The JARs under WEB-INF/lib will be skipped as they have been\nscanned previously.\n\nThis represents a Tomcat-specific extension to the TLD search\norder defined in the JSP spec. It allows tag libraries packaged as JAR\nfiles to be shared by web applications by simply dropping them in a\nlocation that all web applications have access to (e.g.,\n<CATALINA_HOME>/lib). It also supports some of the weird and\nwonderful arrangements present when Tomcat gets embedded.\n\nThe set of shared JARs to be scanned for TLDs is narrowed down by\nthe <tt>noTldJars</tt> class variable, which contains the names of JARs\nthat are known not to contain any TLDs.\n\nKeep in sync with o.a.j.comiler.TldLocationsCache','Block','java/org/apache/catalina/startup/TldConfig.java',493,511,'org.apache.catalina.startup.TldConfig','tldScanClassloaders()',NULL),(12743,'Move on to the next URL','Line','java/org/apache/catalina/startup/TldConfig.java',700,700,'org.apache.catalina.startup.TldConfig','tldScanClassloaders()','NOT_DESIGN'),(12744,'Ignore, probably an unencoded char','Line','java/org/apache/catalina/startup/TldConfig.java',715,715,'org.apache.catalina.startup.TldConfig','tldScanClassloaders()','NOT_DESIGN'),(12745,'Keep in sync with o.a.j.comiler.TldLocationsCache','Block','java/org/apache/catalina/startup/TldConfig.java',542,544,'org.apache.catalina.startup.TldConfig','tldScanJar(URL)',NULL),(12746,'Scans the given JarURLConnection for TLD files located in META-INF\n(or a sub-directory of it).\n\n@param conn The JarURLConnection to the JAR file to scan\n\nKeep in sync with o.a.j.comiler.TldLocationsCache','Block','java/org/apache/catalina/startup/TldConfig.java',559,566,'org.apache.catalina.startup.TldConfig','tldScanJar(JarURLConnection)',NULL),(12747,'Hack - makes exception handling simpler','Line','java/org/apache/catalina/startup/TldConfig.java',631,631,'org.apache.catalina.startup.TldConfig','tldScanStream(InputStream)',NULL),(12748,'Hack - makes exception handling simpler','Line','java/org/apache/jasper/compiler/TldLocationsCache.java',567,567,'org.apache.jasper.compiler.TldLocationsCache','tldScanStream(String, String, InputStream)',NULL),(12749,'TODO SERVLET3 - async - need to retrieve the ServletContext here\nor just the webapp classloader associated with to do\nrun with start(Runnable)','Line','java/org/apache/catalina/connector/Request.java',1478,1480,'org.apache.catalina.connector.Request','startAsync(ServletRequest, ServletResponse)',NULL),(12750,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',297,297,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response)',NULL),(12751,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',303,303,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)',NULL),(12752,'TODO SERVLET3 - async\nconfigure settings for timed out','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',272,273,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)',NULL),(12753,'TODO SERVLET3 - async\nconfigure settings for timed out','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',278,279,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)',NULL),(12754,'the request says we support it, but the filters don\'t\nTODO SERVLET3 - async','Line','java/org/apache/catalina/core/ApplicationDispatcher.java',648,649,'org.apache.catalina.core.ApplicationDispatcher','invoke(ServletRequest, ServletResponse, State)','NOT_DESIGN'),(12755,'TODO SERVLET3 - async - set context class loader when running the task.','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',166,166,'org.apache.catalina.connector.AsyncContextImpl','start(Runnable)',NULL),(12756,'TODO SERVLET3 - async\nconfigure settings for timed out','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',276,277,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)','DESIGN'),(12757,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',66,66,'org.apache.catalina.connector.AsyncContextImpl','complete()',NULL),(12758,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',69,69,'org.apache.catalina.core.AsyncContextImpl','complete()',NULL),(12759,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',100,100,'org.apache.catalina.connector.AsyncContextImpl','dispatch(ServletContext, String)',NULL),(12760,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',103,103,'org.apache.catalina.core.AsyncContextImpl','dispatch(ServletContext, String)',NULL),(12761,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',162,162,'org.apache.catalina.connector.AsyncContextImpl','start(Runnable)',NULL),(12762,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',165,165,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)',NULL),(12763,'TODO SERVLET3 - async - set context class loader when running the task.','Line','java/org/apache/catalina/core/AsyncContextImpl.java',169,169,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)',NULL),(12764,'how does this propagate, or should it?\nTODO SERVLET3 - async','Line','java/org/apache/catalina/connector/AsyncContextImpl.java',307,308,'org.apache.catalina.connector.AsyncContextImpl','doInternalComplete(boolean)',NULL),(12765,'how does this propagate, or should it?\nTODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',307,308,'org.apache.catalina.core.AsyncContextImpl','doInternalComplete(boolean)',NULL),(12766,'None','None','java/org/apache/catalina/core/AsyncListenerWrapper.java',-1,-1,'None','None',NULL),(12767,'TODO SERVLET 3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',35,35,'org.apache.catalina.core.AsyncListenerWrapper','fireOnComplete(AsyncEvent)',NULL),(12768,'TODO SERVLET 3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',41,41,'org.apache.catalina.core.AsyncListenerWrapper','fireOnTimeout(AsyncEvent)',NULL),(12769,'TODO Dynamic resize','Line','java/org/apache/tomcat/util/net/JIoEndpoint.java',157,157,'org.apache.tomcat.util.net.JIoEndpoint','setProperty(String, String)','NOT_DESIGN'),(12770,'None','None','java/org/apache/tomcat/util/net/JIoEndpoint.java',-1,-1,'None','None',NULL),(12771,'TODO fix IPv6','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',345,345,'org.apache.tomcat.util.net.AbstractEndpoint','unlockAccept()',NULL),(12772,'Cheat - we know roughly how big the class will be (~1K) but allow\nplenty room to grow\nTODO Let buffer grow as required','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1622,1624,'org.apache.catalina.loader.WebappClassLoader','clearReferences()','DESIGN'),(12773,'TODO: Use a single log message','Line','java/org/apache/catalina/realm/JNDIRealm.java',1024,1024,'org.apache.catalina.realm.JNDIRealm','authenticate(DirContext, String, String)',NULL),(12774,'We know roughly how big the class will be (~ 1K) so allow 2k as a\nstarting point','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1622,1623,'org.apache.catalina.loader.WebappClassLoader','clearReferences()',NULL),(12775,'None','None','java/org/apache/catalina/startup/WebRuleSet.java',-1,-1,'None','None',NULL),(12776,'web-app elements\nTODO: Ignored elements:\n- description\n- icon','Line','java/org/apache/catalina/startup/WebXmlCommon.java',76,79,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12777,'display-name - TODO should support multiple with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',81,81,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12778,'context-param\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',95,96,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12779,'filter\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple icon elements\nTODO: Description for init-param is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',103,107,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12780,'listener\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',126,129,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12781,'servlet\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored\nTODO: init-param/description (multiple with language) is ignored\nTODO: security-role-ref/description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',136,141,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12782,'security-constraint\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',201,203,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12783,'security-role\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',221,222,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12784,'env-entry\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',229,230,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12785,'ejb-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',243,244,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12786,'ejb-local-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',249,250,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12787,'service-ref\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXmlCommon.java',257,260,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12788,'resource-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',267,268,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12789,'resource-env-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',283,284,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12790,'message-destination-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',299,300,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12791,'message-destination\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXmlCommon.java',319,322,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12792,'web-app elements\nTODO: Ignored elements:\n- description\n- icon','Line','java/org/apache/catalina/startup/WebXmlCommon.java',86,89,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12793,'display-name - TODO should support multiple with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',91,91,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12794,'context-param\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',105,106,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12795,'filter\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple icon elements\nTODO: Description for init-param is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',113,117,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12796,'listener\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',136,139,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12797,'servlet\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored\nTODO: init-param/description (multiple with language) is ignored\nTODO: security-role-ref/description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',146,151,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12798,'security-constraint\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',211,213,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12799,'security-role\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXmlCommon.java',231,232,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12800,'env-entry\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',239,240,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12801,'ejb-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',253,254,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12802,'ejb-local-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',259,260,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12803,'service-ref\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXmlCommon.java',267,270,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12804,'resource-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',277,278,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12805,'resource-env-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',293,294,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12806,'message-destination-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXmlCommon.java',309,310,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12807,'message-destination\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXmlCommon.java',329,332,'org.apache.catalina.startup.WebXmlCommon','getVersion()',NULL),(12808,'maybe embedded','Line','java/org/apache/catalina/startup/ContextConfig.java',598,598,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(12809,'None','None','java/org/apache/catalina/startup/ContextConfig.java',-1,-1,'None','None',NULL),(12810,'web-app elements\nTODO: Ignored elements:\n- description\n- icon','Line','java/org/apache/catalina/startup/WebXml.java',131,134,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12811,'display-name - TODO should support multiple with language','Line','java/org/apache/catalina/startup/WebXml.java',136,136,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12812,'context-param\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',150,151,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12813,'filter\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple icon elements\nTODO: Description for init-param is ignored','Line','java/org/apache/catalina/startup/WebXml.java',158,162,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12814,'listener\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',181,184,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12815,'servlet\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored\nTODO: init-param/description (multiple with language) is ignored\nTODO: security-role-ref/description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',191,196,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12816,'security-constraint\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',266,268,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12817,'security-role\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',286,287,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12818,'env-entry\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',294,295,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12819,'ejb-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',308,309,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12820,'ejb-local-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',314,315,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12821,'service-ref\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXml.java',322,325,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12822,'resource-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',332,333,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12823,'resource-env-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',348,349,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12824,'message-destination-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',364,365,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12825,'message-destination\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXml.java',384,387,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(12826,'Process /WEB-INF/classes for annotations\nTODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1163,1164,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12827,'TODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1353,1353,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12828,'TODO SERVLET3\nCheck order','Line','java/org/apache/catalina/startup/ContextConfig.java',1367,1368,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12829,'Scan jar for annotations\nTODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1380,1381,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12830,'TODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1358,1358,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(12831,'hack keep alive behavior','Line','java/org/apache/coyote/http11/Http11Processor.java',315,315,'org.apache.coyote.http11.Http11Processor','process(SocketWrapper<Socket>)',NULL),(12832,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/InternalInputBuffer.java',179,179,'org.apache.coyote.http11.InternalInputBuffer','setInputStream(InputStream)',NULL),(12833,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/AbstractInputBuffer.java',145,145,'org.apache.coyote.http11.AbstractInputBuffer','setInputStream(InputStream)',NULL),(12834,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/InternalInputBuffer.java',201,201,'org.apache.coyote.http11.InternalInputBuffer','addFilter(InputFilter)',NULL),(12835,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/AbstractInputBuffer.java',167,167,'org.apache.coyote.http11.AbstractInputBuffer','addFilter(InputFilter)',NULL),(12836,'FIXME:Put an error message','Block','java/org/apache/coyote/http11/InternalNioOutputBuffer.java',305,305,'org.apache.coyote.http11.InternalNioOutputBuffer','setSocket(NioChannel)',NULL),(12837,'FIXME:Put an error message','Block','java/org/apache/coyote/http11/AbstractOutputBuffer.java',234,234,'org.apache.coyote.http11.AbstractOutputBuffer','reset()',NULL),(12838,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/InternalNioOutputBuffer.java',683,686,'org.apache.coyote.http11.InternalNioOutputBuffer','write(CharChunk)',NULL),(12839,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/AbstractOutputBuffer.java',489,492,'org.apache.coyote.http11.AbstractOutputBuffer','write(CharChunk)',NULL),(12840,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/InternalNioOutputBuffer.java',730,733,'org.apache.coyote.http11.InternalNioOutputBuffer','write(String)',NULL),(12841,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/AbstractOutputBuffer.java',536,539,'org.apache.coyote.http11.AbstractOutputBuffer','write(String)',NULL),(12842,'FIXME:Put an error message','Block','java/org/apache/coyote/http11/InternalOutputBuffer.java',313,313,'org.apache.coyote.http11.InternalOutputBuffer','reset()',NULL),(12843,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',644,647,'org.apache.coyote.http11.InternalOutputBuffer','write(CharChunk)',NULL),(12844,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',691,694,'org.apache.coyote.http11.InternalOutputBuffer','write(String)',NULL),(12845,'TODO - is this async aware','Line','java/org/apache/catalina/valves/SemaphoreValve.java',52,52,'org.apache.catalina.valves.SemaphoreValve','None',NULL),(12846,'TODO SERVLET3 - async\nconfigure settings for timed out','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',277,278,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)',NULL),(12847,'TODO SERVLET 3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',45,45,'org.apache.catalina.core.AsyncListenerWrapper','fireOnError(AsyncEvent)',NULL),(12848,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1523,1523,'org.apache.catalina.connector.Request','setAsyncTimeout(long)','NOT_DESIGN'),(12849,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1531,1531,'org.apache.catalina.connector.Request','getAsyncTimeout()','NOT_DESIGN'),(12850,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2315,2315,'org.apache.catalina.connector.Request','getParts()',NULL),(12851,'TODO Servlet 3 - file upload','Line','java/org/apache/catalina/connector/Request.java',2279,2279,'org.apache.catalina.connector.Request','getParts()',NULL),(12852,'TODO Servlet 3','Line','java/org/apache/catalina/core/ApplicationContext.java',1076,1076,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12853,'TODO SERVLET3\nCheck order','Line','java/org/apache/catalina/startup/ContextConfig.java',1554,1555,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(12854,'Only those fragments listed should be processed','Line','java/org/apache/catalina/startup/ContextConfig.java',1579,1579,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12855,'Add all fragments not named explicitly at this point','Line','java/org/apache/catalina/startup/ContextConfig.java',1584,1584,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12856,'TODO SERVLET3 Relative ordering','Line','java/org/apache/catalina/startup/ContextConfig.java',1601,1601,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12857,'TODO SERVLET3','Line','java/org/apache/catalina/startup/WebXml.java',570,570,'org.apache.catalina.startup.WebXml','merge(WebXml, boolean)','NOT_DESIGN'),(12858,'As far as possible, process in alphabetical order so it is easy to\ncheck everything is present','Line','java/org/apache/catalina/startup/WebXml.java',571,572,'org.apache.catalina.startup.WebXml','merge(Set<WebXml>)',NULL),(12859,'Merge rules vary from element to element. See SRV.8.2.3','Line','java/org/apache/catalina/startup/WebXml.java',574,574,'org.apache.catalina.startup.WebXml','merge(Set<WebXml>)',NULL),(12860,'Not defined in main web.xml','Line','java/org/apache/catalina/startup/WebXml.java',581,581,'org.apache.catalina.startup.WebXml','merge(Set<WebXml>)',NULL),(12861,'TODO SERVLET3 - Merge remaining elements','Line','java/org/apache/catalina/startup/WebXml.java',669,669,'org.apache.catalina.startup.WebXml','merge(Set<WebXml>)',NULL),(12862,'Workaround for certain files on platforms that use\nEBCDIC encoding, when they are read through FileInputStream.\nSee commit message of rev.303915 for details\nhttp://svn.apache.org/viewvc?view=revision&revision=303915','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2185,2188,'org.apache.catalina.loader.WebappClassLoader','findResourceInternal(String, String)',NULL),(12863,'for consistency...: we are probably in embeded mode','Line','java/org/apache/catalina/core/StandardEngine.java',358,358,'org.apache.catalina.core.StandardEngine','init()',NULL),(12864,'for consistency...: we are probably in embedded mode','Line','java/org/apache/catalina/core/StandardEngine.java',358,358,'org.apache.catalina.core.StandardEngine','init()',NULL),(12865,'FIXME pero -- Why container stop first? KeepAlive connetions can send request!\nStop our defined Connectors first','Line','java/org/apache/catalina/core/StandardService.java',587,588,'org.apache.catalina.core.StandardService','getContainer()',NULL),(12866,'FIXME pero -- Why container stop first? KeepAlive connections can send request!\nStop our defined Connectors first','Line','java/org/apache/catalina/core/StandardService.java',587,588,'org.apache.catalina.core.StandardService','getContainer()',NULL),(12867,'Due to depends chain, Ant could call the Task more than once,\nthis is to prevent that we attempt to reuse the previuosly\nclosed Streams.','Block','java/org/apache/catalina/ant/BaseRedirectorHelperTask.java',272,276,'org.apache.catalina.ant.BaseRedirectorHelperTask','closeRedirector()',NULL),(12868,'Due to depends chain, Ant could call the Task more than once,\nthis is to prevent that we attempt to reuse the previously\nclosed Streams.','Block','java/org/apache/catalina/ant/BaseRedirectorHelperTask.java',272,276,'org.apache.catalina.ant.BaseRedirectorHelperTask','closeRedirector()',NULL),(12869,'Number of tries is the numebr of attempts to connect to the database\nduring this login attempt (if we need to open the database)\nThis needs rewritten wuth better pooling support, the existing code\nneeds signature changes since the Prepared statements needs cached\nwith the connections.\nThe code below will try twice if there is a SQLException so the\nconnection may try to be opened again. On normal conditions (including\ninvalid login - the above is only used once.','Line','java/org/apache/catalina/realm/JDBCRealm.java',335,342,'org.apache.catalina.realm.JDBCRealm','authenticate(String, String)',NULL),(12870,'Number of tries is the number of attempts to connect to the database\nduring this login attempt (if we need to open the database)\nThis needs rewritten with better pooling support, the existing code\nneeds signature changes since the Prepared statements needs cached\nwith the connections.\nThe code below will try twice if there is a SQLException so the\nconnection may try to be opened again. On normal conditions (including\ninvalid login - the above is only used once.','Line','java/org/apache/catalina/realm/JDBCRealm.java',335,342,'org.apache.catalina.realm.JDBCRealm','authenticate(String, String)',NULL),(12871,'Number of tries is the numebr of attempts to connect to the database\nduring this login attempt (if we need to open the database)\nThis needs rewritten wuth better pooling support, the existing code\nneeds signature changes since the Prepared statements needs cached\nwith the connections.\nThe code below will try twice if there is a SQLException so the\nconnection may try to be opened again. On normal conditions (including\ninvalid login - the above is only used once.','Line','java/org/apache/catalina/realm/JDBCRealm.java',536,543,'org.apache.catalina.realm.JDBCRealm','getPassword(String)','DESIGN'),(12872,'Look up the user\'s credentials','Line','java/org/apache/catalina/realm/JDBCRealm.java',531,531,'org.apache.catalina.realm.JDBCRealm','getPassword(String)',NULL),(12873,'Number of tries is the number of attempts to connect to the database\nduring this login attempt (if we need to open the database)\nThis needs rewritten with better pooling support, the existing code\nneeds signature changes since the Prepared statements needs cached\nwith the connections.\nThe code below will try twice if there is a SQLException so the\nconnection may try to be opened again. On normal conditions (including\ninvalid login - the above is only used once.','Line','java/org/apache/catalina/realm/JDBCRealm.java',536,543,'org.apache.catalina.realm.JDBCRealm','getPassword(String)',NULL),(12874,'Number of tries is the numebr of attempts to connect to the database\nduring this login attempt (if we need to open the database)\nThis needs rewritten wuth better pooling support, the existing code\nneeds signature changes since the Prepared statements needs cached\nwith the connections.\nThe code below will try twice if there is a SQLException so the\nconnection may try to be opened again. On normal conditions (including\ninvalid login - the above is only used once.','Line','java/org/apache/catalina/realm/JDBCRealm.java',617,624,'org.apache.catalina.realm.JDBCRealm','getRoles(String)',NULL),(12875,'Number of tries is the number of attempts to connect to the database\nduring this login attempt (if we need to open the database)\nThis needs rewritten wuth better pooling support, the existing code\nneeds signature changes since the Prepared statements needs cached\nwith the connections.\nThe code below will try twice if there is a SQLException so the\nconnection may try to be opened again. On normal conditions (including\ninvalid login - the above is only used once.','Line','java/org/apache/catalina/realm/JDBCRealm.java',617,624,'org.apache.catalina.realm.JDBCRealm','getRoles(String)',NULL),(12876,'FIXME: setId trigger session Listener, but only chance to registiert manager with correct id!','Line','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',382,382,'org.apache.catalina.ha.session.JvmRouteBinderValve','changeSessionID(Request, Response, String, String, Session)',NULL),(12877,'FIXME: setId trigger session Listener, but only chance to register manager with correct id!','Line','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',382,382,'org.apache.catalina.ha.session.JvmRouteBinderValve','changeSessionID(Request, Response, String, String, Session)',NULL),(12878,'ensure the arguments are not null so pre 1.2 VM\'s don\'t barf','Line','java/org/apache/catalina/tribes/util/StringManager.java',146,146,'org.apache.catalina.tribes.util.StringManager','getString(String)','NOT_DESIGN'),(12879,'None','None','java/org/apache/catalina/tribes/util/StringManager.java',-1,-1,'None','None',NULL),(12880,'ensure the arguments are not null so pre 1.2 VM\'s don\'t barf','Line','java/org/apache/naming/StringManager.java',112,112,'org.apache.naming.StringManager','getString(String)','NOT_DESIGN'),(12881,'None','None','java/org/apache/naming/StringManager.java',-1,-1,'None','None',NULL),(12882,'bad: shouldn\'t mask an exception the following way:','Line','java/org/apache/catalina/tribes/util/StringManager.java',114,114,'org.apache.catalina.tribes.util.StringManager','None',NULL),(12883,'because it hides the fact that the String was missing\nfrom the calling code.\ngood: could just throw the exception (or wrap it in another)\nbut that would probably cause much havoc on existing\ncode.\nbetter: consistent with container pattern to\nsimply return null.  Calling code can then do\na null check.','Line','java/org/apache/catalina/tribes/util/StringManager.java',116,123,'org.apache.catalina.tribes.util.StringManager','None',NULL),(12884,'bad: shouldn\'t mask an exception the following way:','Line','java/org/apache/naming/StringManager.java',114,114,'org.apache.naming.StringManager','None',NULL),(12885,'because it hides the fact that the String was missing\nfrom the calling code.\ngood: could just throw the exception (or wrap it in another)\nbut that would probably cause much havoc on existing\ncode.\nbetter: consistent with container pattern to\nsimply return null.  Calling code can then do\na null check.','Line','java/org/apache/naming/StringManager.java',116,123,'org.apache.naming.StringManager','None',NULL),(12886,'TODO SERVLET3 - Merge remaining elements','Line','java/org/apache/catalina/startup/WebXml.java',761,761,'org.apache.catalina.startup.WebXml','merge(Set<WebXml>)','NOT_DESIGN'),(12887,'Always additive','Line','java/org/apache/catalina/startup/WebXml.java',850,850,'org.apache.catalina.startup.WebXml','merge(Set<WebXml>)',NULL),(12888,'TODO: cleanup ?','Line','test/org/apache/catalina/startup/TestTomcatSSL.java',69,69,'org.apache.catalina.startup.TestTomcatSSL','getAcceptedIssuers()','DESIGN'),(12889,'None','None','test/org/apache/catalina/startup/TestTomcatSSL.java',-1,-1,'None','None',NULL),(12890,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/catalina/startup/TestTomcatSSL.java',152,152,'org.apache.catalina.startup.TestTomcatSSL','renegotiateFail(boolean)',NULL),(12891,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2311,2311,'org.apache.catalina.connector.Request','authenticate(HttpServletResponse)',NULL),(12892,'TODO SERVLET 3','Line','java/org/apache/catalina/connector/Request.java',2325,2325,'org.apache.catalina.connector.Request','authenticate(HttpServletResponse)',NULL),(12893,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2317,2317,'org.apache.catalina.connector.Request','login(String, String)','NOT_DESIGN'),(12894,'Methods support user name and password authentication','Line','java/org/apache/catalina/connector/Request.java',2352,2352,'org.apache.catalina.connector.Request','login(String, String)',NULL),(12895,'Assume if we have a non-null LogonConfig then we must have an\nauthenticator','Line','java/org/apache/catalina/connector/Request.java',2361,2362,'org.apache.catalina.connector.Request','login(String, String)',NULL),(12896,'TODO Servlet 3 - authentication','Line','java/org/apache/catalina/connector/Request.java',2321,2321,'org.apache.catalina.connector.Request','logout()','NOT_DESIGN'),(12897,'TODO SERVLET3 Relative ordering','Line','java/org/apache/catalina/startup/ContextConfig.java',1609,1609,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(12898,'Scan jar for annotations\nTODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1620,1621,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12899,'Scan jar for annotations, add to fragment\nTODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1563,1564,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(12900,'Move to beginning','Line','java/org/apache/catalina/startup/WebXml.java',1075,1075,'org.apache.catalina.startup.WebXml','orderWebFragments(WebXml, Map<String, WebXml>)',NULL),(12901,'TODO SERVLET3','Line','java/org/apache/catalina/connector/Request.java',2325,2325,'org.apache.catalina.connector.Request','authenticate(HttpServletResponse)','NOT_DESIGN'),(12902,'TODO Servlet 3 - file upload','Line','java/org/apache/catalina/connector/Request.java',2379,2379,'org.apache.catalina.connector.Request','getParts()',NULL),(12903,'TODO SERVLET3 - file upload','Line','java/org/apache/catalina/connector/Request.java',2379,2379,'org.apache.catalina.connector.Request','getParts()',NULL),(12904,'TODO Servlet 3.0 - file upload','Line','java/org/apache/catalina/connector/Request.java',2384,2384,'org.apache.catalina.connector.Request','getPart(String)',NULL),(12905,'TODO SERVLET3 - file upload','Line','java/org/apache/catalina/connector/Request.java',2384,2384,'org.apache.catalina.connector.Request','getPart(String)',NULL),(12906,'TODO Servlet 3','Line','java/org/apache/catalina/core/ApplicationContext.java',832,832,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12907,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',832,832,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12908,'TODO Servlet 3.0','Line','java/org/apache/catalina/core/ApplicationContext.java',883,883,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12909,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',883,883,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(12910,'TODO SERVLET 3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',34,34,'org.apache.catalina.core.AsyncListenerWrapper','fireOnComplete(AsyncEvent)',NULL),(12911,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',34,34,'org.apache.catalina.core.AsyncListenerWrapper','fireOnComplete(AsyncEvent)','NOT_DESIGN'),(12912,'TODO SERVLET 3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',40,40,'org.apache.catalina.core.AsyncListenerWrapper','fireOnTimeout(AsyncEvent)',NULL),(12913,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',40,40,'org.apache.catalina.core.AsyncListenerWrapper','fireOnTimeout(AsyncEvent)','NOT_DESIGN'),(12914,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncListenerWrapper.java',45,45,'org.apache.catalina.core.AsyncListenerWrapper','fireOnError(AsyncEvent)','NOT_DESIGN'),(12915,'TODO - set this list via configuration (also web-fragments)','Line','java/org/apache/jasper/compiler/TldLocationsCache.java',122,122,'org.apache.jasper.compiler.TldLocationsCache','setNoTldJars(String)','NOT_DESIGN'),(12916,'TODO - set this list via configuration (also TLDs in Jasper)','Line','java/org/apache/catalina/startup/ContextConfig.java',194,194,'org.apache.catalina.startup.ContextConfig','None',NULL),(12917,'Version 1 (RFC2965) attributes\nTODO Add support for CommentURL\nDiscard - implied by maxAge <0\nTODO Add support for Port','Line','java/org/apache/tomcat/util/http/ServerCookie.java',129,132,'org.apache.tomcat.util.http.ServerCookie','initialValue()','DESIGN'),(12918,'Note: Servlet Spec =< 3.0 only refers to Netscape and RFC2109,\nnot RFC2965','Line','java/org/apache/tomcat/util/http/ServerCookie.java',76,77,'org.apache.tomcat.util.http.ServerCookie','recycle()',NULL),(12919,'Version 2 (RFC2965) attributes that would need to be added to support\nv2 cookies\nCommentURL\nDiscard - implied by maxAge <0\nPort','Line','java/org/apache/tomcat/util/http/ServerCookie.java',79,83,'org.apache.tomcat.util.http.ServerCookie','recycle()',NULL),(12920,'NOOP','Line','java/org/apache/tomcat/util/http/ServerCookie.java',86,86,'org.apache.tomcat.util.http.ServerCookie','recycle()',NULL),(12921,'TODO Re-enable logging when RFC2965 is implemented','Line','java/org/apache/tomcat/util/http/ServerCookie.java',277,277,'org.apache.tomcat.util.http.ServerCookie','getCookieHeaderName(int)','NOT_DESIGN'),(12922,'TODO RFC2965 fields also need to be passed','Line','java/org/apache/tomcat/util/http/ServerCookie.java',293,293,'org.apache.tomcat.util.http.ServerCookie','appendCookieValue(StringBuffer, int, String, String, String, String, String, int, boolean, boolean)','DESIGN'),(12923,'Max-Age=secs ... or use old \\\"Expires\\\" format\nTODO RFC2965 Discard','Line','java/org/apache/tomcat/util/http/ServerCookie.java',336,337,'org.apache.tomcat.util.http.ServerCookie','appendCookieValue(StringBuffer, int, String, String, String, String, String, int, boolean, boolean)','DESIGN'),(12924,'Max-Age=secs ... or use old \\\"Expires\\\" format','Line','java/org/apache/tomcat/util/http/ServerCookie.java',240,240,'org.apache.tomcat.util.http.ServerCookie','appendCookieValue(StringBuffer, int, String, String, String, String, String, int, boolean, boolean)',NULL),(12925,'XXX\nthe trims here are a *hack* -- this should\nbe more properly fixed to be spec compliant','Line','java/org/apache/tomcat/util/http/Cookies.java',288,290,'org.apache.tomcat.util.http.Cookies','processCookieHeader(String)','DESIGN'),(12926,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/BasicAuthenticator.java',163,163,'org.apache.catalina.authenticator.BasicAuthenticator','authenticate(Request, Response, LoginConfig)',NULL),(12927,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/BasicAuthenticator.java',137,137,'org.apache.catalina.authenticator.BasicAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(12928,'TODO SERVLET3 - file upload','Line','java/org/apache/catalina/connector/Request.java',2389,2389,'org.apache.catalina.connector.Request','getPart(String)','NOT_DESIGN'),(12929,'TODO SERVLET3 - file upload','Line','java/org/apache/catalina/connector/Request.java',2385,2385,'org.apache.catalina.connector.Request','getParts()',NULL),(12930,'Determine how much data should be kept in the\nbuffer.','Line','java/org/apache/tomcat/util/http/fileupload/MultipartStream.java',512,513,'org.apache.tomcat.util.http.fileupload.MultipartStream','readBodyData(OutputStream)','NOT_DESIGN'),(12931,'None','None','java/org/apache/tomcat/util/http/fileupload/MultipartStream.java',-1,-1,'None','None',NULL),(12932,'Move the data to the beging of the buffer.','Line','java/org/apache/tomcat/util/http/fileupload/MultipartStream.java',525,525,'org.apache.tomcat.util.http.fileupload.MultipartStream','readBodyData(OutputStream)','NOT_DESIGN'),(12933,'Determine how much data should be kept in the\nbuffer.','Line','java/org/apache/tomcat/util/http/fileupload/MultipartStream.java',590,591,'org.apache.tomcat.util.http.fileupload.MultipartStream','discardBodyData()','NOT_DESIGN'),(12934,'Move the data to the beging of the buffer.','Line','java/org/apache/tomcat/util/http/fileupload/MultipartStream.java',602,602,'org.apache.tomcat.util.http.fileupload.MultipartStream','discardBodyData()','NOT_DESIGN'),(12935,'The uploaded file is being stored on disk\nin a temporary location so move it to the\ndesired file.','Block','java/org/apache/tomcat/util/http/fileupload/DefaultFileItem.java',364,368,'org.apache.tomcat.util.http.fileupload.DefaultFileItem','write(File)',NULL),(12936,'Work around IE5 Mac bug with input type=image.\nBecause the boundary delimiter, not including the trailing\nCRLF, must not appear within any file (RFC 2046, section\n5.1.1), we know the missing CR is due to a buggy browser\nrather than a file containing something similar to a\nboundary.','Line','java/org/apache/tomcat/util/http/fileupload/MultipartStream.java',456,461,'org.apache.tomcat.util.http.fileupload.MultipartStream','noteBytesRead(int)',NULL),(12937,'Move the data to the beginning of the buffer.','Line','java/org/apache/tomcat/util/http/fileupload/MultipartStream.java',966,966,'org.apache.tomcat.util.http.fileupload.MultipartStream','makeAvailable()',NULL),(12938,'The uploaded file is being stored on disk\nin a temporary location so move it to the\ndesired file.','Block','java/org/apache/tomcat/util/http/fileupload/DiskFileItem.java',420,424,'org.apache.tomcat.util.http.fileupload.DiskFileItem','write(File)',NULL),(12939,'TODO SERVLET3 - Multipart config','Line','java/org/apache/catalina/startup/WebXml.java',565,565,'org.apache.catalina.startup.WebXml','configureContext(Context)','NOT_DESIGN'),(12940,'// this mbean is asscoiated with a source - maybe we want to persist','Line','java/org/apache/tomcat/util/modeler/BaseModelMBean.java',442,442,'org.apache.tomcat.util.modeler.BaseModelMBean','getAttribute(String)',NULL),(12941,'// this mbean is associated with a source - maybe we want to persist','Line','java/org/apache/tomcat/util/modeler/BaseModelMBean.java',442,442,'org.apache.tomcat.util.modeler.BaseModelMBean','getAttribute(String)',NULL),(12942,'from commons logging. This would be my number one reason why java.util.logging\nis bad - design by committee can be really bad ! The impact on performance of\nusing java.util.logging - and the ugliness if you need to wrap it - is far\nworse than the unfriendly and uncommon default format for logs.','Line','java/org/apache/juli/logging/DirectJDKLog.java',146,149,'org.apache.juli.logging.DirectJDKLog','log(Level, String, Throwable)',NULL),(12943,'4 - hardcoded, byte[] marshalling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpProcessor.java',1236,1237,'org.apache.coyote.ajp.AjpProcessor','doWrite(ByteChunk, Response)',NULL),(12944,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpProcessor.java',1236,1237,'org.apache.coyote.ajp.AjpProcessor','doWrite(ByteChunk, Response)',NULL),(12945,'4 - hardcoded, byte[] marshalling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',1298,1299,'org.apache.coyote.ajp.AjpAprProcessor','doWrite(ByteChunk, Response)',NULL),(12946,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',1298,1299,'org.apache.coyote.ajp.AjpAprProcessor','doWrite(ByteChunk, Response)',NULL),(12947,'None','None','java/org/apache/catalina/startup/WebXml.java',-1,-1,'None','None',NULL),(12948,'TODO - Rewrite this to use the Servlet 3 file upload API','Line','java/org/apache/catalina/manager/HTMLManagerServlet.java',266,266,'org.apache.catalina.manager.HTMLManagerServlet','doGet(HttpServletRequest, HttpServletResponse)','DESIGN'),(12949,'TODO SERVLET3 - file upload','Line','java/org/apache/catalina/connector/Request.java',2401,2401,'org.apache.catalina.connector.Request','getParts()','NOT_DESIGN'),(12950,'None','None','java/org/apache/catalina/manager/HTMLManagerServlet.java',-1,-1,'None','None',NULL),(12951,'TODO lookup JNDI name','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java',151,151,'org.apache.tomcat.jdbc.pool.PooledConnection','connect()',NULL),(12952,'TODO: in-process communication without sockets for testing','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/MemoryIOConnector.java',56,56,'org.apache.tomcat.lite.io.MemoryIOConnector','notifyDataAvailable(Object)',NULL),(12953,'TODO: mix','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/MemoryIOConnector.java',76,76,'org.apache.tomcat.lite.io.MemoryIOConnector','connect(String, int, ConnectedCallback)',NULL),(12954,'Consume as much as possible without blocking','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOReader.java',180,180,'org.apache.tomcat.lite.io.IOReader','read(char[], int, int)',NULL),(12955,'TODO: long, int conversions -> get from harmony Long','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/CBuffer.java',219,219,'org.apache.tomcat.lite.io.CBuffer','appendInt(int)',NULL),(12956,'TODO: copy from harmony StringBuffer','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/CBuffer.java',221,221,'org.apache.tomcat.lite.io.CBuffer','appendInt(int)',NULL),(12957,'TODO: failures ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOConnector.java',35,35,'org.apache.tomcat.lite.io.IOConnector','connect(String, int, IOConnector.ConnectedCallback)',NULL),(12958,'Last activity timestamp.\nTODO: update, etc','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOChannel.java',38,39,'org.apache.tomcat.lite.io.IOChannel','None',NULL),(12959,'TODO: do we want to migrate them automatically ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOChannel.java',178,178,'org.apache.tomcat.lite.io.IOChannel','addFilterAfter(IOChannel)',NULL),(12960,'TODO: buffer growth in caller','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOWriter.java',124,124,'org.apache.tomcat.lite.io.IOWriter','encode1(CharBuffer, ByteBuffer, CharsetEncoder, boolean)',NULL),(12961,'TODO: if eof -> exception ?\ncc has remaining chars - for example a surrogate start.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOWriter.java',132,133,'org.apache.tomcat.lite.io.IOWriter','encode1(CharBuffer, ByteBuffer, CharsetEncoder, boolean)',NULL),(12962,'TODO: space to +','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/UrlEncoding.java',76,76,'org.apache.tomcat.lite.io.UrlEncoding','urlEncode(CBuffer, BBuffer, CBuffer, CharsetEncoder, BitSet, boolean, IOWriter)',NULL),(12963,'TODO: trace log - record all events with timestamps, replay','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',109,109,'org.apache.tomcat.lite.io.NioThread','getOpen()',NULL),(12964,'TODO: start it on-demand, close it when not in use','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',117,117,'org.apache.tomcat.lite.io.NioThread','getOpen()',NULL),(12965,'TODO: use future !','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',444,444,'org.apache.tomcat.lite.io.NioThread','handleAccept(NioChannel, SelectionKey)',NULL),(12966,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',690,690,'org.apache.tomcat.lite.io.NioThread','configureSocket(ByteChannel, boolean)',NULL),(12967,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',697,697,'org.apache.tomcat.lite.io.NioThread','setSocketOptions(NioChannel, int, boolean, int)',NULL),(12968,'TODO: add SSL here','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',773,773,'org.apache.tomcat.lite.io.NioThread','acceptor(NioChannelCallback, int, InetAddress, int, int)',NULL),(12969,'TODO: test with large sets, maybe sort','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',846,846,'org.apache.tomcat.lite.io.NioThread','updateSleepTimeAndProcessTimeouts(long)',NULL),(12970,'TODO: make sure this is updated if it was selected','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',873,873,'org.apache.tomcat.lite.io.NioThread','updateSleepTimeAndProcessTimeouts(long)',NULL),(12971,'TODO: suspended ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',903,903,'org.apache.tomcat.lite.io.NioThread','writeInterest(NioChannel)',NULL),(12972,'TODO: should we remove it ? It needs to be re-activated\nlater.\n??','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',1005,1007,'org.apache.tomcat.lite.io.NioThread','selThreadReadInterest(NioChannel)',NULL),(12973,'XXX works only for enc compatible with ASCII/UTF !!!','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/BBuffer.java',265,265,'org.apache.tomcat.lite.io.BBuffer','equals(char[], int, int)',NULL),(12974,'// all slices have been released -\n// TODO: callback, return to pool\n}\n}','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/BBuffer.java',774,777,'org.apache.tomcat.lite.io.BBuffer','release()',NULL),(12975,'TODO: if > 0x7F, convert to chars / switch to UTF8','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/BBuffer.java',1021,1021,'org.apache.tomcat.lite.io.BBuffer','hashBytes(byte[], int, int)',NULL),(12976,'TODO: unix domain socket impl.\nMaybe: detect new files in the filesystem ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/FileConnectorJavaIo.java',40,41,'org.apache.tomcat.lite.io.FileConnectorJavaIo','acceptor(ConnectedCallback, CharSequence, Object)',NULL),(12977,'TODO: append() will trigger callbacks - do it explicitely !!!\nTODO: queue() shouldn\'t modify the buffer','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOBuffer.java',13,14,'None','None',NULL),(12978,'Support for appending - needs improvements.\nappendable buffer is part of the buffer list if it has\ndata, and kept here if empty.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOBuffer.java',45,47,'org.apache.tomcat.lite.io.IOBuffer','isSignaled()',NULL),(12979,'TODO: decode with prober charset','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOBuffer.java',110,110,'org.apache.tomcat.lite.io.IOBuffer','queue(String)',NULL),(12980,'TODO: concurrency ???','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOBuffer.java',554,554,'org.apache.tomcat.lite.io.IOBuffer','popFirst()',NULL),(12981,'TODO: dump to a file, hex, etc.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/DumpChannel.java',7,7,'None','None',NULL),(12982,'\nXXX NOTE:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.\n\nhigh order byte must be zero','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOOutputStream.java',121,127,'org.apache.tomcat.lite.io.IOOutputStream','print(String)',NULL),(12983,'TODO: pool, balanced usage\nTODO: bind into OM or callback when created','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SocketConnector.java',30,31,'org.apache.tomcat.lite.io.SocketConnector','None',NULL),(12984,'TODO: find an unused port','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SocketConnector.java',100,100,'org.apache.tomcat.lite.io.SocketConnector','connect(String, int, IOConnector.ConnectedCallback)',NULL),(12985,'TODO: suspendAccept(boolean)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SocketConnector.java',125,125,'org.apache.tomcat.lite.io.SocketConnector','None',NULL),(12986,'TODO: enable anon suites','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',83,83,'org.apache.tomcat.lite.io.SslChannel','None',NULL),(12987,'TODO: send/receive one more packet ( handshake mode ? )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',168,168,'org.apache.tomcat.lite.io.SslChannel','initSsl()',NULL),(12988,'TODO: timer to close socket if we don\'t get\nclean close handshake','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',227,228,'org.apache.tomcat.lite.io.SslChannel','close()',NULL),(12989,'SSL handshake require slow tasks - that will need to be executed in a\nthread anyways. Better to keep it simple ( the code is very complex ) -\nand do the initial handshake in a thread, not in the IO thread.\nWe\'ll need to unregister and register again from the selector.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',272,275,'org.apache.tomcat.lite.io.SslChannel','handleHandshking()',NULL),(12990,'Other options: ReentrantLock uses AbstractQueueSynchronizer,\nmore complex. Same for CountDownLatch\nFutureTask - uses Sync as well, ugly interface with\nCallable, can\'t be recycled.\nMina: simple object lock, doesn\'t extend java.util.concurent.Future','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/FutureCallbacks.java',25,29,'org.apache.tomcat.lite.http.FutureCallbacks','None',NULL),(12991,'Used to receive an entity - headers + maybe some body\nread() must first consume extra data from this buffer.\nNext reads will be direct from socket.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',54,56,'org.apache.tomcat.lite.http.HttpChannel','None','DESIGN'),(12992,'TODO: setters','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',84,84,'org.apache.tomcat.lite.http.HttpChannel','None','NOT_DESIGN'),(12993,'TODO: next read() should throw exception !!','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',390,390,'org.apache.tomcat.lite.http.HttpChannel','handleEndReceive(boolean)','DESIGN'),(12994,'TODO: hook to allow specific charsets ( can be done later )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',662,662,'org.apache.tomcat.lite.http.HttpChannel','parseMessage(BBuffer)',NULL),(12995,'TODO: process \'interesting\' headers here.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',841,841,'org.apache.tomcat.lite.http.HttpChannel','parseHeaders(HttpMessageBytes, BBuffer)',NULL),(12996,'TODO: configure, use the callback or the servlet \'read\'.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',929,929,'org.apache.tomcat.lite.http.HttpChannel','processExpectation()',NULL),(12997,'TODO: port','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',1021,1021,'org.apache.tomcat.lite.http.HttpChannel','sendRequest()','NOT_DESIGN'),(12998,'TODO retry if closed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',1049,1049,'org.apache.tomcat.lite.http.HttpChannel','sendRequest()',NULL),(12999,'TODO: add any body and flush. More body can be added later -\nincluding \'end\'.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',1116,1117,'org.apache.tomcat.lite.http.HttpChannel','sendRequestHeaders(IOChannel)',NULL),(13000,'TODO: more flexibility/callbacks on selecting the target, acl, etc','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',124,124,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13001,'TODO: http://.... URLs','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',1335,1335,'org.apache.tomcat.lite.http.HttpChannel','normalize(BBuffer)',NULL),(13002,'SSL proxy - just connect and forward all packets\nTODO: optimize, add error checking','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',126,127,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13003,'TODO: multiple transfer encoding headers, only process the last','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpBody.java',105,105,'org.apache.tomcat.lite.http.HttpBody','toString()',NULL),(13004,'Real proxy - extract client address, modify the uri.\nTODO: optimize the strings.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',156,157,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13005,'}\n// TODO: other encoding filters\n// TODO: this should be separate layer\n}','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpBody.java',152,155,'org.apache.tomcat.lite.http.HttpBody','toString()',NULL),(13006,'Will send the original request (TODO: small changes)\nResponse is not affected ( we use the callback )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',208,209,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13007,'TODO: Trailing headers','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpBody.java',216,216,'org.apache.tomcat.lite.http.HttpBody','parseChunkHeader(IOBuffer)',NULL),(13008,'TODO: use different thread ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/SocksServer.java',349,349,'org.apache.tomcat.lite.proxy.SocksServer','startClientConnection()',NULL),(13009,'TODO: pool - this may stay in the queue while we flush more','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpBody.java',291,291,'org.apache.tomcat.lite.http.HttpBody','prepareChunkHeader(int)',NULL),(13010,'TODO: ip6','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/SocksServer.java',366,366,'org.apache.tomcat.lite.proxy.SocksServer','startClientConnection()',NULL),(13011,'TODO: Make sure we don\'t process more than we need ( eat next req ).\nIf we read too much: leave it in readBuf, the finalzation code\nshould skip KeepAlive and start processing it.\nwe need to read at least something - to detect -1 ( we could\nsuspend right away, but seems safer.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpBody.java',329,333,'org.apache.tomcat.lite.http.HttpBody','rawDataReceived(IOBuffer)',NULL),(13012,'TODO: only send < remainingWrite, if buffer\nkeeps changing after startWrite() is called (shouldn\'t)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpBody.java',443,444,'org.apache.tomcat.lite.http.HttpBody','flushToNext()',NULL),(13013,'TODO: abort ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpBody.java',522,522,'org.apache.tomcat.lite.http.HttpBody','close()',NULL),(13014,'we could allow \'locking\' - I don\'t think this is\na very useful optimization','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',226,227,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13015,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',267,267,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13016,'TODO: Uencode','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',274,274,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13017,'TODO: generate % encoding ( reverse of decodeRequest )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',290,290,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13018,'XXX','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',330,330,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13019,'TODO: encode or use decoded','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',441,441,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13020,'TODO: this is from coyote - MUST be rewritten !!!\n- cleaner\n- chunked encoding for body\n- buffer should be in a pool, etc.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',519,522,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13021,'TODO: option \'useBodyEncodingForUri\' - versus UTF or ASCII','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',580,580,'org.apache.tomcat.lite.http.HttpRequest','handleQueryParameters()',NULL),(13022,'Workaround for a&b&c encoding','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',607,607,'org.apache.tomcat.lite.http.HttpRequest','processParameters(byte[], int, int, String)',NULL),(13023,'TODO: use CBuffer, recycle','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',632,632,'org.apache.tomcat.lite.http.HttpRequest','processParameters(byte[], int, int, String)',NULL),(13024,'// Workaround for a&b&c encoding','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',657,657,'org.apache.tomcat.lite.http.HttpRequest','urlDecode(BBuffer, String)',NULL),(13025,'}\n\n// TODO: use CBuffer, recycle','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',680,682,'org.apache.tomcat.lite.http.HttpRequest','urlDecode(BBuffer, String)',NULL),(13026,'// TODO:','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',691,691,'org.apache.tomcat.lite.http.HttpRequest','urlDecode(BBuffer, String)',NULL),(13027,'TODO: direct','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpWriter.java',309,309,'org.apache.tomcat.lite.http.HttpWriter','println(CharSequence)',NULL),(13028,'Version 1 (RFC2965) attributes\nTODO Add support for CommentURL\nDiscard - implied by maxAge <0\nTODO Add support for Port','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/ServerCookie.java',95,98,'org.apache.tomcat.lite.http.ServerCookie','initialValue()',NULL),(13029,'TODO Re-enable logging when RFC2965 is implemented','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/ServerCookie.java',243,243,'org.apache.tomcat.lite.http.ServerCookie','initialValue()',NULL),(13030,'TODO RFC2965 fields also need to be passed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/ServerCookie.java',259,259,'org.apache.tomcat.lite.http.ServerCookie','initialValue()',NULL),(13031,'Max-Age=secs ... or use old \\\"Expires\\\" format\nTODO RFC2965 Discard','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/ServerCookie.java',297,298,'org.apache.tomcat.lite.http.ServerCookie','initialValue()',NULL),(13032,'TODO: if protocol == 1.0 and we requested 1.1, downgrade getHttpChannel().pro','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpResponse.java',101,101,'org.apache.tomcat.lite.http.HttpResponse','recycle()',NULL),(13033,'TODO: insert SSL filter','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',185,185,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13034,'path + qry\nTODO: query string','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',188,189,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13035,'TODO: timeout event to close it','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',284,284,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)','DESIGN'),(13036,'TODO: JSSE filter','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',395,395,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13037,'TODO: add timeouts, limits per host/total, expire old entries\nTODO: discover apr and use it','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',462,463,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13038,'TODO:','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/BaseMapper.java',39,39,'org.apache.tomcat.lite.http.BaseMapper','None',NULL),(13039,'TODO: if hosts.length == 1 or defaultHost ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/BaseMapper.java',211,211,'org.apache.tomcat.lite.http.BaseMapper','map(BBucket, BBucket, MappingData)',NULL),(13040,'TODO: cookies parsed when headers are added !','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpMessage.java',125,125,'org.apache.tomcat.lite.http.HttpMessage','status()',NULL),(13041,'Not used in coyote connector ( hack )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpMessage.java',350,350,'org.apache.tomcat.lite.http.HttpMessage','sendHead()','DESIGN'),(13042,'TODO: serialize if not set','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpMessage.java',435,435,'org.apache.tomcat.lite.http.HttpMessage','getMsgBytes()',NULL),(13043,'TODO: move the readLine functionality to base coyote IO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletReaderImpl.java',92,92,'org.apache.tomcat.lite.servlet.ServletReaderImpl','readLine()',NULL),(13044,'TODO: refactor all \'stm\' to separate class (not implemented)\npublic static final String SINGLE_THREADED_PROXY =','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',70,71,'org.apache.tomcat.lite.servlet.ServletConfigImpl','None',NULL),(13045,'this is quite different from catalina, where an ugly kludge was\nused to use the same jsp servlet in 2 roles','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',405,406,'org.apache.tomcat.lite.servlet.ServletConfigImpl','newInstance()',NULL),(13046,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',769,769,'org.apache.tomcat.lite.servlet.ServletConfigImpl','service(HttpRequest, HttpResponse)',NULL),(13047,'Send a default message body.\nTODO: maybe other mechanism to customize default.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',830,831,'org.apache.tomcat.lite.servlet.ServletConfigImpl','serviceServlet(ServletContextImpl, ServletRequestImpl, ServletResponseImpl, ServletConfigImpl, MappingData)',NULL),(13048,'TODO: handle via error pages !','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',857,857,'org.apache.tomcat.lite.servlet.ServletConfigImpl','handleUnavailable(ServletResponseImpl, ServletConfigImpl)',NULL),(13049,'Retrieve the thread local URI, used for mapping\nTODO: recycle RequestDispatcher stack and associated objects\ninstead of this object','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/RequestDispatcherImpl.java',423,425,'org.apache.tomcat.lite.servlet.RequestDispatcherImpl','mapPath()',NULL),(13050,'TODO: make charBuffer part of request or something','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/RequestDispatcherImpl.java',464,464,'org.apache.tomcat.lite.servlet.RequestDispatcherImpl','mapPath()',NULL),(13051,'TODO: init params to specify\nTODO: remote request','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/JspLoader.java',42,43,'org.apache.tomcat.lite.servlet.JspLoader','compileAndInitPage(ServletContext, String, ServletConfig, String)',NULL),(13052,'}\n\n\n/**\nSet the Host within which this Request is being processed.  This\nmust be called as soon as the appropriate Host is identified, and\nbefore the Request is passed to a context.\n\n@param host The newly associated Host\n/','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',391,400,'org.apache.tomcat.lite.servlet.ServletRequestImpl','addHeader(String, String)',NULL),(13053,'TODO: we could override all methods and\nreturn recyclable cookies, if we really wanted','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',655,656,'org.apache.tomcat.lite.servlet.ServletRequestImpl','getCookies()',NULL),(13054,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',1176,1176,'org.apache.tomcat.lite.servlet.ServletRequestImpl','getRequestURL()',NULL),(13055,'TODO: check !!!!\nCheck for a role defined directly as a <security-role>','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',1356,1357,'org.apache.tomcat.lite.servlet.ServletRequestImpl','isUserInRole(String)',NULL),(13056,'all contexts - hostMapper knows about hostnames and how they are mapped.\nthis shouldn\'t be needed if we want to delegate ctx management','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',64,65,'org.apache.tomcat.lite.servlet.TomcatLite','None',NULL),(13057,'TODO ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',289,289,'org.apache.tomcat.lite.servlet.TomcatLite','defaultObjectManager()',NULL),(13058,'TODO: destroy all servlets and filters\nTODO: clean up any other reference to the context or its loader','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',300,301,'org.apache.tomcat.lite.servlet.TomcatLite','defaultObjectManager()',NULL),(13059,'TODO: move later','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',363,363,'org.apache.tomcat.lite.servlet.TomcatLite','defaultObjectManager()',NULL),(13060,'TODO: support real uri ( http://host/path )\nValidate the format of the specified argument','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletContextImpl.java',361,362,'org.apache.tomcat.lite.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13061,'FIXME - should we do anything besides log these?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletContextImpl.java',748,748,'org.apache.tomcat.lite.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13062,'TODO: configurable filesystem','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletContextImpl.java',973,973,'org.apache.tomcat.lite.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13063,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletContextImpl.java',1050,1050,'org.apache.tomcat.lite.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13064,'JMX should know about us ( TODO: is it too early ? )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletContextImpl.java',1230,1230,'org.apache.tomcat.lite.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13065,'create a class loader.\nTODO: reimplement special \'deploy\' dirs','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletContextImpl.java',1281,1282,'org.apache.tomcat.lite.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13066,'TODO: configurable ? init-params','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletContextImpl.java',1320,1320,'org.apache.tomcat.lite.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13067,'TODO(costin): optimize: separate in 2 lists, one for url-mapped, one for\nservlet-name. Maybe even separate list for dispatcher and\nnon-dispatcher','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/WebappFilterMapper.java',165,167,'org.apache.tomcat.lite.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13068,'FIXME - log configuration problem','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/WebappFilterMapper.java',183,183,'org.apache.tomcat.lite.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13069,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestWrapperImpl.java',453,453,'org.apache.tomcat.lite.servlet.ServletRequestWrapperImpl','getAttribute(String)',NULL),(13070,'XXX','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletResponseImpl.java',154,154,'org.apache.tomcat.lite.servlet.ServletResponseImpl','None',NULL),(13071,'Probably useless','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletResponseImpl.java',318,318,'org.apache.tomcat.lite.servlet.ServletResponseImpl','createOutputStream()',NULL),(13072,'Send a default message body.\nTODO: maybe other mechanism to customize default.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletResponseImpl.java',1002,1003,'org.apache.tomcat.lite.servlet.ServletResponseImpl','sendError(int, String)',NULL),(13073,'TODO: resource injection','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/FilterConfigImpl.java',144,144,'org.apache.tomcat.lite.servlet.FilterConfigImpl','createFilter()',NULL),(13074,'TODO: add DefaultAnnotationProcessor\nTODO: implement the options','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/jspc/JasperRuntime.java',24,25,'org.apache.tomcat.servlets.jspc.JasperRuntime','None',NULL),(13075,'TODO: allow only local calls ?','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/jspc/JspcServlet.java',38,38,'org.apache.tomcat.servlets.jspc.JspcServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(13076,'Not supported right now - TODO: collect, have jndi plugin','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/WebXml.java',194,194,'org.apache.tomcat.servlets.config.deploy.WebXml','readWebXml(InputStream, String)',NULL),(13077,'TODO: move to \'tools\' dir, don\'t include in runtime\n( same for xml processor ) - use binary\n','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',29,31,'None','None',NULL),(13078,'TODO: stupid ordering rules - probably will require merging configs\nand other ugliness.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',33,34,'None','None',NULL),(13079,'TODO: the even more brain-damaged ServletContextInitializer and\nHandlesTypes - which requires recording all annotations for all classes,\nand worse - all the hierarchy to detect annotations on super.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',36,38,'None','None',NULL),(13080,'TODO: keep track of files to avoid loops','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',110,110,'org.apache.tomcat.servlets.config.deploy.AnnotationsProcessor','processDir(String)',NULL),(13081,'TODO: checks','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',188,188,'org.apache.tomcat.servlets.config.deploy.AnnotationsProcessor','processClass(InputStream, String, String)',NULL),(13082,'TODO: validity checks (implements servlet, etc)','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',224,224,'org.apache.tomcat.servlets.config.deploy.AnnotationsProcessor','processServlets(String, Map<String, AnnotationNode>, ClassNode)',NULL),(13083,'TODO: collect them, add on each of the URLs\nTODO: also on methods','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',265,266,'org.apache.tomcat.servlets.config.deploy.AnnotationsProcessor','processServlets(String, Map<String, AnnotationNode>, ClassNode)',NULL),(13084,'TODO: validity checks (implements servlet, etc)','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/config/deploy/AnnotationsProcessor.java',285,285,'org.apache.tomcat.servlets.config.deploy.AnnotationsProcessor','processWebFilter(String, Map<String, AnnotationNode>)',NULL),(13085,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/jmx/JMXProxyServlet.java',245,247,'org.apache.tomcat.servlets.jmx.JMXProxyServlet','escape(String)',NULL),(13086,'TODO: reloading filter: get the class file,\ncompare with jsp file, use dependants','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/jsp/BaseJspLoader.java',74,75,'org.apache.tomcat.servlets.jsp.BaseJspLoader','init(ServletContext)',NULL),(13087,'TODO: .ser, reloading, etc','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/webxml/TomcatLiteWebXmlConfig.java',42,42,'org.apache.tomcat.lite.webxml.TomcatLiteWebXmlConfig','readWebXml(ServletContextImpl, String)',NULL),(13088,'// TODO: this should move to deploy - if not set, there is no point','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/webxml/TomcatLiteWebXmlConfig.java',44,44,'org.apache.tomcat.lite.webxml.TomcatLiteWebXmlConfig','readWebXml(ServletContextImpl, String)',NULL),(13089,'all contexts - hostMapper knows about hostnames and how they are mapped.\nthis shouldn\'t be needed if we want to delegate ctx management','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/TomcatLite.java',77,78,'org.apache.coyote.servlet.TomcatLite','None',NULL),(13090,'TODO: destroy all servlets and filters\nTODO: clean up any other reference to the context or its loader','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/TomcatLite.java',285,286,'org.apache.tomcat.lite.TomcatLite','removeServletContext(ServletContext)',NULL),(13091,'TODO: destroy all servlets and filters\nTODO: clean up any other reference to the context or its loader','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/TomcatLite.java',285,286,'org.apache.coyote.servlet.TomcatLite','removeServletContext(ServletContext)',NULL),(13092,'TODO: make hostMapper configurable, implement interface,\nsimple to set on ROOT context','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/TomcatLite.java',327,328,'org.apache.tomcat.lite.TomcatLite','service(ServletRequestImpl, ServletResponseImpl)',NULL),(13093,'TODO: make hostMapper configurable, implement interface,\nsimple to set on ROOT context','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/TomcatLite.java',327,328,'org.apache.coyote.servlet.TomcatLite','service(ServletRequestImpl, ServletResponseImpl)',NULL),(13094,'TODO: 404','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/TomcatLite.java',334,334,'org.apache.tomcat.lite.TomcatLite','service(ServletRequestImpl, ServletResponseImpl)',NULL),(13095,'TODO: 404','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/TomcatLite.java',334,334,'org.apache.coyote.servlet.TomcatLite','service(ServletRequestImpl, ServletResponseImpl)',NULL),(13096,'Send a default message body.\nTODO: maybe other mechanism to customize default.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/TomcatLite.java',439,440,'org.apache.tomcat.lite.TomcatLite','serviceServlet(ServletContextImpl, ServletRequestImpl, ServletResponseImpl, ServletConfigImpl, MappingData)',NULL),(13097,'Send a default message body.\nTODO: maybe other mechanism to customize default.','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/TomcatLite.java',439,440,'org.apache.coyote.servlet.TomcatLite','serviceServlet(ServletContextImpl, ServletRequestImpl, ServletResponseImpl, ServletConfigImpl, MappingData)',NULL),(13098,'TODO: handle via error pages !','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/TomcatLite.java',459,459,'org.apache.tomcat.lite.TomcatLite','handleUnavailable(ServletResponseImpl, ServletConfigImpl)',NULL),(13099,'TODO: handle via error pages !','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/TomcatLite.java',459,459,'org.apache.coyote.servlet.TomcatLite','handleUnavailable(ServletResponseImpl, ServletConfigImpl)',NULL),(13100,'TODO: refactor all \'stm\' to separate class (not implemented)\npublic static final String SINGLE_THREADED_PROXY =','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletConfigImpl.java',70,71,'org.apache.tomcat.lite.ServletConfigImpl','None',NULL),(13101,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/DynamicObject.java',156,156,'org.apache.tomcat.integration.DynamicObject','invoke(String, Object[])',NULL),(13102,'TODO: refactor all \'stm\' to separate class (not implemented)\npublic static final String SINGLE_THREADED_PROXY =','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletConfigImpl.java',70,71,'org.apache.coyote.servlet.ServletConfigImpl','None',NULL),(13103,'this is quite different from catalina, where an ugly kludge was\nused to use the same jsp servlet in 2 roles','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletConfigImpl.java',436,437,'org.apache.tomcat.lite.ServletConfigImpl','newInstance()',NULL),(13104,'Ok, no setXXX found, try a setProperty(\\\"name\\\", \\\"value\\\")','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/DynamicObject.java',256,256,'org.apache.tomcat.integration.DynamicObject','setProperty(Object, String, String)',NULL),(13105,'this is quite different from catalina, where an ugly kludge was\nused to use the same jsp servlet in 2 roles','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletConfigImpl.java',428,429,'org.apache.coyote.servlet.ServletConfigImpl','newInstance()',NULL),(13106,'TODO: support real uri ( http://host/path )\nValidate the format of the specified argument','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',379,380,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13107,'Children\nTODO: call @destroy','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/SimpleObjectManager.java',128,129,'org.apache.tomcat.integration.simple.SimpleObjectManager','unbind(String)',NULL),(13108,'TODO: support real uri ( http://host/path )\nValidate the format of the specified argument','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletContextImpl.java',387,388,'org.apache.coyote.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13109,'FIXME - should we do anything besides log these?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',763,763,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13110,'XXX','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/AntProperties.java',41,41,'org.apache.tomcat.integration.simple.AntProperties','replaceProperties(String, Hashtable<Object, Object>, PropertySource[])',NULL),(13111,'FIXME - should we do anything besides log these?','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletContextImpl.java',773,773,'org.apache.coyote.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13112,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1038,1038,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13113,'TODO','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletContextImpl.java',1048,1048,'org.apache.coyote.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13114,'create a class loader.\nTODO: reimplement special \'deploy\' dirs','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1197,1198,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13115,'create a class loader.\nTODO: reimplement special \'deploy\' dirs','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletContextImpl.java',1221,1222,'org.apache.coyote.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13116,'JMX should know about us ( TODO: is it too early ? )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1209,1209,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13117,'JMX should know about us ( TODO: is it too early ? )','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletContextImpl.java',1240,1240,'org.apache.coyote.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13118,'TODO: configurable ? init-params','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletContextImpl.java',1252,1252,'org.apache.tomcat.lite.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13119,'TODO: configurable ? init-params','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletContextImpl.java',1283,1283,'org.apache.coyote.servlet.ServletContextImpl','setTomcat(TomcatLite)',NULL),(13120,'}\n\n\n/**\nSet the Host within which this Request is being processed.  This\nmust be called as soon as the appropriate Host is identified, and\nbefore the Request is passed to a context.\n\n@param host The newly associated Host\n/','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletRequestImpl.java',451,460,'org.apache.tomcat.lite.ServletRequestImpl','None',NULL),(13121,'}\n\n\n/**\nSet the Host within which this Request is being processed.  This\nmust be called as soon as the appropriate Host is identified, and\nbefore the Request is passed to a context.\n\n@param host The newly associated Host\n/','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestImpl.java',451,460,'org.apache.coyote.servlet.ServletRequestImpl','None',NULL),(13122,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletRequestImpl.java',1372,1372,'org.apache.tomcat.lite.ServletRequestImpl','getRequestURL()',NULL),(13123,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestImpl.java',1372,1372,'org.apache.coyote.servlet.ServletRequestImpl','getRequestURL()',NULL),(13124,'TODO: check !!!!\nCheck for a role defined directly as a <security-role>','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletRequestImpl.java',1571,1572,'org.apache.tomcat.lite.ServletRequestImpl','isUserInRole(String)',NULL),(13125,'TODO: check !!!!\nCheck for a role defined directly as a <security-role>','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestImpl.java',1571,1572,'org.apache.coyote.servlet.ServletRequestImpl','isUserInRole(String)',NULL),(13126,'Retrieve the thread local URI, used for mapping\nTODO: recycle RequestDispatcher stack and associated objects\ninstead of this object','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/RequestDispatcherImpl.java',422,424,'org.apache.coyote.servlet.RequestDispatcherImpl','mapPath()',NULL),(13127,'TODO: make charBuffer part of request or something','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/RequestDispatcherImpl.java',469,469,'org.apache.coyote.servlet.RequestDispatcherImpl','mapPath()',NULL),(13128,'TODO: move the readLine functionality to base coyote IO','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletReaderImpl.java',112,112,'org.apache.coyote.servlet.ServletReaderImpl','readLine()',NULL),(13129,'An IOException on a write is almost always due to\nthe remote client aborting the request.  Wrap this\nso that it can be handled better by the error dispatcher.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/BodyWriter.java',351,353,'org.apache.tomcat.lite.BodyWriter','realWriteBytes(byte[], int, int)',NULL),(13130,'An IOException on a write is almost always due to\nthe remote client aborting the request.  Wrap this\nso that it can be handled better by the error dispatcher.','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/BodyWriter.java',351,353,'org.apache.coyote.servlet.BodyWriter','realWriteBytes(byte[], int, int)',NULL),(13131,'TODO: resource injection','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/FilterConfigImpl.java',150,150,'org.apache.tomcat.lite.FilterConfigImpl','createFilter()',NULL),(13132,'TODO: resource injection','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/FilterConfigImpl.java',150,150,'org.apache.coyote.servlet.FilterConfigImpl','createFilter()',NULL),(13133,'Default servlet: check if it\'s file or dir to apply\nwelcome files rules.\nTODO: Save the File in attributes,\nto avoid duplication in DefaultServlet.','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/WebappServletMapper.java',335,338,'org.apache.coyote.servlet.WebappServletMapper','setServletContext(ServletContextImpl)',NULL),(13134,'TODO(costin): optimize: separate in 2 lists, one for url-mapped, one for\nservlet-name. Maybe even separate list for dispatcher and\nnon-dispatcher','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/WebappFilterMapper.java',165,167,'org.apache.tomcat.lite.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13135,'TODO(costin): optimize: separate in 2 lists, one for url-mapped, one for\nservlet-name. Maybe even separate list for dispatcher and\nnon-dispatcher','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/WebappFilterMapper.java',165,167,'org.apache.coyote.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13136,'FIXME - log configuration problem','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/WebappFilterMapper.java',183,183,'org.apache.tomcat.lite.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13137,'FIXME - log configuration problem','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/WebappFilterMapper.java',183,183,'org.apache.coyote.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13138,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestWrapperImpl.java',453,453,'org.apache.coyote.servlet.ServletRequestWrapperImpl','getAttribute(String)',NULL),(13139,'TODO: anything else computed in coyote ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/coyote/CoyoteConnector.java',116,116,'org.apache.tomcat.lite.coyote.CoyoteConnector','acknowledge(HttpServletResponse)',NULL),(13140,'TODO: anything else computed in coyote ?','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/CoyoteConnector.java',109,109,'org.apache.coyote.servlet.CoyoteConnector','acknowledge(HttpServletResponse)',NULL),(13141,'Final processing\nTODO: only if not commet, this doesn\'t work with the\nother connectors since we don\'t have the info\nTODO: add this note in the nio/apr connectors\nTODO: play nice with TomcatLite, other adapters that flush/close','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/coyote/CoyoteConnector.java',202,206,'org.apache.tomcat.lite.coyote.CoyoteConnector','acknowledge(HttpServletResponse)',NULL),(13142,'Final processing\nTODO: only if not commet, this doesn\'t work with the\nother connectors since we don\'t have the info\nTODO: add this note in the nio/apr connectors\nTODO: play nice with TomcatLite, other adapters that flush/close','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/CoyoteConnector.java',195,199,'org.apache.coyote.servlet.CoyoteConnector','acknowledge(HttpServletResponse)',NULL),(13143,'Not supported right now - TODO: collect, have jndi plugin','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/webxml/WebXml.java',185,185,'org.apache.tomcat.lite.webxml.WebXml','readWebXml(InputStream)',NULL),(13144,'XXX','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletResponseImpl.java',164,164,'org.apache.tomcat.lite.ServletResponseImpl','None',NULL),(13145,'XXX','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletResponseImpl.java',164,164,'org.apache.coyote.servlet.ServletResponseImpl','None',NULL),(13146,'Probably useless','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletResponseImpl.java',329,329,'org.apache.tomcat.lite.ServletResponseImpl','createOutputStream()',NULL),(13147,'Probably useless','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletResponseImpl.java',329,329,'org.apache.coyote.servlet.ServletResponseImpl','createOutputStream()',NULL),(13148,'Send a default message body.\nTODO: maybe other mechanism to customize default.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/ServletResponseImpl.java',1055,1056,'org.apache.tomcat.lite.ServletResponseImpl','sendError(int, String)',NULL),(13149,'Send a default message body.\nTODO: maybe other mechanism to customize default.','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletResponseImpl.java',1055,1056,'org.apache.coyote.servlet.ServletResponseImpl','sendError(int, String)',NULL),(13150,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/service/JMXProxy.java',199,201,'org.apache.tomcat.lite.service.JMXProxy','escape(String)',NULL),(13151,'TODO','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',113,113,'org.apache.coyote.lite.LiteProtocolHandler','coyoteService(HttpRequest, HttpResponse)','NOT_DESIGN'),(13152,'TODO: turn http request into a coyote request - copy all fields,\nadd hooks where needed.','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',130,131,'org.apache.coyote.lite.LiteProtocolHandler','coyoteService(HttpRequest, HttpResponse)','DESIGN'),(13153,'HACK','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/GTest.java',1027,1027,'org.apache.tomcat.test.watchdog.GTest','parseHeader(String, HashMap, boolean)',NULL),(13154,'\nTest method for \'org.apache.tomcat.util.buf.UEncoder.encodeURL(String)\'\nTODO: find the relevant rfc and apache tests and add more','Block','modules/tomcat-lite/test/org/apache/tomcat/lite/io/UEncoderTest.java',13,17,'org.apache.tomcat.lite.io.UEncoderTest','testEncodeURL()',NULL),(13155,'HACK','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogTestImpl.java',1099,1099,'org.apache.tomcat.test.watchdog.WatchdogTestImpl','parseHeader(String, HashMap, boolean)',NULL),(13156,'TODO: blocking ! needs thread pool !','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/http/services/SleepCallback.java',54,54,'org.apache.tomcat.lite.http.services.SleepCallback','service(HttpRequest, HttpResponse)',NULL),(13157,'// TODO: init servlet','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/TestMain.java',240,240,'org.apache.tomcat.lite.TestMain','startAll(String, int)',NULL),(13158,'TODO: check what the proxy sent','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/proxy/SmallProxyTest.java',92,92,'org.apache.tomcat.lite.proxy.SmallProxyTest','testProxy()',NULL),(13159,'TODO: fix the build file to find the target dir\nyou can run this manually until this happens','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/servlet/AnnotationTest.java',15,16,'org.apache.tomcat.lite.servlet.AnnotationTest','None',NULL),(13160,'Several components end up calling:\nsun.misc.GC.requestLatency(long)\n\nThose libraries / components known to trigger memory leaks due to\neventual calls to requestLatency(long) are:\n- javax.management.remote.rmi.RMIConnectorServer.start()','Block','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',172,179,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(13161,'This method is deprecated and for good reason. This is\nvery risky code but is only only option at this point\nA *very* good reason for apps to do this clean-up\nthemselves','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1997,2000,'org.apache.catalina.loader.WebappClassLoader','clearReferencesThreads()',NULL),(13162,'None','None','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',-1,-1,'None','None',NULL),(13163,'TODO: hook to allow specific charsets ( can be done later )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',381,381,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13164,'TODO: process \'interesting\' headers here.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',560,560,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13165,'TODO: configure, use the callback or the servlet \'read\'.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',444,444,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13166,'TODO retry if closed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',343,343,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13167,'TODO: add any body and flush. More body can be added later -\nincluding \'end\'.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',790,791,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13168,'TODO: encode or use decoded','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1088,1088,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13169,'TODO: failures ?\nTODO: use String target or url','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOConnector.java',35,36,'org.apache.tomcat.lite.io.IOConnector','connect(String, int, IOConnector.ConnectedCallback)',NULL),(13170,'None','None','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpMessage.java',-1,-1,'None','None',NULL),(13171,'None','None','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',-1,-1,'None','None',NULL),(13172,'Different ways to point to request response (server/client)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',127,127,'org.apache.tomcat.lite.http.HttpChannel','None',NULL),(13173,'TODO: replace with getSocketChannel - used for remote addr, etc','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',265,265,'org.apache.tomcat.lite.http.HttpChannel','close()',NULL),(13174,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',312,312,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13175,'TODO: close out if post','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',479,479,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(13176,'TODO: can be optimizeed...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/CBuffer.java',166,166,'org.apache.tomcat.lite.io.CBuffer','append(int)',NULL),(13177,'TODO: rename to Http11ConnectionTest','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpChannelInMemoryTest.java',20,20,'None','None',NULL),(13178,'TODO: multiple transfer encoding headers, only process the last','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',464,464,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13179,'TODO: Make sure we don\'t process more than we need ( eat next req ).\nIf we read too much: leave it in readBuf, the finalzation code\nshould skip KeepAlive and start processing it.\nwe need to read at least something - to detect -1 ( we could\nsuspend right away, but seems safer','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',622,626,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13180,'TODO: simplify, use readLine()','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',674,674,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13181,'TODO: also need to remove headers matching connection\n( like \'upgrade\')','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',952,953,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13182,'TODO: move it ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1011,1011,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13183,'TODO: better head support','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1041,1041,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13184,'TODO: only send < remainingWrite, if buffer\nkeeps changing after startWrite() is called (shouldn\'t)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1053,1054,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13185,'TODO: Trailing headers','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1257,1257,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13186,'TODO: pool - this may stay in the queue while we flush more','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1332,1332,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13187,'TODO: expectations ?\nFix docs - order matters\nCrashes in chrome','Block','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',19,23,'None','None',NULL),(13188,'TODO: we may initiate multiple SPDY connections with each server\nSending frames is synchronized, receiving is muxed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',36,37,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13189,'TODO: use int map','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',56,56,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13190,'TODO: detect if it\'s spdy or http based on bit 8','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',68,68,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13191,'TODO: reuse','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',88,88,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13192,'TODO: extra checks, make sure the frame is correct and\nit consumed all data.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',97,98,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13193,'TODO: make sure we have enough data.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',111,111,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13194,'TODO: no need to send version, method if default','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',227,227,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13195,'TODO: spdy uses full URL, we may want to trim\nalso no host header','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',235,236,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13196,'TODO: repeated values are separated by a 0\npretty weird...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',243,244,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13197,'TODO: url - with host prefix , method\noptimize...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',263,264,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13198,'TODO: url','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',272,272,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13199,'TODO: duplicated headers not allowed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',386,386,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13200,'TODO: chunk if too much data ( at least at 24 bits)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',427,427,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13201,'TODO: send interrupt signal','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',544,544,'org.apache.tomcat.lite.http.SpdyConnection','abort(HttpChannel, String)',NULL),(13202,'TODO: test req, headers','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/http/SpdyTest.java',61,61,'org.apache.tomcat.lite.http.SpdyTest','testParse()',NULL),(13203,'Maybe we don\'t have data - that\'s fine.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',416,416,'org.apache.tomcat.lite.io.SslChannel','handleReceived(IOChannel)',NULL),(13204,'TODO: SSL','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',323,323,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13205,'TODO: reuse','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',385,385,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13206,'TODO: add the others','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',758,758,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13207,'TODO: add it to the cpool','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',420,420,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13208,'TODO: split it by space','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',964,964,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13209,'Process /WEB-INF/classes for annotations\nTODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1243,1244,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(13210,'Process /WEB-INF/classes for annotations','Line','java/org/apache/catalina/startup/ContextConfig.java',1248,1248,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13211,'Have to process JARs for fragments','Line','java/org/apache/catalina/startup/ContextConfig.java',1258,1258,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13212,'Scan jar for annotations, add to fragment\nTODO SERVLET3','Line','java/org/apache/catalina/startup/ContextConfig.java',1573,1574,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(13213,'TODO SERVLET 3','Line','java/org/apache/catalina/startup/ContextConfig.java',1654,1654,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13214,'Annotation\nTODO: isRuntimeVisible ??????????\nFIXME','Line','java/org/apache/tomcat/util/bcel/generic/ElementValueGen.java',105,107,'org.apache.tomcat.util.bcel.generic.ElementValueGen','readElementValue(DataInputStream, ConstantPoolGen)','DESIGN'),(13215,'Chapter 5.4 (no errors but the ones that _always_ could happen! How stupid.)','Line','java/org/apache/tomcat/util/bcel/ExceptionConstants.java',72,72,'org.apache.tomcat.util.bcel.ExceptionConstants','None',NULL),(13216,'matches, i.e., case 1: ...\ntarget offsets\ntarget objects in instruction list\nfixed length defined by subclasses\nnumber of cases\nnumber of pad bytes for alignment','Line','java/org/apache/tomcat/util/bcel/generic/Select.java',37,42,'org.apache.tomcat.util.bcel.generic.Select','None',NULL),(13217,'Bug: 38787 - Instructions are assumed to be english, to avoid odd Locale issues','Line','java/org/apache/tomcat/util/bcel/util/InstructionFinder.java',141,141,'org.apache.tomcat.util.bcel.util.InstructionFinder','compilePattern(String)',NULL),(13218,'J5TODO: Should we make this an array or a list? A list would be easier to\nmodify ...','Line','java/org/apache/tomcat/util/bcel/generic/ArrayElementValueGen.java',13,14,'org.apache.tomcat.util.bcel.generic.ArrayElementValueGen','None',NULL),(13219,'How many chars have been consumed\nduring parsing in signatureToString().\nRead by methodSignatureToString().\nSet by side effect,but only internally.\nThe `WIDE\' instruction is used in the\nbyte code to allow 16-bit wide indices\nfor local variables. This opcode\nprecedes an `ILOAD\', e.g.. The opcode\nimmediately following takes an extra\nbyte which is combined with the\nfollowing byte to form a\n16-bit value.','Block','java/org/apache/tomcat/util/bcel/classfile/Utility.java',65,78,'org.apache.tomcat.util.bcel.classfile.Utility','unwrap(ThreadLocal)',NULL),(13220,'Guess what this does','Line','java/org/apache/tomcat/util/bcel/classfile/Utility.java',701,701,'org.apache.tomcat.util.bcel.classfile.Utility','unwrap(ThreadLocal)',NULL),(13221,'checkcast\ninstanceof','Block','java/org/apache/tomcat/util/bcel/Constants.java',1144,1145,'org.apache.tomcat.util.bcel.Constants','None',NULL),(13222,'instanceof\nmonitorenter','Block','java/org/apache/tomcat/util/bcel/Constants.java',1218,1219,'org.apache.tomcat.util.bcel.Constants','None',NULL),(13223,'instanceof','Block','java/org/apache/tomcat/util/bcel/Constants.java',1319,1319,'org.apache.tomcat.util.bcel.Constants','None',NULL),(13224,'TOFO: FIXXXXX','Line','java/org/apache/tomcat/util/bcel/Constants.java',1419,1419,'org.apache.tomcat.util.bcel.Constants','None',NULL),(13225,'J5TODO: Could make unpacking lazy, done on first reference','Line','java/org/apache/tomcat/util/bcel/generic/ClassGen.java',138,138,'org.apache.tomcat.util.bcel.generic.ClassGen','equals(Object, Object)','NOT_DESIGN'),(13226,'TODO: Sometime later, trash any attributes called \'RuntimeVisibleAnnotations\' or \'RuntimeInvisibleAnnotations\'','Line','java/org/apache/tomcat/util/bcel/generic/ClassGen.java',211,211,'org.apache.tomcat.util.bcel.generic.ClassGen','equals(Object, Object)','DESIGN'),(13227,'J5TODO: Should we make calling unpackAnnotations() lazy and put it in here?','Line','java/org/apache/tomcat/util/bcel/generic/ClassGen.java',490,490,'org.apache.tomcat.util.bcel.generic.ClassGen','equals(Object, Object)','DESIGN'),(13228,'Annotation\nTODO isRuntimeVisible','Line','java/org/apache/tomcat/util/bcel/classfile/ElementValue.java',118,119,'org.apache.tomcat.util.bcel.classfile.ElementValue','readElementValue(DataInputStream, ConstantPool)',NULL),(13229,'TODO: Check if this is still valid or find a way to dynamically find out which\ninterfaces arrays implement. However, as of the JVM specification edition 2, there\nare at least two different pages where assignment compatibility is defined and\non one of them \\\"interfaces implemented by arrays\\\" is exchanged with \\\"\'Cloneable\' or\n\'java.io.Serializable\'\\\"','Line','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',158,162,'org.apache.tomcat.util.bcel.generic.ReferenceType','isAssignmentCompatibleWith(Type)','DESIGN'),(13230,'TODO: Above sounds a little arbitrary. On the other hand, there is\nno object referenced by Type.NULL so we can also say all the objects\nreferenced by Type.NULL were derived from java.lang.Object.\nHowever, the Java Language\'s \\\"instanceof\\\" operator proves us wrong:\n\\\"null\\\" is not referring to an instance of java.lang.Object :)','Block','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',202,208,'org.apache.tomcat.util.bcel.generic.ReferenceType','getFirstCommonSuperclass(ReferenceType)','DESIGN'),(13231,'This code is from a bug report by Konstantin Shagin <konst@cs.technion.ac.il>','Block','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',210,210,'org.apache.tomcat.util.bcel.generic.ReferenceType','getFirstCommonSuperclass(ReferenceType)','DESIGN'),(13232,'TODO: Is there a proof of OBJECT being the direct ancestor of every ArrayType?','Line','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',224,224,'org.apache.tomcat.util.bcel.generic.ReferenceType','getFirstCommonSuperclass(ReferenceType)','DESIGN'),(13233,'TODO: The above line is correct comparing to the vmspec2. But one could\nmake class file verification a bit stronger here by using the notion of\nsuperinterfaces or even castability or assignment compatibility.','Line','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',229,231,'org.apache.tomcat.util.bcel.generic.ReferenceType','getFirstCommonSuperclass(ReferenceType)','DESIGN'),(13234,'TODO: Above sounds a little arbitrary. On the other hand, there is\nno object referenced by Type.NULL so we can also say all the objects\nreferenced by Type.NULL were derived from java.lang.Object.\nHowever, the Java Language\'s \\\"instanceof\\\" operator proves us wrong:\n\\\"null\\\" is not referring to an instance of java.lang.Object :)','Block','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',286,292,'org.apache.tomcat.util.bcel.generic.ReferenceType','firstCommonSuperclass(ReferenceType)','DESIGN'),(13235,'TODO: Is there a proof of OBJECT being the direct ancestor of every ArrayType?','Line','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',296,296,'org.apache.tomcat.util.bcel.generic.ReferenceType','firstCommonSuperclass(ReferenceType)','DESIGN'),(13236,'TODO: The above line is correct comparing to the vmspec2. But one could\nmake class file verification a bit stronger here by using the notion of\nsuperinterfaces or even castability or assignment compatibility.','Line','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',301,303,'org.apache.tomcat.util.bcel.generic.ReferenceType','firstCommonSuperclass(ReferenceType)','DESIGN'),(13237,'TODO: update method names','Line','java/org/apache/tomcat/util/bcel/classfile/Annotations.java',91,91,'org.apache.tomcat.util.bcel.classfile.Annotations','getAnnotationEntries()',NULL),(13238,'TODO isRuntimeVisible','Line','java/org/apache/tomcat/util/bcel/classfile/ParameterAnnotationEntry.java',45,45,'org.apache.tomcat.util.bcel.classfile.ParameterAnnotationEntry','accept(Visitor)',NULL),(13239,'Adjust length, because of setAttributes in this(), s.b.  length\nis incorrect, because it didn\'t take the internal attributes\ninto account yet! Very subtle bug, fixed in 3.1.1.','Block','java/org/apache/tomcat/util/bcel/classfile/Code.java',95,98,'org.apache.tomcat.util.bcel.classfile.Code','accept(Visitor)',NULL),(13240,'Not a very clean solution ...','Line','java/org/apache/tomcat/util/bcel/classfile/ClassParser.java',71,71,'org.apache.tomcat.util.bcel.classfile.ClassParser','parse()',NULL),(13241,'TODO: Put information in the brackets, e.g.\nIs this an ExceptionHandler? Is this a RET? Is this the start of\na subroutine?','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ControlFlowGraph.java',219,221,'org.apache.tomcat.util.bcel.verifier.structurals.ControlFlowGraph','getTag()',NULL),(13242,'TODO: Can be performance-improved.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ControlFlowGraph.java',231,231,'org.apache.tomcat.util.bcel.verifier.structurals.ControlFlowGraph','getTag()',NULL),(13243,'TODO: implement caching!','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ControlFlowGraph.java',322,322,'org.apache.tomcat.util.bcel.verifier.structurals.ControlFlowGraph','getTag()',NULL),(13244,'FIXME: report the error using the GUI','Line','java/org/apache/tomcat/util/bcel/verifier/VerifierAppFrame.java',237,237,'org.apache.tomcat.util.bcel.verifier.VerifierAppFrame','classNamesJList_valueChanged(ListSelectionEvent)',NULL),(13245,'FIXME: handle the error','Line','java/org/apache/tomcat/util/bcel/verifier/VerifierAppFrame.java',339,339,'org.apache.tomcat.util.bcel.verifier.VerifierAppFrame','pass3aJList_valueChanged(ListSelectionEvent)',NULL),(13246,'FIXME: handle the error','Line','java/org/apache/tomcat/util/bcel/verifier/VerifierAppFrame.java',370,370,'org.apache.tomcat.util.bcel.verifier.VerifierAppFrame','pass3bJList_valueChanged(ListSelectionEvent)',NULL),(13247,'The run-time check below is needed because we don\'t want to omit inheritance\nof \\\"EmptyVisitor\\\" and provide a thousand empty methods.\nHowever, in terms of performance this would be a better idea.\nIf some new \\\"Node\\\" is defined in BCEL (such as some concrete \\\"Attribute\\\"), we\nwant to know that this class has also to be adapted.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/StringRepresentation.java',92,96,'org.apache.tomcat.util.bcel.verifier.statics.StringRepresentation','toString()',NULL),(13248,'//////////////////////////////\nVisitor methods start here //\n//////////////////////////////\nWe don\'t of course need to call some default implementation:\ne.g. we could also simply output \\\"Code\\\" instead of a possibly\nlengthy Code attribute\'s toString().','Line','java/org/apache/tomcat/util/bcel/verifier/statics/StringRepresentation.java',121,126,'org.apache.tomcat.util.bcel.verifier.statics.StringRepresentation','visitCode(Code)',NULL),(13249,'FIXME: report the error','Line','java/org/apache/tomcat/util/bcel/verifier/VerifyDialog.java',544,544,'org.apache.tomcat.util.bcel.verifier.VerifyDialog','pass4Button_ActionPerformed(java.awt.event.ActionEvent)',NULL),(13250,'\\\"generic\\\"visitXXXX methods where XXXX is an interface','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',216,216,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitLoadClass(LoadClass)',NULL),(13251,'these methods are called after the visitXXXX methods above.','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',254,254,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitCPInstruction(CPInstruction)',NULL),(13252,'visitLoadClass(o) has been called before: Every FieldOrMethod\nimplements LoadClass.\nvisitCPInstruction(o) has been called before.\nTODO','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',294,297,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitInvokeInstruction(InvokeInstruction)',NULL),(13253,'TODO: This can only be checked if using Staerk-et-al\'s \\\"set of object types\\\" instead of a\n\\\"wider cast object type\\\" created during verification.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',413,414,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitReturnInstruction(ReturnInstruction)',NULL),(13254,'\\\"special\\\"visitXXXX methods for one type of instruction each','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',428,428,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitAALOAD(AALOAD)',NULL),(13255,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',473,473,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitAASTORE(AASTORE)',NULL),(13256,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',565,565,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitATHROW(ATHROW)',NULL),(13257,'TODO: Check if assignment compatibility is sufficient.\nWhat does Sun do?','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1174,1176,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitGETFIELD(GETFIELD)',NULL),(13258,'TODO: One day move to Staerk-et-al\'s \\\"Set of object types\\\" instead of \\\"wider\\\" object types\ncreated during the verification.\n\\\"Wider\\\" object types don\'t allow us to check for things like that below.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1224,1226,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitGETFIELD(GETFIELD)',NULL),(13259,'TODO: Could go into Pass 3a.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1232,1232,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitGETFIELD(GETFIELD)',NULL),(13260,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1238,1238,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitGETFIELD(GETFIELD)',NULL),(13261,'It is a ConstantInterfaceMethodref, Pass 3a made it sure.\nTODO: Do we want to do anything with it?','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1659,1660,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKEINTERFACE(INVOKEINTERFACE)',NULL),(13262,'TODO: This can only be checked when using Staerk-et-al\'s \\\"set of object types\\\"\ninstead of a \\\"wider cast object type\\\" created during verification.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1692,1693,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKEINTERFACE(INVOKEINTERFACE)',NULL),(13263,'TODO: This can only be checked if we\'re using Staerk-et-al\'s \\\"set of object types\\\"\ninstead of \\\"wider cast object types\\\" generated during verification.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1724,1725,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKEINTERFACE(INVOKEINTERFACE)',NULL),(13264,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1826,1826,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKESPECIAL(INVOKESPECIAL)',NULL),(13265,'TODO: This check can possibly only be done using Staerk-et-al\'s \\\"set of object types\\\"\ninstead of a \\\"wider cast object type\\\" created during verification.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1864,1865,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKESTATIC(INVOKESTATIC)',NULL),(13266,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1877,1877,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKESTATIC(INVOKESTATIC)',NULL),(13267,'TODO: This can possibly only be checked when using Staerk-et-al\'s \\\"set of object types\\\" instead\nof a single \\\"wider cast object type\\\" created during verification.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1916,1917,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKEVIRTUAL(INVOKEVIRTUAL)',NULL),(13268,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',1954,1954,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitINVOKEVIRTUAL(INVOKEVIRTUAL)',NULL),(13269,'TODO: Check if assignment compatibility is sufficient.\nWhat does Sun do?','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',2488,2490,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitPUTFIELD(PUTFIELD)',NULL),(13270,'TODO: Could go into Pass 3a.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',2553,2553,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitPUTFIELD(PUTFIELD)',NULL),(13271,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',2559,2559,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitPUTFIELD(PUTFIELD)',NULL),(13272,'TODO: Check if assignment compatibility is sufficient.\nWhat does Sun do?','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',2577,2579,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitPUTSTATIC(PUTSTATIC)',NULL),(13273,'TODO: Interface fields may be assigned to only once. (Hard to implement in\nJustIce\'s execution model). This may only happen in <clinit>, see Pass 3a.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',2619,2620,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitPUTSTATIC(PUTSTATIC)',NULL),(13274,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',2623,2623,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitPUTSTATIC(PUTSTATIC)',NULL),(13275,'nothing to do here. Generic visitXXX() methods did the trick before.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/InstConstraintVisitor.java',2694,2694,'org.apache.tomcat.util.bcel.verifier.structurals.InstConstraintVisitor','visitSIPUSH(SIPUSH)',NULL),(13276,'TODO: Implement caching.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/Subroutines.java',265,265,'org.apache.tomcat.util.bcel.verifier.structurals.Subroutines','contains(InstructionHandle)',NULL),(13277,'BFS ALGORITHM MODIFICATION: Start out with multiple \\\"root\\\" nodes, as exception handlers are starting points of top-level code, too. [why top-level? TODO: Refer to the special JustIce notion of subroutines.]','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/Subroutines.java',432,432,'org.apache.tomcat.util.bcel.verifier.structurals.Subroutines','noRecursiveCalls(Subroutine, Set)',NULL),(13278,'TODO:\nWe want a very sophisticated code examination here with good explanations\non where to look for an illegal instruction or such.\nOnly after that we should try to build an InstructionList and throw an\nAssertionViolatedException if after our examination InstructionList building\nstill fails.\nThat examination should be implemented in a byte-oriented way, i.e. look for\nan instruction, make sure its validity, count its length, find the next\ninstruction and so on.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',169,177,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','None',NULL),(13279,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',212,212,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','None',NULL),(13280,'TODO: Make this a binary search! The instructionPositions array is naturally ordered!','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',240,240,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','do_verify()',NULL),(13281,'TODO: Check how BCEL handles (and will handle) instructions like IMPDEP1, IMPDEP2,\nBREAKPOINT... that BCEL knows about but which are illegal anyway.\nWe currently go the safe way here.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',338,340,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','do_verify()',NULL),(13282,'When building up the InstructionList, BCEL has already done all those checks\nmentioned in The Java Virtual Machine Specification, Second Edition, as\n\\\"static constraints on the operands of instructions in the code array\\\".\nTODO: see the do_verify() comments. Maybe we should really work on the\nbyte array first to give more comprehensive messages.\nTODO: Review Exception API, possibly build in some \\\"offending instruction\\\" thing\nwhen we\'re ready to insulate the offending instruction by doing the\nabove thing.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',380,387,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','do_verify()',NULL),(13283,'TODO: Implement as much as possible here. BCEL does _not_ check everything.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',389,389,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','do_verify()',NULL),(13284,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',417,417,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','do_verify()',NULL),(13285,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',458,458,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','max_locals()',NULL),(13286,'TODO: Check if assignment compatibility is sufficient.\nWhat does Sun do?','Block','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',558,560,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitFieldInstruction(FieldInstruction)',NULL),(13287,'TODO: Check for access modifiers here.','Block','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',604,604,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitFieldInstruction(FieldInstruction)',NULL),(13288,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',607,607,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitFieldInstruction(FieldInstruction)',NULL),(13289,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',1000,1000,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitPUTSTATIC(PUTSTATIC)',NULL),(13290,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',1026,1026,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitGETSTATIC(GETSTATIC)',NULL),(13291,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',1067,1067,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitINVOKEINTERFACE(INVOKEINTERFACE)',NULL),(13292,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',1131,1131,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitINVOKESPECIAL(INVOKESPECIAL)',NULL),(13293,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',1163,1163,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitINVOKESTATIC(INVOKESTATIC)',NULL),(13294,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass3aVerifier.java',1196,1196,'org.apache.tomcat.util.bcel.verifier.statics.Pass3aVerifier','visitINVOKEVIRTUAL(INVOKEVIRTUAL)',NULL),(13295,'TODO:	Throughout pass 3b, upper halves of LONG and DOUBLE\nare represented by Type.UNKNOWN. This should be changed\nin favour of LONG_Upper and DOUBLE_Upper as in pass 2.','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/Pass3bVerifier.java',63,65,'org.apache.tomcat.util.bcel.verifier.structurals.Pass3bVerifier','None',NULL),(13296,'TODO: the \\\"oldchain\\\" and \\\"newchain\\\" is used to determine the subroutine\nwe\'re in (by searching for the last JSR) by the InstructionContext\nimplementation. Therefore, we should not use this chain mechanism\nwhen dealing with exception handlers.\nExample: a JSR with an exception handler as its successor does not\nmean we\'re in a subroutine if we go to the exception handler.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/Pass3bVerifier.java',220,225,'org.apache.tomcat.util.bcel.verifier.structurals.Pass3bVerifier','circulationPump(MethodGen, ControlFlowGraph, InstructionContext, Frame, InstConstraintVisitor, ExecutionVisitor)',NULL),(13297,'TODO: This is buggy, we check only the top-level return instructions this way. Maybe some maniac returns from a method when in a subroutine?','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/Pass3bVerifier.java',241,241,'org.apache.tomcat.util.bcel.verifier.structurals.Pass3bVerifier','circulationPump(MethodGen, ControlFlowGraph, InstructionContext, Frame, InstConstraintVisitor, ExecutionVisitor)',NULL),(13298,'see JVM $4.8.2\nTODO implement all based on stack','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/Pass3bVerifier.java',254,255,'org.apache.tomcat.util.bcel.verifier.structurals.Pass3bVerifier','circulationPump(MethodGen, ControlFlowGraph, InstructionContext, Frame, InstConstraintVisitor, ExecutionVisitor)',NULL),(13299,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/Pass3bVerifier.java',318,318,'org.apache.tomcat.util.bcel.verifier.structurals.Pass3bVerifier','do_verify()',NULL),(13300,'FIXME: this might not be the best way to handle missing classes.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass2Verifier.java',173,173,'org.apache.tomcat.util.bcel.verifier.statics.Pass2Verifier','getLocalVariablesInfo(int)',NULL),(13301,'Semantical consistency is not yet checked by Sun, see vmspec2 4.7.5.\n[marked TODO in JustIce]','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass2Verifier.java',818,819,'org.apache.tomcat.util.bcel.verifier.statics.Pass2Verifier','getLocalVariablesInfo(int)',NULL),(13302,'We cannot safely trust any other \\\"instanceof\\\" mechanism. We need to transitively verify\nthe ancestor hierarchy.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass2Verifier.java',913,914,'org.apache.tomcat.util.bcel.verifier.statics.Pass2Verifier','getLocalVariablesInfo(int)',NULL),(13303,'Create object for local variables information\nThis is highly unelegant due to usage of the Visitor pattern.\nTODO: rework it.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass2Verifier.java',939,941,'org.apache.tomcat.util.bcel.verifier.statics.Pass2Verifier','getLocalVariablesInfo(int)',NULL),(13304,'if atts[a] instanceof LocalVariableTable END\nfor all attributes atts[a] END','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass2Verifier.java',1020,1021,'org.apache.tomcat.util.bcel.verifier.statics.Pass2Verifier','getLocalVariablesInfo(int)',NULL),(13305,'Maybe only misnamed? Give a (warning) message.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass2Verifier.java',1115,1115,'org.apache.tomcat.util.bcel.verifier.statics.Pass2Verifier','getLocalVariablesInfo(int)',NULL),(13306,'TODO: implement.\nAre there any restrictions?','Block','java/org/apache/tomcat/util/bcel/verifier/statics/Pass2Verifier.java',1290,1293,'org.apache.tomcat.util.bcel.verifier.statics.Pass2Verifier','getLocalVariablesInfo(int)',NULL),(13307,'It\'s possibly wrong to do so, but SUN\'s\nByteCode verifier seems to do (only) this, too.\nTODO: One could use a sophisticated analysis here to check\nif a type cannot possibly be cated to another and by\nso doing predict the ClassCastException at run-time.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ExecutionVisitor.java',210,214,'org.apache.tomcat.util.bcel.verifier.structurals.ExecutionVisitor','visitCHECKCAST(CHECKCAST)',NULL),(13308,'We are sure the invoked method will xRETURN eventually\nWe simulate xRETURNs functionality here because we\ndon\'t really \\\"jump into\\\" and simulate the invoked\nmethod.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ExecutionVisitor.java',699,702,'org.apache.tomcat.util.bcel.verifier.structurals.ExecutionVisitor','visitINVOKEINTERFACE(INVOKEINTERFACE)',NULL),(13309,'We are sure the invoked method will xRETURN eventually\nWe simulate xRETURNs functionality here because we\ndon\'t really \\\"jump into\\\" and simulate the invoked\nmethod.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ExecutionVisitor.java',728,731,'org.apache.tomcat.util.bcel.verifier.structurals.ExecutionVisitor','visitINVOKESPECIAL(INVOKESPECIAL)',NULL),(13310,'We are sure the invoked method will xRETURN eventually\nWe simulate xRETURNs functionality here because we\ndon\'t really \\\"jump into\\\" and simulate the invoked\nmethod.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ExecutionVisitor.java',748,751,'org.apache.tomcat.util.bcel.verifier.structurals.ExecutionVisitor','visitINVOKESTATIC(INVOKESTATIC)',NULL),(13311,'We are sure the invoked method will xRETURN eventually\nWe simulate xRETURNs functionality here because we\ndon\'t really \\\"jump into\\\" and simulate the invoked\nmethod.','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/ExecutionVisitor.java',769,772,'org.apache.tomcat.util.bcel.verifier.structurals.ExecutionVisitor','visitINVOKEVIRTUAL(INVOKEVIRTUAL)',NULL),(13312,'FIXME: currently, Pass1Verifier treats jc == null as a special\ncase, so we don\'t need to do anything here.  A better solution\nwould be to simply throw the ClassNotFoundException\nout of this method.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass1Verifier.java',57,60,'org.apache.tomcat.util.bcel.verifier.statics.Pass1Verifier','getJavaClass()',NULL),(13313,'This should maybe caught by BCEL: In case of renamed .class files we get wrong\nJavaClass objects here.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass1Verifier.java',141,142,'org.apache.tomcat.util.bcel.verifier.statics.Pass1Verifier','do_verify()',NULL),(13314,'TODO: Maybe change Repository\'s behaviour to throw a LoadingException instead of just returning \\\"null\\\"\nif a class file cannot be found or in another way be looked up.','Line','java/org/apache/tomcat/util/bcel/verifier/statics/Pass1Verifier.java',164,165,'org.apache.tomcat.util.bcel.verifier.statics.Pass1Verifier','do_verify()',NULL),(13315,'XXX change this to a better implementation using a variable\nthat keeps track of the actual slotsUsed()-value monitoring\nall push()es and pop()s.','Block','java/org/apache/tomcat/util/bcel/verifier/structurals/OperandStack.java',177,180,'org.apache.tomcat.util.bcel.verifier.structurals.OperandStack','slotsUsed()',NULL),(13316,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/OperandStack.java',246,246,'org.apache.tomcat.util.bcel.verifier.structurals.OperandStack','merge(OperandStack)',NULL),(13317,'FIXME: maybe not the best way to handle this','Line','java/org/apache/tomcat/util/bcel/verifier/structurals/LocalVariables.java',179,179,'org.apache.tomcat.util.bcel.verifier.structurals.LocalVariables','merge(LocalVariables, int)',NULL),(13318,'None','None','java/org/apache/tomcat/util/bcel/generic/ElementValueGen.java',-1,-1,'None','None',NULL),(13319,'None','None','java/org/apache/tomcat/util/bcel/generic/ClassGen.java',-1,-1,'None','None',NULL),(13320,'None','None','java/org/apache/tomcat/util/bcel/generic/ReferenceType.java',-1,-1,'None','None',NULL),(13321,'instanceof','Block','java/org/apache/tomcat/util/bcel/Constants.java',619,619,'org.apache.tomcat.util.bcel.Constants','None','NOT_DESIGN'),(13322,'None','None','java/org/apache/tomcat/util/bcel/Constants.java',-1,-1,'None','None',NULL),(13323,'matches, i.e., case 1: ...\ntarget offsets\ntarget objects in instruction list\nfixed length defined by subclasses\nnumber of cases\nnumber of pad bytes for alignment','Line','java/org/apache/tomcat/util/bcel/generic/Select.java',36,41,'org.apache.tomcat.util.bcel.generic.Select','None','NOT_DESIGN'),(13324,'matches, i.e., case 1: ...\ntarget offsets\ntarget objects in instruction list','Line','java/org/apache/tomcat/util/bcel/generic/Select.java',36,38,'org.apache.tomcat.util.bcel.generic.Select','None',NULL),(13325,'number of cases\nnumber of pad bytes for alignment','Line','java/org/apache/tomcat/util/bcel/generic/Select.java',40,41,'org.apache.tomcat.util.bcel.generic.Select','None',NULL),(13326,'TODO SERVLET 3','Line','java/org/apache/catalina/startup/ContextConfig.java',1655,1655,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(13327,'TODO SERVLET 3 - Other annotations\nUnknown annotation - ignore','Line','java/org/apache/catalina/startup/ContextConfig.java',1677,1678,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13328,'Skip this annotation. Entry in web.xml takes priority','Line','java/org/apache/catalina/startup/ContextConfig.java',1686,1686,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13329,'Ignore','Line','java/org/apache/catalina/startup/ContextConfig.java',1727,1727,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13330,'Call the service() method for the allocated servlet instance','Line','java/org/apache/catalina/core/ApplicationDispatcher.java',644,644,'org.apache.catalina.core.ApplicationDispatcher','invoke(ServletRequest, ServletResponse, State)',NULL),(13331,'FIXME: Exception handling needs to be simpiler to what is in the StandardWrapperValue','Line','java/org/apache/catalina/core/ApplicationDispatcher.java',718,718,'org.apache.catalina.core.ApplicationDispatcher','invoke(ServletRequest, ServletResponse, State)',NULL),(13332,'FIXME: Exception handling needs to be simpler to what is in the StandardWrapperValue','Line','java/org/apache/catalina/core/ApplicationDispatcher.java',707,707,'org.apache.catalina.core.ApplicationDispatcher','invoke(ServletRequest, ServletResponse, State)',NULL),(13333,'TODO SERVLET 3 - Other annotations\nUnknown annotation - ignore','Line','java/org/apache/catalina/startup/ContextConfig.java',1679,1680,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(13334,'Unknown annotation - ignore','Line','java/org/apache/catalina/startup/ContextConfig.java',1681,1681,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13335,'FIXME: Exception handling needs to be similar to what is in the StandardWrapperValue','Line','java/org/apache/catalina/core/ApplicationDispatcher.java',707,707,'org.apache.catalina.core.ApplicationDispatcher','invoke(ServletRequest, ServletResponse, State)',NULL),(13336,'FIXME: setId trigger session Listener, but only chance to register manager with correct id!','Line','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',375,375,'org.apache.catalina.ha.session.JvmRouteBinderValve','changeSessionID(Request, String, String, Session)',NULL),(13337,'FIXME: Why we remove change data from other running request?\nsetId also trigger resetDeltaRequest!!','Line','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',384,385,'org.apache.catalina.ha.session.JvmRouteBinderValve','changeSessionID(Request, Response, String, String, Session)',NULL),(13338,'FIXME: Why we remove change data from other running request?\nsetId also trigger resetDeltaRequest!!','Line','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',377,378,'org.apache.catalina.ha.session.JvmRouteBinderValve','changeSessionID(Request, String, String, Session)',NULL),(13339,'TODO Auto-generated catch block','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',119,119,'org.apache.coyote.lite.LiteProtocolHandler','destroy()',NULL),(13340,'None','None','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',-1,-1,'None','None',NULL),(13341,'TODO: turn http request into a coyote request - copy all fields,\nadd hooks where needed.','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',171,172,'org.apache.coyote.lite.LiteProtocolHandler','init(HttpRequest, HttpResponse)',NULL),(13342,'TODO: recycle, etc.','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',139,139,'org.apache.coyote.lite.LiteProtocolHandler','destroy()',NULL),(13343,'TODO: copy headers, fields','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',205,205,'org.apache.coyote.lite.LiteProtocolHandler','action(ActionCode, Object)','NOT_DESIGN'),(13344,'}\n//TODO provide a hook to enable the SSL session to be\n// invalidated. Set AprEndpoint.SESSION_MGR req attr','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',317,319,'org.apache.coyote.lite.LiteProtocolHandler','action(ActionCode, Object)','NOT_DESIGN'),(13345,'//TODO SERVLET3 - async','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',384,384,'org.apache.coyote.lite.LiteProtocolHandler','action(ActionCode, Object)',NULL),(13346,'TODO: allow contexts without a base dir - i.e.\nonly programmatic. This would disable the default servlet.','Line','modules/tomcat-lite/test/org/apache/coyote/lite/Tomcat.java',55,56,'None','None',NULL),(13347,'TODO: it\'s easy to add support for more hosts - but is it\nreally needed ?','Line','modules/tomcat-lite/test/org/apache/coyote/lite/Tomcat.java',97,98,'org.apache.coyote.lite.Tomcat','None',NULL),(13348,'TODO: allow use of in-memory connector','Line','modules/tomcat-lite/test/org/apache/coyote/lite/Tomcat.java',100,100,'org.apache.coyote.lite.Tomcat','None',NULL),(13349,'Notes on memory use ( from heap dumps ):\n- buffers are not yet recycled ( the BBuffers used in channels )\n\n- each active connection consumes at least 26k - 2 buffers + head buffer\n( 8k each )\nTODO: could \'peak\' in the In buffer and move headRecv to HttpChannel\n\n\n- HttpChannel keeps about 64K ( for the hello world ).\n-- res is 25k\n-- req is 32k, BufferedIOReader 16k,\n\nTODO:\n- leak in NioThread.active - closed sockets not removed\n- need to rate-limit and queue requests - OOM\n- timeouts\n- seems few responses missing on large async requests (URL works)','Block','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',46,64,'None','None',NULL),(13350,'TODO: move to a servlet','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',171,171,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','xtest1000Async()',NULL),(13351,'Ok, no setXXX found, try a setProperty(\\\"name\\\", \\\"value\\\")','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/naming/GenericNamingResourcesFactory.java',167,167,'org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory','setProperty(Object, String, String, boolean)',NULL),(13352,'This method is deprecated and for good reason. This is\nvery risky code but is only only option at this point\nA *very* good reason for apps to do this clean-up\nthemselves','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2009,2012,'org.apache.catalina.loader.WebappClassLoader','clearReferencesThreads()',NULL),(13353,'This method is deprecated and for good reason. This is\nvery risky code but is the only option at this point.\nA *very* good reason for apps to do this clean-up\nthemselves.','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2009,2012,'org.apache.catalina.loader.WebappClassLoader','clearReferencesThreads()',NULL),(13354,'None','None','java/org/apache/jasper/compiler/TldLocationsCache.java',-1,-1,'None','None',NULL),(13355,'TODO - set this list via configuration (also TLDs in Jasper)','Line','java/org/apache/catalina/startup/ContextConfig.java',210,210,'org.apache.catalina.startup.ContextConfig','None','NOT_DESIGN'),(13356,'TODO - Various, icon, description etc elements are skipped - mainly\nbecause they are ignored when web.xml is parsed - see above','Line','java/org/apache/catalina/startup/WebXml.java',481,482,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13357,'TODO enabled','Line','java/org/apache/catalina/startup/WebXml.java',586,586,'org.apache.catalina.startup.WebXml','toXml()','NOT_DESIGN'),(13358,'TODO cookie-config\nTODO tracking-mode','Line','java/org/apache/catalina/startup/WebXml.java',627,628,'org.apache.catalina.startup.WebXml','toXml()','NOT_DESIGN'),(13359,'TODO mapped-name','Line','java/org/apache/catalina/startup/WebXml.java',765,765,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13360,'TODO lookup-name','Line','java/org/apache/catalina/startup/WebXml.java',774,774,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13361,'TODO handler-chains\nTODO mapped-name','Line','java/org/apache/catalina/startup/WebXml.java',865,866,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13362,'TODO','Line','java/javax/el/ExpressionFactory.java',48,48,'javax.el.ExpressionFactory','newInstance(Properties)','NOT_DESIGN'),(13363,'TODO','Line','java/javax/el/CompositeELResolver.java',130,130,'javax.el.CompositeELResolver','add(ELResolver)','NOT_DESIGN'),(13364,'TODO','Line','java/javax/el/BeanELResolver.java',357,357,'javax.el.BeanELResolver','invoke(ELContext, Object, Object, Class<?>[], Object[])','NOT_DESIGN'),(13365,'First services API','Line','java/javax/el/ExpressionFactory.java',91,91,'javax.el.ExpressionFactory','newInstance(Properties)',NULL),(13366,'Second el.properties file','Line','java/javax/el/ExpressionFactory.java',94,94,'javax.el.ExpressionFactory','newInstance(Properties)',NULL),(13367,'Third system property','Line','java/javax/el/ExpressionFactory.java',98,98,'javax.el.ExpressionFactory','newInstance(Properties)',NULL),(13368,'Fourth - default','Line','java/javax/el/ExpressionFactory.java',102,102,'javax.el.ExpressionFactory','newInstance(Properties)',NULL),(13369,'Do we need to look for a constructor that will take properties?','Line','java/javax/el/ExpressionFactory.java',114,114,'javax.el.ExpressionFactory','newInstance(Properties)',NULL),(13370,'This can be ignored\nThis is OK for this constructor not to exist','Line','java/javax/el/ExpressionFactory.java',121,122,'javax.el.ExpressionFactory','newInstance(Properties)',NULL),(13371,'Should never happen with UTF-8\nIf it does - ignore & return null','Line','java/javax/el/ExpressionFactory.java',176,177,'javax.el.ExpressionFactory','getClassNameServices(ClassLoader)',NULL),(13372,'Ignore','Line','java/javax/el/ExpressionFactory.java',185,185,'javax.el.ExpressionFactory','getClassNameServices(ClassLoader)',NULL),(13373,'Should not happen - ignore it if it does','Line','java/javax/el/ExpressionFactory.java',206,206,'javax.el.ExpressionFactory','getClassNameJreDir()',NULL),(13374,'Ignore','Line','java/javax/el/ExpressionFactory.java',214,214,'javax.el.ExpressionFactory','getClassNameJreDir()',NULL),(13375,'None','None','java/javax/el/CompositeELResolver.java',-1,-1,'None','None',NULL),(13376,'Find the matching method','Line','java/javax/el/BeanELResolver.java',369,369,'javax.el.BeanELResolver','invoke(ELContext, Object, Object, Class<?>[], Object[])',NULL),(13377,'Same number of parameters - use the first match','Line','java/javax/el/BeanELResolver.java',386,386,'javax.el.BeanELResolver','invoke(ELContext, Object, Object, Class<?>[], Object[])',NULL),(13378,'First argCount-1 parameters are standard','Line','java/javax/el/BeanELResolver.java',408,408,'javax.el.BeanELResolver','invoke(ELContext, Object, Object, Class<?>[], Object[])',NULL),(13379,'Last parameter is the varags','Line','java/javax/el/BeanELResolver.java',413,413,'javax.el.BeanELResolver','invoke(ELContext, Object, Object, Class<?>[], Object[])',NULL),(13380,'TODO: resource injection','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/FilterConfigImpl.java',151,151,'org.apache.coyote.servlet.FilterConfigImpl','createFilter()',NULL),(13381,'TODO: refactor all \'stm\' to separate class (not implemented)\npublic static final String SINGLE_THREADED_PROXY =','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletConfigImpl.java',71,72,'org.apache.coyote.servlet.ServletConfigImpl','None',NULL),(13382,'this is quite different from catalina, where an ugly kludge was\nused to use the same jsp servlet in 2 roles','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletConfigImpl.java',429,430,'org.apache.coyote.servlet.ServletConfigImpl','newInstance()',NULL),(13383,'TODO(costin): optimize: separate in 2 lists, one for url-mapped, one for\nservlet-name. Maybe even separate list for dispatcher and\nnon-dispatcher','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/WebappFilterMapper.java',166,168,'org.apache.coyote.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13384,'FIXME - log configuration problem','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/WebappFilterMapper.java',184,184,'org.apache.coyote.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13385,'Default servlet: check if it\'s file or dir to apply\nwelcome files rules.\nTODO: Save the File in attributes,\nto avoid duplication in DefaultServlet.','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/WebappServletMapper.java',336,339,'org.apache.coyote.servlet.WebappServletMapper','setServletContext(ServletContextImpl)',NULL),(13386,'TODO: move the readLine functionality to base coyote IO','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletReaderImpl.java',113,113,'org.apache.coyote.servlet.ServletReaderImpl','readLine()',NULL),(13387,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestWrapperImpl.java',454,454,'org.apache.coyote.servlet.ServletRequestWrapperImpl','getAttribute(String)',NULL),(13388,'}\n\n\n/**\nSet the Host within which this Request is being processed.  This\nmust be called as soon as the appropriate Host is identified, and\nbefore the Request is passed to a context.\n\n@param host The newly associated Host\n/','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestImpl.java',452,461,'org.apache.coyote.servlet.ServletRequestImpl','None',NULL),(13389,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestImpl.java',1373,1373,'org.apache.coyote.servlet.ServletRequestImpl','getRequestURL()',NULL),(13390,'TODO: check !!!!\nCheck for a role defined directly as a <security-role>','Line','modules/tomcat-lite/java/org/apache/coyote/servlet/ServletRequestImpl.java',1572,1573,'org.apache.coyote.servlet.ServletRequestImpl','isUserInRole(String)',NULL),(13391,'TODO: expectations ?\nFix docs - order matters\nCrashes in chrome\n\nTest with unit tests or:\ngoogle-chrome --use-flip=no-ssl\n--user-data-dir=/home/$USER/.config/google-chrome/Test\nhttp://localhost:8802/hello','Block','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',19,28,'None','None',NULL),(13392,'TODO: repeated values are separated by a 0','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',297,297,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13393,'Real proxy - extract client address, modify the uri.\nTODO: optimize the strings.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',155,156,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)','NOT_DESIGN'),(13394,'// Real proxy - extract client address, modify the uri.\n// TODO: optimize the strings.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',155,156,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13395,'String hostPortS = (start == -1) ?\norigURI.subSequence(7, origURI.length()).toString() :','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',158,159,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13396,'','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',162,162,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13397,'dstPort = (hostPort.length > 1) ? Integer.parseInt(hostPort[1]) :','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',164,164,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13398,'}','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',171,171,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13399,'Adjust the host header.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',173,173,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(13400,'// TODO: init servlet','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/TestMain.java',250,250,'org.apache.tomcat.lite.TestMain','startAll(String, int)','NOT_DESIGN'),(13401,'None','None','modules/tomcat-lite/test/org/apache/tomcat/lite/TestMain.java',-1,-1,'None','None',NULL),(13402,'TODO: move to a servlet','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',196,196,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','test1000Async()','DESIGN'),(13403,'TODO: SSL','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',327,327,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)','NOT_DESIGN'),(13404,'TODO retry if closed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',347,347,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)','NOT_DESIGN'),(13405,'0x800 headers seems a bit too much - assume compressed.\nI wish this was a flag...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',247,248,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13406,'TODO: only the last one needs flush','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',67,67,'org.apache.tomcat.lite.http.CompressFilter','compress(IOBuffer, IOBuffer)',NULL),(13407,'TODO: size missmatches ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',69,69,'org.apache.tomcat.lite.http.CompressFilter','compress(IOBuffer, IOBuffer)',NULL),(13408,'TODO: only the last one needs flush','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',80,80,'org.apache.tomcat.lite.http.CompressFilter','compress(BBucket, IOBuffer, boolean)',NULL),(13409,'TODO: size missmatches ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',82,82,'org.apache.tomcat.lite.http.CompressFilter','compress(BBucket, IOBuffer, boolean)',NULL),(13410,'move in back, not consummed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',167,167,'org.apache.tomcat.lite.http.CompressFilter','decompress(IOBuffer, IOBuffer, int)',NULL),(13411,'TODO: test req, headers','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/http/SpdyTest.java',88,88,'org.apache.tomcat.lite.http.SpdyTest','testParseCompressed()',NULL),(13412,'TODO: simpler API ( \'allowSpdy\', etc ) - after negotiation is impl','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',118,118,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','test1000Async()','NOT_DESIGN'),(13413,'TODO: check ssl on connection - now if a second request\nis received on a ssl connection - we just send it','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',559,560,'org.apache.tomcat.lite.http.HttpConnector','send(HttpChannel)','DESIGN'),(13414,'bug 48112','Line','test/org/apache/el/TestELEvaluation.java',96,96,'org.apache.el.TestELEvaluation','testParserFunction()',NULL),(13415,'TODO Fails (bug)','Line','test/org/apache/el/TestELInJsp.java',146,146,'org.apache.el.TestELInJsp','testBug45451()','NOT_DESIGN'),(13416,'Warning: JSP attribute escaping != Java String escaping\nTODO - Currently we allow a single unescaped \\ in attribute values\nReview if this should cause a warning/error','Line','test/org/apache/el/TestELInJsp.java',152,154,'org.apache.el.TestELInJsp','testBug45451()',NULL),(13417,'TODO - bug\nTODO - bug','Line','test/org/apache/el/TestELInJsp.java',271,272,'org.apache.el.TestELInJsp','testELMisc()','NOT_DESIGN'),(13418,'Move back to start of EL','Line','java/org/apache/jasper/compiler/AttributeParser.java',175,175,'org.apache.jasper.compiler.AttributeParser','parseLiteral()',NULL),(13419,'Note this is a hack since nextChar only returns a single char\nIt is safe since <% does not require special treatment for EL\nor for literals','Line','java/org/apache/jasper/compiler/AttributeParser.java',273,275,'org.apache.jasper.compiler.AttributeParser','nextChar()',NULL),(13420,'Note this is a hack since nextChar only returns a single char\nIt is safe since %> does not require special treatment for EL\nor for literals','Line','java/org/apache/jasper/compiler/AttributeParser.java',281,283,'org.apache.jasper.compiler.AttributeParser','nextChar()',NULL),(13421,'None','None','test/org/apache/el/TestELInJsp.java',-1,-1,'None','None',NULL),(13422,'bug 48112','Line','test/org/apache/el/TestELEvaluation.java',130,130,'org.apache.el.TestELEvaluation','testParserFunction()','NOT_DESIGN'),(13423,'None','None','test/org/apache/el/TestELEvaluation.java',-1,-1,'None','None',NULL),(13424,'bug 48112','Line','test/org/apache/el/TestELEvaluation.java',86,86,'org.apache.el.TestELEvaluation','testBug48112()',NULL),(13425,'TODO fix IPv6','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',403,403,'org.apache.tomcat.util.net.AbstractEndpoint','getSocketProperties()','NOT_DESIGN'),(13426,'None','None','java/org/apache/tomcat/util/net/AbstractEndpoint.java',-1,-1,'None','None',NULL),(13427,'TODO: we may initiate multiple SPDY connections with each server\nSending frames is synchronized, receiving is muxed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',41,42,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)','DESIGN'),(13428,'None','None','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',-1,-1,'None','None',NULL),(13429,'TODO: use int map','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',88,88,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13430,'TODO: use int map','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',87,87,'org.apache.tomcat.lite.http.SpdyConnection','None',NULL),(13431,'TODO: detect if it\'s spdy or http based on bit 8','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',106,106,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13432,'TODO: detect if it\'s spdy or http based on bit 8','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',105,105,'org.apache.tomcat.lite.http.SpdyConnection','None',NULL),(13433,'TODO: reuse','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',126,126,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13434,'TODO: reuse','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',127,127,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13435,'TODO: extra checks, make sure the frame is correct and\nit consumed all data.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',135,136,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13436,'TODO: extra checks, make sure the frame is correct and\nit consumed all data.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',136,137,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13437,'TODO: make sure we have enough data.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',149,149,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13438,'TODO: make sure we have enough data.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',160,160,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13439,'0x800 headers seems a bit too much - assume compressed.\nI wish this was a flag...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',299,300,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13440,'TODO: no need to send version, method if default','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',281,281,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13441,'TODO: no need to send version, method if default','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',340,340,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13442,'TODO: spdy uses full URL, we may want to trim\nalso no host header','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',289,290,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13443,'TODO: spdy uses full URL, we may want to trim\nalso no host header','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',348,349,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13444,'TODO Consider hard-coding to s.setSoLinger(true,0)','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',409,409,'org.apache.tomcat.util.net.AbstractEndpoint','getSocketProperties()',NULL),(13445,'TODO: repeated values are separated by a 0','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',356,356,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13446,'TODO: url - with host prefix , method\noptimize...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',315,316,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13447,'TODO: url - with host prefix , method\noptimize...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',379,380,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13448,'TODO: url','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',324,324,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13449,'TODO: url','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',388,388,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13450,'TODO: duplicated headers not allowed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',456,456,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13451,'TODO: duplicated headers not allowed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',541,541,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13452,'TODO: chunk if too much data ( at least at 24 bits)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',497,497,'org.apache.tomcat.lite.http.SpdyConnection','newConnection(HttpConnector)',NULL),(13453,'TODO: chunk if too much data ( at least at 24 bits)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',585,585,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13454,'TODO: send interrupt signal','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',614,614,'org.apache.tomcat.lite.http.SpdyConnection','abort(HttpChannel, String)',NULL),(13455,'TODO: send interrupt signal','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',722,722,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(13456,'Magic way to force spdy - will be replaced with\na negotiation.','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',131,132,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','tearDown()',NULL),(13457,'no body','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',137,137,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','tearDown()',NULL),(13458,'Send the request, wait response','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',139,139,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','tearDown()',NULL),(13459,'assertEquals(testServer., actual)','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',199,199,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','tearDown()',NULL),(13460,'TODO: move to a servlet','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',205,205,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','tearDown()',NULL),(13461,'TODO: add it to the cpool','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',397,397,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)','NOT_DESIGN'),(13462,'TODO: add timeouts, limits per host/total, expire old entries\nTODO: discover apr and use it','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',515,516,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)','NOT_DESIGN'),(13463,'TODO: secure set at start ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',739,739,'org.apache.tomcat.lite.http.SpdyConnection','checkConnection(HttpChannel)',NULL),(13464,'TODO: use JMX/DynamicObject to get all public info','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/service/IOStatus.java',35,35,'org.apache.tomcat.lite.service.IOStatus','service(HttpRequest, HttpResponse)',NULL),(13465,'web-app elements\nTODO: Ignored elements:\n- description\n- icon','Line','java/org/apache/catalina/startup/WebXml.java',159,162,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13466,'web-app elements\nTODO: Ignored elements:\n- description\n- icon','Line','java/org/apache/catalina/deploy/WebXml.java',137,140,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13467,'display-name - TODO should support multiple with language','Line','java/org/apache/catalina/startup/WebXml.java',164,164,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13468,'display-name - TODO should support multiple with language','Line','java/org/apache/catalina/deploy/WebXml.java',142,142,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13469,'context-param\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',178,179,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13470,'context-param\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/deploy/WebXml.java',156,157,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13471,'filter\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple icon elements\nTODO: Description for init-param is ignored','Line','java/org/apache/catalina/startup/WebXml.java',186,190,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13472,'filter\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple icon elements\nTODO: Description for init-param is ignored','Line','java/org/apache/catalina/deploy/WebXml.java',164,168,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13473,'listener\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',211,214,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13474,'listener\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored','Line','java/org/apache/catalina/deploy/WebXml.java',189,192,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13475,'servlet\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored\nTODO: init-param/description (multiple with language) is ignored\nTODO: security-role-ref/description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',221,226,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13476,'servlet\nTODO: description (multiple with language) is ignored\nTODO: display-name (multiple with language) is ignored\nTODO: icon (multiple) is ignored\nTODO: init-param/description (multiple with language) is ignored\nTODO: security-role-ref/description (multiple with language) is ignored','Line','java/org/apache/catalina/deploy/WebXml.java',199,204,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13477,'security-constraint\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',302,304,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13478,'security-constraint\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',280,282,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13479,'security-role\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/startup/WebXml.java',322,323,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13480,'security-role\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/deploy/WebXml.java',300,301,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13481,'env-entry\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',330,331,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13482,'env-entry\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',308,309,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13483,'ejb-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',345,346,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13484,'ejb-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',323,324,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13485,'ejb-local-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',353,354,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13486,'ejb-local-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',331,332,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13487,'service-ref\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXml.java',364,367,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13488,'service-ref\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/deploy/WebXml.java',342,345,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13489,'resource-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',375,376,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13490,'resource-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',353,354,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13491,'resource-env-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',392,393,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13492,'resource-env-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',370,371,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13493,'message-destination-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/startup/WebXml.java',409,410,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13494,'message-destination-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',387,388,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13495,'message-destination\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/startup/WebXml.java',430,433,'org.apache.catalina.startup.WebXml','addAbsoluteOrdering(String)',NULL),(13496,'message-destination\nTODO: Should support multiple description elements with language\nTODO: Should support multiple display-names elements with language\nTODO: Should support multiple icon elements ???','Line','java/org/apache/catalina/deploy/WebXml.java',408,411,'org.apache.catalina.deploy.WebXml','addAbsoluteOrdering(String)',NULL),(13497,'TODO - Various, icon, description etc elements are skipped - mainly\nbecause they are ignored when web.xml is parsed - see above','Line','java/org/apache/catalina/startup/WebXml.java',496,497,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13498,'TODO - Various, icon, description etc elements are skipped - mainly\nbecause they are ignored when web.xml is parsed - see above','Line','java/org/apache/catalina/deploy/WebXml.java',474,475,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(13499,'TODO mapped-name','Line','java/org/apache/catalina/startup/WebXml.java',808,808,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13500,'TODO mapped-name','Line','java/org/apache/catalina/deploy/WebXml.java',786,786,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(13501,'TODO lookup-name','Line','java/org/apache/catalina/startup/WebXml.java',817,817,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13502,'TODO lookup-name','Line','java/org/apache/catalina/deploy/WebXml.java',795,795,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(13503,'TODO handler-chains\nTODO mapped-name','Line','java/org/apache/catalina/startup/WebXml.java',908,909,'org.apache.catalina.startup.WebXml','toXml()',NULL),(13504,'TODO handler-chains\nTODO mapped-name','Line','java/org/apache/catalina/deploy/WebXml.java',886,887,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(13505,'Move to beginning','Line','java/org/apache/catalina/startup/WebXml.java',1992,1992,'org.apache.catalina.startup.WebXml','orderWebFragments(WebXml, Map<String, WebXml>)',NULL),(13506,'Move to beginning','Line','java/org/apache/catalina/deploy/WebXml.java',1970,1970,'org.apache.catalina.deploy.WebXml','orderWebFragments(WebXml, Map<String, WebXml>)',NULL),(13507,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/DynamicObject.java',120,120,'org.apache.tomcat.integration.DynamicObject','getAttribute(Object, String)',NULL),(13508,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/jmx/JMXProxyServlet.java',245,247,'org.apache.tomcat.integration.jmx.JMXProxyServlet','escape(String)',NULL),(13509,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/jmx/UJmxHandler.java',181,183,'org.apache.tomcat.integration.jmx.UJmxHandler','escape(String)',NULL),(13510,'TODO: use the cache...','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/DynamicObject.java',158,158,'org.apache.tomcat.integration.DynamicObject','setAttribute(Object, String, Object)',NULL),(13511,'TODO: use the cache...','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/DynamicObject.java',186,186,'org.apache.tomcat.integration.DynamicObject','setProperty(Object, String, String)',NULL),(13512,'TODO: add timeouts, limits per host/total, expire old entries','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnectionPool.java',28,28,'org.apache.tomcat.lite.http.HttpConnectionPool','None',NULL),(13513,'TODO: setter, default from connector','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnectionPool.java',55,55,'org.apache.tomcat.lite.http.HttpConnectionPool','newTarget(RemoteServer)',NULL),(13514,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnectionPool.java',185,185,'org.apache.tomcat.lite.http.HttpConnectionPool','newTarget(RemoteServer)',NULL),(13515,'TODO: check ssl on connection - now if a second request\nis received on a ssl connection - we just send it','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnectionPool.java',200,201,'org.apache.tomcat.lite.http.HttpConnectionPool','newTarget(RemoteServer)',NULL),(13516,'TODO: remove old servers and connections','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnectionPool.java',214,214,'org.apache.tomcat.lite.http.HttpConnectionPool','newTarget(RemoteServer)',NULL),(13517,'Temp magic - until a better negotiation is defined','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnectionPool.java',216,216,'org.apache.tomcat.lite.http.HttpConnectionPool','newTarget(RemoteServer)',NULL),(13518,'TODO Spec breaking enhancement to ignore this restriction','Line','java/org/apache/catalina/core/ApplicationContext.java',903,903,'org.apache.catalina.core.ApplicationContext','getResources()','DESIGN'),(13519,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',1061,1061,'org.apache.catalina.core.ApplicationContext','getResources()','NOT_DESIGN'),(13520,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',1094,1094,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(13521,'TODO Spec breaking enhancement to ignore this restriction','Line','java/org/apache/catalina/core/ApplicationContext.java',1159,1159,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(13522,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',1220,1220,'org.apache.catalina.core.ApplicationContext','getResources()','NOT_DESIGN'),(13523,'TODO SERVLET3\nthrow UnsupportedOperationException - if this context was passed to the','Line','java/org/apache/catalina/core/ApplicationContext.java',896,897,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(13524,'TODO SERVLET3 - also need to check caller? spec isn\'t clear','Line','java/org/apache/catalina/core/ApplicationContext.java',1257,1257,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(13525,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',1390,1390,'org.apache.catalina.core.ApplicationContext','getResources()','NOT_DESIGN'),(13526,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',1358,1358,'org.apache.catalina.core.ApplicationContext','getResources()','NOT_DESIGN'),(13527,'TODO SERVLET3','Line','java/org/apache/catalina/core/ApplicationContext.java',1378,1378,'org.apache.catalina.core.ApplicationContext','getResources()','NOT_DESIGN'),(13528,'Do this last as it depends on servlets\nTODO','Line','java/org/apache/catalina/deploy/WebXml.java',1302,1303,'org.apache.catalina.deploy.WebXml','configureContext(Context)','NOT_DESIGN'),(13529,'Do this last as it depends on servlets','Line','java/org/apache/catalina/deploy/WebXml.java',1302,1302,'org.apache.catalina.deploy.WebXml','configureContext(Context)',NULL),(13530,'Clear the resource bundle cache\nThis shouldn\'t be necessary, the cache uses weak references but\nit has caused leaks. Oddly, using the leak detection code in\nstandard host allows the class loader to be GC\'d. This has been seen\non Sun but not IBM JREs. Maybe a bug in Sun\'s GC impl?','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1784,1788,'org.apache.catalina.loader.WebappClassLoader','clearReferences()',NULL),(13531,'Avoid ArrayIndexOutOfBoundsException\nProbably bug 48494 but could be some other cause','Line','java/org/apache/jasper/compiler/JavacErrorDetail.java',100,101,'org.apache.jasper.compiler.JavacErrorDetail','getJavaFileName()',NULL),(13532,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpProcessor.java',1130,1131,'org.apache.coyote.ajp.AjpProcessor','readMessage(AjpMessage)',NULL),(13533,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',1189,1190,'org.apache.coyote.ajp.AjpAprProcessor','readMessage(AjpMessage, boolean, boolean)',NULL),(13534,'FIXME WHy we need no duplication check?','Line','java/org/apache/catalina/session/ManagerBase.java',824,824,'org.apache.catalina.session.ManagerBase','run()','DESIGN'),(13535,'None','None','java/org/apache/catalina/session/ManagerBase.java',-1,-1,'None','None',NULL),(13536,'FIXME: Code to be used in case route replacement is needed','Line','java/org/apache/catalina/session/ManagerBase.java',824,824,'org.apache.catalina.session.ManagerBase','run()','DESIGN'),(13537,'FIXME - \\\"*\\\" entries are not handled','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/util/LocaleParser.java',98,98,'org.apache.tomcat.servlets.util.LocaleParser','None',NULL),(13538,'FIXME - \\\"*\\\" entries are not handled','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/util/LocaleParser.java',98,98,'org.apache.tomcat.lite.util.LocaleParser','None',NULL),(13539,'\nTest method for \'org.apache.tomcat.util.buf.UEncoder.encodeURL(String)\'\nTODO: find the relevant rfc and apache tests and add more','Block','modules/tomcat-lite/test/org/apache/tomcat/util/buf/UEncoderTest.java',25,29,'org.apache.tomcat.util.buf.UEncoderTest','testEncodeURL()',NULL),(13540,'\nTest method for \'org.apache.tomcat.util.buf.UEncoder.encodeURL(String)\'\nTODO: find the relevant rfc and apache tests and add more','Block','modules/tomcat-lite/test/org/apache/tomcat/lite/util/UEncoderTest.java',25,29,'org.apache.tomcat.lite.util.UEncoderTest','testEncodeURL()',NULL),(13541,'TODO: enable anon suites','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',81,81,'org.apache.tomcat.lite.io.SslChannel','None',NULL),(13542,'TODO: enable anon suites','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',104,104,'org.apache.tomcat.lite.io.SslChannel','setTarget(String, int)','NOT_DESIGN'),(13543,'TODO: send/receive one more packet ( handshake mode ? )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',166,166,'org.apache.tomcat.lite.io.SslChannel','initSsl()',NULL),(13544,'TODO: send/receive one more packet ( handshake mode ? )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',203,203,'org.apache.tomcat.lite.io.SslChannel','setTarget(String, int)',NULL),(13545,'TODO: timer to close socket if we don\'t get\nclean close handshake','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',228,229,'org.apache.tomcat.lite.io.SslChannel','close()',NULL),(13546,'TODO: timer to close socket if we don\'t get\nclean close handshake','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',278,279,'org.apache.tomcat.lite.io.SslChannel','setTarget(String, int)',NULL),(13547,'TODO: register existing objects in JMX','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/jmx/JmxObjectManagerSpi.java',66,66,'org.apache.tomcat.integration.jmx.JmxObjectManagerSpi','run()',NULL),(13548,'do nothing, might be a future unsupported method\nso we better bail out and let the system continue','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/StatementDecoratorInterceptor.java',110,111,'org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor','closeInvoked()',NULL),(13549,'TODO: save and remove if not recognized','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',585,585,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13550,'if we are calling anything else, bail out','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/StatementDecoratorInterceptor.java',169,169,'org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor','closeInvoked()',NULL),(13551,'TODO: process connection headers','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',600,600,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(13552,'TODO: move to a servlet','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',288,288,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','None',NULL),(13553,'TODO: use it for utf-8','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOWriter.java',157,157,'org.apache.tomcat.lite.io.IOWriter','char2utf8(byte[], int, char, char)',NULL),(13554,'TODO: asserts','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/MicroTest.java',47,47,'org.apache.tomcat.lite.load.MicroTest','testMapper()',NULL),(13555,'Avoid ArrayIndexOutOfBoundsException\nProbably bug 48498 but could be some other cause','Line','java/org/apache/jasper/compiler/JavacErrorDetail.java',100,101,'org.apache.jasper.compiler.JavacErrorDetail','getJavaFileName()',NULL),(13556,'TODO Remove this comment once all components that implement Lifecycle\nhave had this method added','Line','java/org/apache/catalina/Lifecycle.java',211,212,'org.apache.catalina.Lifecycle','None','DESIGN'),(13557,'Shouldn\'t be necessary but acts as a check that sub-classes are doing\nwhat they are supposed to.','Line','java/org/apache/catalina/util/LifecycleBase.java',130,131,'org.apache.catalina.util.LifecycleBase','start()',NULL),(13558,'Shouldn\'t be necessary but acts as a check that sub-classes are doing\nwhat they are supposed to.','Line','java/org/apache/catalina/util/LifecycleBase.java',194,195,'org.apache.catalina.util.LifecycleBase','stop()',NULL),(13559,'Shouldn\'t be necessary but acts as a check that sub-classes are doing\nwhat they are supposed to.','Line','java/org/apache/catalina/util/LifecycleBase.java',134,135,'org.apache.catalina.util.LifecycleBase','start()',NULL),(13560,'Shouldn\'t be necessary but acts as a check that sub-classes are\ndoing what they are supposed to.','Line','java/org/apache/catalina/util/LifecycleBase.java',134,135,'org.apache.catalina.util.LifecycleBase','start()',NULL),(13561,'somehow start() gets called more than once','Line','java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java',70,70,'org.apache.catalina.ha.session.SimpleTcpReplicationManager','None','NOT_DESIGN'),(13562,'None','None','java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java',-1,-1,'None','None',NULL),(13563,'None','None','java/org/apache/catalina/Lifecycle.java',-1,-1,'None','None',NULL),(13564,'TODO Remove this method entirely','Line','java/org/apache/catalina/core/StandardContext.java',1133,1133,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13565,'TODO - calculate timeout based on length in queue (System.currentTimeMills() - wrapper.getLastAccess() is the time in queue)','Line','java/org/apache/coyote/http11/Http11Processor.java',194,194,'org.apache.coyote.http11.Http11Processor','process(SocketWrapper<Socket>)',NULL),(13566,'keepalive connection\nTODO - servlet3 check async status, we may just be in a hold pattern','Line','java/org/apache/tomcat/util/net/JIoEndpoint.java',210,211,'org.apache.tomcat.util.net.JIoEndpoint','run()',NULL),(13567,'TODO SERVLET3 async=false','Line','java/org/apache/coyote/http11/Http11Processor.java',624,624,'org.apache.coyote.http11.Http11Processor','action(ActionCode, Object)','NOT_DESIGN'),(13568,'TODO SERVLET3 - do nothing?','Line','java/org/apache/coyote/http11/Http11Processor.java',639,639,'org.apache.coyote.http11.Http11Processor','action(ActionCode, Object)','DESIGN'),(13569,'We\'re included, and the response.sendError() below is going\nto be ignored by the resource that is including us.\nTherefore, the only way we can let the including resource\nknow is by including warning message in response','Line','java/org/apache/catalina/servlets/DefaultServlet.java',706,709,'org.apache.catalina.servlets.DefaultServlet','destroy()','DESIGN'),(13570,'We\'re included\nSRV.9.3 says we must throw a FNFE','Line','java/org/apache/catalina/servlets/DefaultServlet.java',707,708,'org.apache.catalina.servlets.DefaultServlet','destroy()',NULL),(13571,'None','None','java/org/apache/coyote/http11/Http11Processor.java',-1,-1,'None','None',NULL),(13572,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',415,415,'org.apache.catalina.connector.CoyoteAdapter','service(org.apache.coyote.Request, org.apache.coyote.Response)','NOT_DESIGN'),(13573,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',302,302,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)',NULL),(13574,'TODO SERVLET3 - async','Line','java/org/apache/coyote/ajp/AjpProcessor.java',670,670,'org.apache.coyote.ajp.AjpProcessor','action(ActionCode, Object)',NULL),(13575,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1561,1561,'org.apache.catalina.connector.Request','getAsyncContext()','NOT_DESIGN'),(13576,'FIXME: Feature idea. Add support for patterns (ex: WEB-INF/*, WEB-INF/*.xml), where\nwe would only check if at least one resource is newer than app.timestamp','Line','java/org/apache/catalina/startup/HostConfig.java',1076,1077,'org.apache.catalina.startup.HostConfig','getConfigClass()',NULL),(13577,'FIXME: Feature idea. Add support for patterns (ex: WEB-INF/*,\nWEB-INF/*.xml), where we would only check if at least one\nresource is newer than app.timestamp','Line','java/org/apache/catalina/startup/HostConfig.java',1077,1079,'org.apache.catalina.startup.HostConfig','getConfigClass()',NULL),(13578,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',81,81,'org.apache.catalina.core.AsyncContextImpl','complete()',NULL),(13579,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',115,115,'org.apache.catalina.core.AsyncContextImpl','dispatch(ServletContext, String)',NULL),(13580,'if we are calling anything else, bail out','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java',208,208,'org.apache.tomcat.jdbc.pool.interceptor.StatementCache','invoke(Object, Method, Object[])','NOT_DESIGN'),(13581,'FIXME','Line','java/org/apache/catalina/core/ApplicationContextFacade.java',640,640,'org.apache.catalina.core.ApplicationContextFacade','declareRoles(String...)',NULL),(13582,'XXX for backward compatibility. Remove it once supported by the admin','Line','java/org/apache/catalina/mbeans/MBeanFactory.java',551,551,'org.apache.catalina.mbeans.MBeanFactory','createStandardContext(String, String, String)','NOT_DESIGN'),(13583,'None','None','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java',-1,-1,'None','None',NULL),(13584,'FIXME: Add HTML filtering','Line','webapps/examples/WEB-INF/classes/chat/ChatServlet.java',234,234,'chat.ChatServlet','run()','NOT_DESIGN'),(13585,'None','None','webapps/examples/WEB-INF/classes/chat/ChatServlet.java',-1,-1,'None','None',NULL),(13586,'TODO: Log failure','Line','java/org/apache/naming/resources/BaseDirContext.java',166,166,'org.apache.naming.resources.BaseDirContext','None',NULL),(13587,'TODO: Clean up','Line','java/org/apache/naming/resources/BaseDirContext.java',168,168,'org.apache.naming.resources.BaseDirContext','None',NULL),(13588,'TODO: Log error','Line','java/org/apache/catalina/core/StandardContext.java',4745,4745,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13589,'TODO SERVLET3 - also need to check caller? spec isn\'t clear','Line','java/org/apache/catalina/core/ApplicationContext.java',1275,1275,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(13590,'TODO SERVLET3 - if ServletContextListener then also need to check caller? spec isn\'t clear','Line','java/org/apache/catalina/core/ApplicationContext.java',1271,1271,'org.apache.catalina.core.ApplicationContext','getResources()',NULL),(13591,'FIXME: These tests are currently failing. See comment in testResources2() below.','Line','test/org/apache/catalina/core/TestStandardContextResources.java',48,48,'org.apache.catalina.core.TestStandardContextResources','None','DESIGN'),(13592,'A custom search tree may be better','Line','java/org/apache/tomcat/util/collections/MultiMap.java',104,104,'org.apache.tomcat.util.collections.MultiMap','recycle()',NULL),(13593,'workaround for JDK1.1.8/solaris','Line','java/org/apache/tomcat/util/collections/MultiMap.java',207,207,'org.apache.tomcat.util.collections.MultiMap','recycle()',NULL),(13594,'None','None','test/org/apache/catalina/core/TestStandardContextResources.java',-1,-1,'None','None',NULL),(13595,'FIXME: Strange why servletDef is Boolean and FilterDef is String?','Line','test/org/apache/catalina/startup/TestContextConfigAnnotation.java',208,208,'org.apache.catalina.startup.TestContextConfigAnnotation','testOverwriteFilterMapping()',NULL),(13596,'for consistency...: we are probably in embedded mode','Line','java/org/apache/catalina/core/StandardEngine.java',359,359,'org.apache.catalina.core.StandardEngine','init()',NULL),(13597,'for consistency...: we are probably in embedded mode','Line','java/org/apache/catalina/core/StandardEngine.java',355,355,'org.apache.catalina.core.StandardEngine','initInternal()',NULL),(13598,'TODO - Check for JMX support and register if required','Line','java/org/apache/catalina/util/LifecycleBase.java',98,98,'org.apache.catalina.util.LifecycleBase','init()','NOT_DESIGN'),(13599,'TODO - Check for JMX support and de-register if required','Line','java/org/apache/catalina/util/LifecycleBase.java',250,250,'org.apache.catalina.util.LifecycleBase','destroy()','NOT_DESIGN'),(13600,'TODO - Get this form elsewhere','Line','java/org/apache/catalina/core/StandardService.java',539,539,'org.apache.catalina.core.StandardService','getContainer()','DESIGN'),(13601,'None','None','java/org/apache/catalina/core/StandardService.java',-1,-1,'None','None',NULL),(13602,'TODO SERVLET3 - async - that is bit hacky -','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',1264,1264,'org.apache.coyote.http11.Http11AprProcessor','action(ActionCode, Object)',NULL),(13603,'Register MBean if required','Line','java/org/apache/catalina/util/LifecycleBase.java',102,102,'org.apache.catalina.util.LifecycleBase','init()',NULL),(13604,'None','None','java/org/apache/catalina/util/LifecycleBase.java',-1,-1,'None','None',NULL),(13605,'Hack - Server should be deprecated...','Line','java/org/apache/catalina/core/StandardService.java',531,531,'org.apache.catalina.core.StandardService','getContainer()','DESIGN'),(13606,'FIXME unregister should be here probably -- stop doing that ?','Line','java/org/apache/catalina/core/StandardService.java',575,575,'org.apache.catalina.core.StandardService','getContainer()','DESIGN'),(13607,'Destroy our defined Connectors','Line','java/org/apache/catalina/core/StandardService.java',545,545,'org.apache.catalina.core.StandardService','getContainer()',NULL),(13608,'Destroy any Executors','Line','java/org/apache/catalina/core/StandardService.java',558,558,'org.apache.catalina.core.StandardService','getContainer()',NULL),(13609,'there could have been contention around the queue','Line','java/org/apache/catalina/core/StandardThreadExecutor.java',161,161,'org.apache.catalina.core.StandardThreadExecutor','execute(Runnable)',NULL),(13610,'there could have been contention around the queue','Line','java/org/apache/catalina/core/StandardThreadExecutor.java',178,178,'org.apache.catalina.core.StandardThreadExecutor','initInternal()',NULL),(13611,'Lazy - maybe it was added later','Line','java/org/apache/catalina/connector/Connector.java',367,367,'org.apache.catalina.connector.Connector','getProperty(String)','NOT_DESIGN'),(13612,'None','None','java/org/apache/catalina/connector/Connector.java',-1,-1,'None','None',NULL),(13613,'XXX Go directly to the Engine','Line','java/org/apache/catalina/connector/Connector.java',1041,1041,'org.apache.catalina.connector.Connector','findContainer()','NOT_DESIGN'),(13614,'there could have been contention around the queue','Line','java/org/apache/catalina/core/StandardThreadExecutor.java',162,162,'org.apache.catalina.core.StandardThreadExecutor','execute(Runnable)',NULL),(13615,'JMX created the loader\nTODO','Line','java/org/apache/catalina/loader/WebappLoader.java',552,553,'org.apache.catalina.loader.WebappLoader','getClassLoader()','NOT_DESIGN'),(13616,'None','None','java/org/apache/catalina/loader/WebappLoader.java',-1,-1,'None','None',NULL),(13617,'FIXME pero -- Why container stop first? KeepAlive connections can send request!\nStop our defined Connectors first','Line','java/org/apache/catalina/core/StandardService.java',489,490,'org.apache.catalina.core.StandardService','getContainer()',NULL),(13618,'FIXME pero -- Why container stop first? KeepAlive connections can send request!\nStop our defined Connectors first','Line','java/org/apache/catalina/core/StandardService.java',485,486,'org.apache.catalina.core.StandardService','stopInternal()',NULL),(13619,'as a hack, you can use a static file - and generate the same\nsession ids ( good for strange debugging )','Line','java/org/apache/catalina/session/ManagerBase.java',526,527,'org.apache.catalina.session.ManagerBase','run()',NULL),(13620,'as a hack, you can use a static file - and generate the same\nsession ids ( good for strange debugging )','Line','java/org/apache/catalina/session/ManagerBase.java',521,522,'org.apache.catalina.session.ManagerBase','setRandomFile(String)',NULL),(13621,'Duplicate valve earlier in pipeline\nincrement sequence number','Line','java/org/apache/catalina/valves/ValveBase.java',315,316,'org.apache.catalina.valves.ValveBase','getObjectNameKeyProperties()',NULL),(13622,'FIXME Remove -- not used','Line','java/org/apache/catalina/core/StandardEngine.java',495,495,'org.apache.catalina.core.StandardEngine','getParentName()','DESIGN'),(13623,'None','None','java/org/apache/catalina/core/StandardEngine.java',-1,-1,'None','None',NULL),(13624,'The engine name is used as domain\nXXX should we set it in init() ? It shouldn\'t matter','Line','java/org/apache/catalina/core/StandardEngine.java',163,164,'org.apache.catalina.core.StandardEngine','setName(String)','DESIGN'),(13625,'for consistency...: we are probably in embedded mode','Line','java/org/apache/catalina/core/StandardEngine.java',290,290,'org.apache.catalina.core.StandardEngine','initInternal()','NOT_DESIGN'),(13626,'As things depend on the JMX registration, the context\nmust be reregistered again once properly initialized','Line','java/org/apache/catalina/core/StandardContext.java',4536,4537,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()','NOT_DESIGN'),(13627,'Send j2ee.state.starting notification','Line','java/org/apache/catalina/core/StandardContext.java',4516,4516,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13628,'Look for a realm - that may have been configured earlier.\nIf the realm is added after context - it\'ll set itself.\nTODO: what is the use case for this ?','Line','java/org/apache/catalina/core/StandardContext.java',4565,4567,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()','DESIGN'),(13629,'We could do it the hard way...','Line','java/org/apache/catalina/core/StandardContext.java',5686,5686,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()','NOT_DESIGN'),(13630,'XXX The service and domain should be the same.','Line','java/org/apache/catalina/core/StandardContext.java',5769,5769,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()','NOT_DESIGN'),(13631,'This should probably be called later','Line','java/org/apache/catalina/connector/MapperListener.java',314,314,'org.apache.catalina.connector.MapperListener','registerEngine()','DESIGN'),(13632,'None','None','java/org/apache/catalina/connector/MapperListener.java',-1,-1,'None','None',NULL),(13633,'Why do we implement deployer and delegate to deployer ???','Block','java/org/apache/catalina/core/StandardHost.java',59,59,'org.apache.catalina.core.StandardHost','None','DESIGN'),(13634,'None','None','java/org/apache/catalina/core/StandardHost.java',-1,-1,'None','None',NULL),(13635,'TODO - Switch to container listener events for add/remove child and\nremove dependency on MBean server entirely.','Line','java/org/apache/catalina/connector/MapperListener.java',104,105,'org.apache.catalina.connector.MapperListener','getDomain()',NULL),(13636,'TODO SERVLET3 - if ServletContextListener then also need to check caller? spec isn\'t clear','Line','java/org/apache/catalina/core/ApplicationContext.java',1279,1279,'org.apache.catalina.core.ApplicationContext','getResources()','DESIGN'),(13637,'Not started - it should check for availability first\nThis should eventually move to Engine, it\'s generic.','Line','java/org/apache/catalina/core/StandardHostValve.java',129,130,'org.apache.catalina.core.StandardHostValve','getInfo()',NULL),(13638,'FIXME !','Line','java/org/apache/catalina/connector/Connector.java',300,300,'org.apache.catalina.connector.Connector','getProperty(String)','NOT_DESIGN'),(13639,'TODO: This class could either extend ByteBuffer, or better a ByteBuffer inside\nthis way it could provide the search/etc on ByteBuffer, as a helper.','Line','java/org/apache/tomcat/util/buf/ByteChunk.java',37,38,'None','None',NULL),(13640,'TODO: This class could either extend ByteBuffer, or better a ByteBuffer\ninside this way it could provide the search/etc on ByteBuffer, as a helper.','Line','java/org/apache/tomcat/util/buf/ByteChunk.java',37,38,'None','None',NULL),(13641,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1567,1567,'org.apache.catalina.connector.Request','isAsyncSupported()','NOT_DESIGN'),(13642,'TODO SERVLET3 - dispatcher','Line','java/org/apache/catalina/connector/Request.java',1580,1580,'org.apache.catalina.connector.Request','getDispatcherType()','NOT_DESIGN'),(13643,'TODO - Switch to container listener events for add/remove child and\nremove dependency on MBean server entirely.','Line','java/org/apache/catalina/connector/MapperListener.java',105,106,'org.apache.catalina.connector.MapperListener','getDomain()','DESIGN'),(13644,'FIXME: Support for this could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpAprProtocol.java',419,419,'org.apache.coyote.ajp.AjpAprProtocol','setAttribute(String, Object)',NULL),(13645,'as a hack, you can use a static file - and genarate the same\nsession ids ( good for strange debugging )','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/RandomGenerator.java',318,319,'org.apache.tomcat.servlets.session.RandomGenerator','setRandomFile(String)',NULL),(13646,'TODO: replace it with writeRole - who is enabled to write','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/WebdavServlet.java',129,129,'org.apache.tomcat.servlets.file.WebdavServlet','None',NULL),(13647,'TODO : Checking the WebDAV If header','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/WebdavServlet.java',223,223,'org.apache.tomcat.servlets.file.WebdavServlet','checkIfHeaders(HttpServletRequest, HttpServletResponse, File)',NULL),(13648,'Most likely there was no content : we use the defaults.\nTODO : Enhance that !','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/WebdavServlet.java',397,398,'org.apache.tomcat.servlets.file.WebdavServlet','getPropfindType(HttpServletRequest, Vector)',NULL),(13649,'TODO: hook for Webdav2','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/WebdavServlet.java',663,663,'org.apache.tomcat.servlets.file.WebdavServlet','genPropertiesFound(XMLWriter, Vector, File, String, Vector)',NULL),(13650,'TODO : Process this request body','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/WebdavServlet.java',731,731,'org.apache.tomcat.servlets.file.WebdavServlet','doMkcol(HttpServletRequest, HttpServletResponse)',NULL),(13651,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/jmx/UJmxHandler.java',180,182,'org.apache.tomcat.integration.jmx.UJmxHandler','escape(String)',NULL),(13652,'we have a header, but has bad value.\noriginal catalina code has a bug I think','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/WebdavServlet.java',824,825,'org.apache.tomcat.servlets.file.WebdavServlet','doPut(HttpServletRequest, HttpServletResponse)',NULL),(13653,'if (obj instanceof Resource)','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/WebdavServlet.java',900,900,'org.apache.tomcat.servlets.file.WebdavServlet','getOut(String)',NULL),(13654,'TODO: find a better default','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/Dir2Html.java',54,54,'org.apache.tomcat.servlets.file.Dir2Html','None',NULL),(13655,'TODO: Check the file cache to avoid a bunch of FS accesses.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/Dir2Html.java',136,136,'org.apache.tomcat.servlets.file.Dir2Html','serveResource(HttpServletRequest, HttpServletResponse, boolean, String)',NULL),(13656,'TODO: use a template for localization / customization','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/Dir2Html.java',275,275,'org.apache.tomcat.servlets.file.Dir2Html','renderHtml(String, File, String)',NULL),(13657,'Ok, no setXXX found, try a setProperty(\\\"name\\\", \\\"value\\\")','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/DynamicObject.java',237,237,'org.apache.tomcat.integration.DynamicObject','setProperty(Object, String, String)',NULL),(13658,'TODO: look for a pre-defined name in local dir, resource,\nmanifest','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/Main.java',58,59,'org.apache.tomcat.integration.simple.Main','main(String[])',NULL),(13659,'TODO: can I make \'inject\' public - Guice seems to\nsupport this.','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/SimpleObjectManager.java',145,146,'org.apache.tomcat.integration.simple.SimpleObjectManager','bind(String, Object)',NULL),(13660,'If SimpleObjectManager ( or maybe other supporting dynamic config ):','Line','modules/tomcat-lite/java/org/apache/tomcat/integration/simple/ServletHelper.java',63,63,'org.apache.tomcat.integration.simple.ServletHelper','initServlet(Servlet)',NULL),(13661,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestWrapperImpl.java',454,454,'org.apache.tomcat.lite.servlet.ServletRequestWrapperImpl','getAttribute(String)',NULL),(13662,'TODO: move the readLine functionality to base coyote IO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletReaderImpl.java',93,93,'org.apache.tomcat.lite.servlet.ServletReaderImpl','readLine()',NULL),(13663,'todo: should we init each of them ?','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/jsp/SingleThreadedProxyServlet.java',61,61,'org.apache.tomcat.servlets.jsp.SingleThreadedProxyServlet','service(HttpServletRequest, HttpServletResponse)',NULL),(13664,'all contexts - hostMapper knows about hostnames and how they are mapped.\nthis shouldn\'t be needed if we want to delegate ctx management','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',63,64,'org.apache.tomcat.lite.servlet.TomcatLite','None',NULL),(13665,'TODO ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',288,288,'org.apache.tomcat.lite.servlet.TomcatLite','defaultObjectManager()',NULL),(13666,'TODO: destroy all servlets and filters\nTODO: clean up any other reference to the context or its loader','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',299,300,'org.apache.tomcat.lite.servlet.TomcatLite','defaultObjectManager()',NULL),(13667,'TODO: move later','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/TomcatLite.java',362,362,'org.apache.tomcat.lite.servlet.TomcatLite','defaultObjectManager()',NULL),(13668,'Notify interested application event listeners\nFIXME - Assumes we call listeners in reverse order','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/HttpSessionImpl.java',580,581,'org.apache.tomcat.servlets.session.HttpSessionImpl','expire(boolean)',NULL),(13669,'TODO: find a better default','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',78,78,'org.apache.tomcat.servlets.file.DefaultServlet','None',NULL),(13670,'TODO: not allowed ?','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',319,319,'org.apache.tomcat.servlets.file.DefaultServlet','destroy()',NULL),(13671,'TODO: Check the file cache to avoid a bunch of FS accesses.','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',460,460,'org.apache.tomcat.servlets.file.DefaultServlet','serveResource(HttpServletRequest, HttpServletResponse, boolean)',NULL),(13672,'TODO: remove the sync, optimize - it\'s from ResourceAttribute','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',521,521,'org.apache.tomcat.servlets.file.DefaultServlet','serveResource(HttpServletRequest, HttpServletResponse, boolean)',NULL),(13673,'We\'re included, and the response.sendError() below is going\nto be ignored by the resource that is including us.\nTherefore, the only way we can let the including resource\nknow is by including warning message in response','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/file/DefaultServlet.java',698,701,'org.apache.tomcat.servlets.file.DefaultServlet','send404(HttpServletRequest, HttpServletResponse)',NULL),(13674,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/sec/IPFilter.java',70,70,'org.apache.tomcat.servlets.sec.IPFilter','getPatterns(String)',NULL),(13675,'TODO: move \'expiring objects\' to a separate utility class\nTODO: hook the background thread','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',38,39,'None','None',NULL),(13676,'None','None','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/SslChannel.java',-1,-1,'None','None',NULL),(13677,'TODO: send/receive one more packet ( handshake mode ? )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/SslChannel.java',218,218,'org.apache.tomcat.lite.io.jsse.SslChannel','setTarget(String, int)',NULL),(13678,'TODO: timer to close socket if we don\'t get\nclean close handshake','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/SslChannel.java',298,299,'org.apache.tomcat.lite.io.jsse.SslChannel','setTarget(String, int)',NULL),(13679,'TODO: mark session from cookie, check validity','Line','modules/tomcat-lite/java/org/apache/tomcat/servlets/session/SimpleSessionManager.java',521,521,'org.apache.tomcat.servlets.session.SimpleSessionManager','getRequestedSessionId(HttpServletRequest)',NULL),(13680,'SSL handshake require slow tasks - that will need to be executed in a\nthread anyways. Better to keep it simple ( the code is very complex ) -\nand do the initial handshake in a thread, not in the IO thread.\nWe\'ll need to unregister and register again from the selector.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',337,340,'org.apache.tomcat.lite.io.SslChannel','handleHandshking()','DESIGN'),(13681,'TODO: refactor all \'stm\' to separate class (not implemented)\npublic static final String SINGLE_THREADED_PROXY =','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',73,74,'org.apache.tomcat.lite.servlet.ServletConfigImpl','None',NULL),(13682,'Maybe we don\'t have data - that\'s fine.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SslChannel.java',505,505,'org.apache.tomcat.lite.io.SslChannel','handleReceived(IOChannel)','NOT_DESIGN'),(13683,'this is quite different from catalina, where an ugly kludge was\nused to use the same jsp servlet in 2 roles','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',417,418,'org.apache.tomcat.lite.servlet.ServletConfigImpl','newInstance()',NULL),(13684,'No JKS keystore ?\nTODO Auto-generated catch block','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/JsseSslProvider.java',256,257,'org.apache.tomcat.lite.io.jsse.JsseSslProvider','checkClientTrusted(X509Certificate[], String)',NULL),(13685,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',781,781,'org.apache.tomcat.lite.servlet.ServletConfigImpl','service(HttpRequest, HttpResponse)',NULL),(13686,'TODO: add a mode that trust a defined list of certs, like SSH','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/JsseSslProvider.java',389,389,'org.apache.tomcat.lite.io.jsse.JsseSslProvider','testModeURLConnection()',NULL),(13687,'Send a default message body.\nTODO: maybe other mechanism to customize default.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',847,848,'org.apache.tomcat.lite.servlet.ServletConfigImpl','serviceServlet(ServletContextImpl, ServletRequestImpl, ServletResponseImpl, ServletConfigImpl, MappingData)',NULL),(13688,'TODO...\nsee org/apache/http/conn/ssl/AbstractVerifier','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/JsseSslProvider.java',410,411,'org.apache.tomcat.lite.io.jsse.JsseSslProvider','testModeURLConnection()',NULL),(13689,'TODO: handle via error pages !','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletConfigImpl.java',874,874,'org.apache.tomcat.lite.servlet.ServletConfigImpl','handleUnavailable(ServletResponseImpl, ServletConfigImpl)',NULL),(13690,'make sure it\'s sent - on errors','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',292,292,'org.apache.coyote.lite.LiteProtocolHandler','action(ActionCode, Object)',NULL),(13691,'}\n\n\n/**\nSet the Host within which this Request is being processed.  This\nmust be called as soon as the appropriate Host is identified, and\nbefore the Request is passed to a context.\n\n@param host The newly associated Host\n/','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',383,392,'org.apache.tomcat.lite.servlet.ServletRequestImpl','addHeader(String, String)',NULL),(13692,'TODO: copy headers, fields','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',390,390,'org.apache.coyote.lite.LiteProtocolHandler','commit()',NULL),(13693,'TODO: we could override all methods and\nreturn recyclable cookies, if we really wanted','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',647,648,'org.apache.tomcat.lite.servlet.ServletRequestImpl','getCookies()',NULL),(13694,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',1147,1147,'org.apache.tomcat.lite.servlet.ServletRequestImpl','getRequestURL()',NULL),(13695,'TODO: dynamic','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',72,72,'org.apache.coyote.lite.LiteProtocolHandler','destroy()',NULL),(13696,'TODO: check !!!!\nCheck for a role defined directly as a <security-role>','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/ServletRequestImpl.java',1327,1328,'org.apache.tomcat.lite.servlet.ServletRequestImpl','isUserInRole(String)',NULL),(13697,'TODO: process attributes via registry !!','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',145,145,'org.apache.coyote.lite.LiteProtocolHandler','destroy()',NULL),(13698,'TODO: reuse, per req','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',201,201,'org.apache.coyote.lite.LiteProtocolHandler','destroy()',NULL),(13699,'TODO(costin): optimize: separate in 2 lists, one for url-mapped, one for\nservlet-name. Maybe even separate list for dispatcher and\nnon-dispatcher','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/WebappFilterMapper.java',167,169,'org.apache.tomcat.lite.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13700,'FIXME - log configuration problem','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/WebappFilterMapper.java',185,185,'org.apache.tomcat.lite.servlet.WebappFilterMapper','setServletContext(ServletContextImpl)',NULL),(13701,'TODO: resource injection','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/servlet/FilterConfigImpl.java',145,145,'org.apache.tomcat.lite.servlet.FilterConfigImpl','createFilter()',NULL),(13702,'Other options: ReentrantLock uses AbstractQueueSynchronizer,\nmore complex. Same for CountDownLatch\nFutureTask - uses Sync as well, ugly interface with\nCallable, can\'t be recycled.\nMina: simple object lock, doesn\'t extend java.util.concurent.Future','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/FutureCallbacks.java',26,30,'org.apache.tomcat.lite.io.FutureCallbacks','None',NULL),(13703,'Last activity timestamp.\nTODO: update and use it ( placeholder )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOChannel.java',73,74,'org.apache.tomcat.lite.io.IOChannel','None',NULL),(13704,'TODO: JSSE filter','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',368,368,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)','NOT_DESIGN'),(13705,'TODO: do we want to migrate them automatically ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOChannel.java',245,245,'org.apache.tomcat.lite.io.IOChannel','setConnectedCallback(IOConnector.ConnectedCallback)',NULL),(13706,'TODO: seems cleaner this way...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',382,382,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(13707,'TODO','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/DynamicObject.java',120,120,'org.apache.tomcat.test.watchdog.DynamicObject','getAttribute(Object, String)',NULL),(13708,'TODO: use the cache...','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/DynamicObject.java',158,158,'org.apache.tomcat.test.watchdog.DynamicObject','setAttribute(Object, String, Object)',NULL),(13709,'TODO: use the cache...','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/DynamicObject.java',186,186,'org.apache.tomcat.test.watchdog.DynamicObject','setProperty(Object, String, String)',NULL),(13710,'Ok, no setXXX found, try a setProperty(\\\"name\\\", \\\"value\\\")','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/DynamicObject.java',237,237,'org.apache.tomcat.test.watchdog.DynamicObject','setProperty(Object, String, String)',NULL),(13711,'XXX','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/AntProperties.java',41,41,'org.apache.tomcat.test.watchdog.AntProperties','replaceProperties(String, Hashtable<Object, Object>, PropertySource[])',NULL),(13712,'TODO Consider hard-coding to s.setSoLinger(true,0)','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',598,598,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(13713,'TODO','Line','test/org/apache/catalina/tribes/test/io/TestSerialization.java',29,29,'org.apache.catalina.tribes.test.io.TestSerialization','testEmptyArray()',NULL),(13714,'FIXME:Put an error message','Block','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',289,289,'org.apache.coyote.http11.InternalAprOutputBuffer','reset()','NOT_DESIGN'),(13715,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',605,608,'org.apache.coyote.http11.InternalAprOutputBuffer','write(CharChunk)','DESIGN'),(13716,'Note:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',652,655,'org.apache.coyote.http11.InternalAprOutputBuffer','write(String)','DESIGN'),(13717,'FIXME: Improve parsing to check for CRLF','Line','java/org/apache/coyote/http11/filters/ChunkedInputFilter.java',280,280,'org.apache.coyote.http11.filters.ChunkedInputFilter','parseChunkHeader()',NULL),(13718,'FIXME: Servlet 3.0 Spec say: Container must start a thread!','Line','test/org/apache/catalina/core/TestAsyncListener.java',170,170,'org.apache.catalina.core.TestAsyncListener','doGet(HttpServletRequest, HttpServletResponse)',NULL),(13719,'ToDo: Why doesn\'t remove repositories?','Line','test/org/apache/catalina/loader/TestVirtualWebappLoader.java',53,53,'org.apache.catalina.loader.TestVirtualWebappLoader','testStartInternal()',NULL),(13720,'TODO SERVLET3 - async - set context class loader when running the task.','Line','java/org/apache/catalina/core/AsyncContextImpl.java',187,187,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)',NULL),(13721,'TODO SERVLET3 -\nasync - set context class loader when running the task.','Line','java/org/apache/catalina/core/AsyncContextImpl.java',218,219,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)',NULL),(13722,'FIXME: Servlet 3.0 Spec say: Container must start a thread!','Line','test/org/apache/catalina/core/TestAsyncListener.java',193,193,'org.apache.catalina.core.TestAsyncListener','doGet(HttpServletRequest, HttpServletResponse)',NULL),(13723,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',187,187,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)',NULL),(13724,'TODO SERVLET3 - async - set context class loader when running the\ntask.','Line','java/org/apache/catalina/core/AsyncContextImpl.java',183,184,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)','NOT_DESIGN'),(13725,'TODO - Use a container thread without creating a memory leak\nExecute the runnable using a container thread from the\nConnector\'s thread pool','Line','java/org/apache/catalina/core/AsyncContextImpl.java',186,188,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)','DESIGN'),(13726,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',73,73,'org.apache.catalina.core.AsyncContextImpl','complete()',NULL),(13727,'TODO SERVLET3 - async - set context class loader when running the task.','Line','java/org/apache/catalina/core/AsyncContextImpl.java',191,191,'org.apache.catalina.core.AsyncContextImpl','start(Runnable)',NULL),(13728,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/catalina/startup/TestTomcatSSL.java',165,165,'org.apache.catalina.startup.TestTomcatSSL','renegotiateFail(boolean)',NULL),(13729,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/catalina/startup/TestTomcatSSL.java',145,145,'org.apache.catalina.startup.TestTomcatSSL','testRenegotiateFail()',NULL),(13730,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/Request.java',1542,1542,'org.apache.catalina.connector.Request','startAsync()','NOT_DESIGN'),(13731,'TODO SERVLET3 - async - need to retrieve the ServletContext here\nor just the webapp classloader associated with to do\nrun with start(Runnable)','Line','java/org/apache/catalina/connector/Request.java',1560,1562,'org.apache.catalina.connector.Request','startAsync(ServletRequest, ServletResponse)','DESIGN'),(13732,'None','None','java/org/apache/catalina/core/AsyncContextImpl.java',-1,-1,'None','None',NULL),(13733,'Execute the runnable using a container thread from the\nConnector\'s thread pool. Use a wrapper to prevent a memory leak','Line','java/org/apache/catalina/core/AsyncContextImpl.java',185,186,'org.apache.catalina.core.AsyncContextImpl','complete()',NULL),(13734,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',75,75,'org.apache.catalina.core.AsyncContextImpl','None','NOT_DESIGN'),(13735,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',118,118,'org.apache.catalina.core.AsyncContextImpl','complete()','NOT_DESIGN'),(13736,'TODO: Log failure','Line','java/org/apache/naming/resources/BaseDirContext.java',169,169,'org.apache.naming.resources.BaseDirContext','None','NOT_DESIGN'),(13737,'None','None','java/org/apache/naming/resources/BaseDirContext.java',-1,-1,'None','None',NULL),(13738,'TODO: Clean up','Line','java/org/apache/naming/resources/BaseDirContext.java',171,171,'org.apache.naming.resources.BaseDirContext','None','DESIGN'),(13739,'Ignore','Line','java/org/apache/naming/resources/BaseDirContext.java',173,173,'org.apache.naming.resources.BaseDirContext','None',NULL),(13740,'\nXXX NOTE:  This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework.  It must suffice until servlet output\nstreams properly encode their output.\n\nhigh order byte must be zero','Line','java/javax/servlet/ServletOutputStream.java',79,85,'javax.servlet.ServletOutputStream','print(String)',NULL),(13741,'\nXXX NOTE: This is clearly incorrect for many strings,\nbut is the only consistent approach within the current\nservlet framework. It must suffice until servlet output\nstreams properly encode their output.\n\nhigh order byte must be zero','Line','java/javax/servlet/ServletOutputStream.java',66,72,'javax.servlet.ServletOutputStream','print(String)',NULL),(13742,'\nDifferent implementations of this method could\nwork rather differently.  For example, driving\nthis from a system property, or using a different\nimplementation than JavaSoft\'s.\n','Line','java/org/apache/tomcat/util/net/ServerSocketFactory.java',91,96,'org.apache.tomcat.util.net.ServerSocketFactory','getDefault()',NULL),(13743,'\nDifferent implementations of this method could\nwork rather differently. For example, driving\nthis from a system property, or using a different\nimplementation than JavaSoft\'s.\n','Line','java/org/apache/tomcat/util/net/ServerSocketFactory.java',86,91,'org.apache.tomcat.util.net.ServerSocketFactory','getDefault()','DESIGN'),(13744,'Workaround for the J2SE 1.4.x classloading problem (under Solaris).\nClass.forName(..) fails without creating class using new.\nThis is an ugly workaround.','Line','java/org/apache/tomcat/util/net/SSLImplementation.java',66,68,'org.apache.tomcat.util.net.SSLImplementation','getInstance(String)',NULL),(13745,'Workaround for the J2SE 1.4.x classloading problem (under\nSolaris).\nClass.forName(..) fails without creating class using new.\nThis is an ugly workaround.','Line','java/org/apache/tomcat/util/net/SSLImplementation.java',61,64,'org.apache.tomcat.util.net.SSLImplementation','getInstance(String)','DESIGN'),(13746,'The uploaded file is being stored on disk\nin a temporary location so move it to the\ndesired file.','Block','java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItem.java',428,432,'org.apache.tomcat.util.http.fileupload.disk.DiskFileItem','write(File)',NULL),(13747,'TODO: update method names','Line','java/org/apache/tomcat/util/bcel/classfile/Annotations.java',78,78,'org.apache.tomcat.util.bcel.classfile.Annotations','getAnnotationEntries()','NOT_DESIGN'),(13748,'None','None','java/org/apache/tomcat/util/bcel/classfile/Annotations.java',-1,-1,'None','None',NULL),(13749,'Bug 49779','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',41,41,'org.apache.catalina.authenticator.TestFormAuthenticator','testGet()',NULL),(13750,'TODO Throws NoClassDefFoundError for ExceptionUtils','Line','java/org/apache/catalina/startup/CatalinaProperties.java',102,102,'org.apache.catalina.startup.CatalinaProperties','loadProperties()','NOT_DESIGN'),(13751,'TODO isRuntimeVisible','Line','java/org/apache/tomcat/util/bcel/classfile/ParameterAnnotationEntry.java',47,47,'org.apache.tomcat.util.bcel.classfile.ParameterAnnotationEntry','None','NOT_DESIGN'),(13752,'None','None','java/org/apache/tomcat/util/bcel/classfile/ParameterAnnotationEntry.java',-1,-1,'None','None',NULL),(13753,'How many chars have been consumed\nduring parsing in signatureToString().\nRead by methodSignatureToString().\nSet by side effect,but only internally.\nThe `WIDE\' instruction is used in the\nbyte code to allow 16-bit wide indices\nfor local variables. This opcode\nprecedes an `ILOAD\', e.g.. The opcode\nimmediately following takes an extra\nbyte which is combined with the\nfollowing byte to form a\n16-bit value.','Block','java/org/apache/tomcat/util/bcel/classfile/Utility.java',48,61,'org.apache.tomcat.util.bcel.classfile.Utility','unwrap(ThreadLocal)','DESIGN'),(13754,'Guess what this does','Line','java/org/apache/tomcat/util/bcel/classfile/Utility.java',536,536,'org.apache.tomcat.util.bcel.classfile.Utility','unwrap(ThreadLocal)',NULL),(13755,'None','None','java/org/apache/catalina/startup/CatalinaProperties.java',-1,-1,'None','None',NULL),(13756,'FIXME pero -- Why container stop first? KeepAlive connections can send request!\nStop our defined Connectors first','Line','java/org/apache/catalina/core/StandardService.java',495,496,'org.apache.catalina.core.StandardService','stopInternal()','DESIGN'),(13757,'Now stop the connectors','Line','java/org/apache/catalina/core/StandardService.java',489,489,'org.apache.catalina.core.StandardService','stopInternal()',NULL),(13758,'TODO provide a hook to enable the SSL session to be\ninvalidated. Set AprEndpoint.SESSION_MGR req attr','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',631,632,'org.apache.coyote.http11.Http11AprProcessor','action(ActionCode, Object)',NULL),(13759,'TODO provide a hook to enable the SSL session to be\ninvalidated. Set AprEndpoint.SESSION_MGR req attr','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',545,546,'org.apache.coyote.http11.Http11AprProcessor','actionInternal(ActionCode, Object)',NULL),(13760,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',697,697,'org.apache.coyote.http11.Http11AprProcessor','action(ActionCode, Object)','NOT_DESIGN'),(13761,'no op','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',599,599,'org.apache.coyote.http11.Http11AprProcessor','actionInternal(ActionCode, Object)',NULL),(13762,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',611,611,'org.apache.coyote.http11.Http11AprProcessor','actionInternal(ActionCode, Object)',NULL),(13763,'TODO SERVLET3 - async - that is bit hacky -','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',700,700,'org.apache.coyote.http11.Http11AprProcessor','action(ActionCode, Object)',NULL),(13764,'TODO SERVLET3 - async - that is bit hacky -','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',601,601,'org.apache.coyote.http11.Http11AprProcessor','actionInternal(ActionCode, Object)',NULL),(13765,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',1106,1106,'org.apache.coyote.http11.Http11AprProcessor','prepareResponse()',NULL),(13766,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1020,1020,'org.apache.coyote.http11.AbstractHttp11Processor','prepareResponse()',NULL),(13767,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',748,748,'org.apache.coyote.http11.Http11NioProcessor','action(ActionCode, Object)','NOT_DESIGN'),(13768,'None','None','java/org/apache/coyote/http11/Http11NioProcessor.java',-1,-1,'None','None',NULL),(13769,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',657,657,'org.apache.coyote.http11.Http11NioProcessor','actionInternal(ActionCode, Object)','NOT_DESIGN'),(13770,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',1162,1162,'org.apache.coyote.http11.Http11NioProcessor','prepareResponse()',NULL),(13771,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11Processor.java',602,602,'org.apache.coyote.http11.Http11Processor','action(ActionCode, Object)','NOT_DESIGN'),(13772,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11Processor.java',514,514,'org.apache.coyote.http11.Http11Processor','actionInternal(ActionCode, Object)',NULL),(13773,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/Http11Processor.java',932,932,'org.apache.coyote.http11.Http11Processor','prepareResponse()','NOT_DESIGN'),(13774,'Should never, ever call this code','Line','java/org/apache/coyote/http11/Http11Processor.java',742,742,'org.apache.coyote.http11.Http11Processor','prepareSendfile(OutputFilter[])',NULL),(13775,'Do nothing\nTODO Remove this action','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',893,894,'org.apache.coyote.http11.AbstractHttp11Processor','action(ActionCode, Object)',NULL),(13776,'hack, somehow this is not being set above','Line','java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java',910,910,'org.apache.catalina.tribes.tipis.AbstractReplicatedMap','getStateMessageType()','NOT_DESIGN'),(13777,'None','None','java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java',-1,-1,'None','None',NULL),(13778,'TODO Consider hard-coding to s.setSoLinger(true,0)','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',605,605,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','DESIGN'),(13779,'TODO SERVLET3 - async - that is bit hacky -','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',602,602,'org.apache.coyote.http11.Http11AprProcessor','actionInternal(ActionCode, Object)','NOT_DESIGN'),(13780,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',612,612,'org.apache.coyote.http11.Http11AprProcessor','actionInternal(ActionCode, Object)','NOT_DESIGN'),(13781,'how does this propagate, or should it?\nTODO SERVLET3 - async','Line','java/org/apache/catalina/core/AsyncContextImpl.java',373,374,'org.apache.catalina.core.AsyncContextImpl','complete()','NOT_DESIGN'),(13782,'TODO SERVLET3 - async\nconfigure settings for timed out','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',269,270,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)','DESIGN'),(13783,'TODO SERVLET3 - async','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',291,291,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)','NOT_DESIGN'),(13784,'TODO SERVLET3 - async','Line','java/org/apache/coyote/http11/Http11Processor.java',500,500,'org.apache.coyote.http11.Http11Processor','actionInternal(ActionCode, Object)','NOT_DESIGN'),(13785,'keepalive connection\nTODO - servlet3 check async status, we may just be in a hold pattern','Line','java/org/apache/tomcat/util/net/JIoEndpoint.java',297,298,'org.apache.tomcat.util.net.JIoEndpoint','setAcceptorThreadCount(int)','DESIGN'),(13786,'Async has been processed. Whether or not to enter a long poll depends on\ncurrent state. For example, as per SRV.2.3.3.3 can now process calls to\ncomplete() or dispatch().','Block','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1199,1203,'org.apache.coyote.http11.AbstractHttp11Processor','setCompression(String)',NULL),(13787,'FIXME: need to do something reasonable here!!','Block','java/org/apache/jasper/runtime/JspFactoryImpl.java',115,115,'org.apache.jasper.runtime.JspFactoryImpl','getPageContext(Servlet, ServletRequest, ServletResponse, String, boolean, int, boolean)','DESIGN'),(13788,'None','None','java/org/apache/jasper/runtime/JspFactoryImpl.java',-1,-1,'None','None',NULL),(13789,'TODO SERVLET3 - async','Line','java/org/apache/coyote/ajp/AjpProcessor.java',661,661,'org.apache.coyote.ajp.AjpProcessor','action(ActionCode, Object)',NULL),(13790,'TODO SERVLET3 - async','Line','java/org/apache/coyote/ajp/AjpProcessor.java',402,402,'org.apache.coyote.ajp.AjpProcessor','actionInternal(ActionCode, Object)','NOT_DESIGN'),(13791,'SSL certificate extraction is lazy, moved to JkCoyoteHandler','Line','java/org/apache/coyote/ajp/AjpProcessor.java',864,864,'org.apache.coyote.ajp.AjpProcessor','prepareRequest()',NULL),(13792,'SSL certificate extraction is lazy, moved to JkCoyoteHandler','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',505,505,'org.apache.coyote.ajp.AbstractAjpProcessor','prepareRequest()',NULL),(13793,'SSL certificate extraction is lazy, moved to JkCoyoteHandler','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',863,863,'org.apache.coyote.ajp.AjpAprProcessor','prepareRequest()',NULL),(13794,'Do nothing\nTODO Remove this action','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',897,898,'org.apache.coyote.http11.AbstractHttp11Processor','getLog()',NULL),(13795,'Do nothing\nTODO Remove this action','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',903,904,'org.apache.coyote.http11.AbstractHttp11Processor','action(ActionCode, Object)',NULL),(13796,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1048,1048,'org.apache.coyote.http11.AbstractHttp11Processor','getLog()',NULL),(13797,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1054,1054,'org.apache.coyote.http11.AbstractHttp11Processor','prepareResponse()',NULL),(13798,'Async has been processed. Whether or not to enter a long poll depends on\ncurrent state. For example, as per SRV.2.3.3.3 can now process calls to\ncomplete() or dispatch().','Block','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1212,1216,'org.apache.coyote.http11.AbstractHttp11Processor','getLog()',NULL),(13799,'Async has been processed. Whether or not to enter a long poll depends on\ncurrent state. For example, as per SRV.2.3.3.3 can now process calls to\ncomplete() or dispatch().','Block','java/org/apache/coyote/AsyncStateMachine.java',136,140,'org.apache.coyote.AsyncStateMachine','isAsync()',NULL),(13800,'None','None','java/org/apache/coyote/ajp/AjpProcessor.java',-1,-1,'None','None',NULL),(13801,'FIXME: Support for this could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpAprProtocol.java',456,456,'org.apache.coyote.ajp.AjpAprProtocol','setAttribute(String, Object)','DESIGN'),(13802,'None','None','java/org/apache/coyote/ajp/AjpAprProtocol.java',-1,-1,'None','None',NULL),(13803,'FIXME','Line','java/org/apache/coyote/http11/filters/ChunkedInputFilter.java',365,365,'org.apache.coyote.http11.filters.ChunkedInputFilter','parseEndChunk()','NOT_DESIGN'),(13804,'Handle option trailer headers','Line','java/org/apache/coyote/http11/filters/ChunkedInputFilter.java',373,373,'org.apache.coyote.http11.filters.ChunkedInputFilter','parseEndChunk()',NULL),(13805,'Loop until we run out of headers','Line','java/org/apache/coyote/http11/filters/ChunkedInputFilter.java',375,375,'org.apache.coyote.http11.filters.ChunkedInputFilter','parseEndChunk()',NULL),(13806,'TODO If bug 49890 shows no signs of\nupdate after a suitable period of\ntime, remove the jvm bug code','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1101,1103,'org.apache.tomcat.util.net.NioEndpoint','offer(SocketProcessor)','DESIGN'),(13807,'If this \\\"servlet\\\" is really a JSP file, get the right class.\nHOLD YOUR NOSE - this is a kludge that avoids having to do special\ncase Catalina-specific code in Jasper - it also requires that the\nservlet path be replaced by the <jsp-file> element content in\norder to be completely effective','Line','java/org/apache/catalina/core/StandardWrapper.java',1049,1053,'org.apache.catalina.core.StandardWrapper','getAvailable()','DESIGN'),(13808,'Complain if no servlet class has been specified','Line','java/org/apache/catalina/core/StandardWrapper.java',1014,1014,'org.apache.catalina.core.StandardWrapper','getAvailable()',NULL),(13809,'XXX Use host in name','Line','java/org/apache/catalina/core/StandardContext.java',1783,1783,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()','DESIGN'),(13810,'FIXME: why isn\'t this just equalsIgnoreCase?','Line','java/org/apache/catalina/servlets/WebdavServlet.java',369,369,'org.apache.catalina.servlets.WebdavServlet','init()','DESIGN'),(13811,'FIXME: Externalize this','Line','java/org/apache/tomcat/util/http/mapper/Mapper.java',1487,1487,'org.apache.tomcat.util.http.mapper.Mapper','None','NOT_DESIGN'),(13812,'None','None','java/org/apache/tomcat/util/http/mapper/Mapper.java',-1,-1,'None','None',NULL),(13813,'Takes ~1s on markt\'s laptop. If this takes more than 3s something\nprobably needs looking at. If this fails repeatedly then we may need\nto increase this limit.','Line','test/org/apache/tomcat/util/http/mapper/TestMapper.java',142,144,'org.apache.tomcat.util.http.mapper.TestMapper','testPerformance()',NULL),(13814,'FIXME: Support for this could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpAprProtocol.java',402,402,'org.apache.coyote.ajp.AjpAprProtocol','setAttribute(String, Object)',NULL),(13815,'FIXME: Support for this could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpAprProtocol.java',195,195,'org.apache.coyote.ajp.AjpAprProtocol','event(SocketWrapper<Long>, SocketStatus)',NULL),(13816,'TODO spec 13.4.2 appears to say only the\nconflicting pattern is overwritten, not the\nentire security constraint.','Line','java/org/apache/catalina/core/StandardContext.java',5227,5229,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13817,'TODO spec 13.4.2 appears to say that non-conflicting patterns are\nstill used.\nTODO you can\'t calculate the eventual security constraint now,\nyou have to wait until the context is started, since application\ncode can add url patterns after calling setSecurity.','Line','java/org/apache/catalina/core/StandardContext.java',5241,5245,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13818,'bad: shouldn\'t mask an exception the following way:','Line','java/org/apache/tomcat/util/res/StringManager.java',121,121,'org.apache.tomcat.util.res.StringManager','None',NULL),(13819,'bad: shouldn\'t mask an exception the following way:\nstr = \\\"[cannot find message associated with key \'\\\" + key +','Line','java/org/apache/tomcat/util/res/StringManager.java',121,122,'org.apache.tomcat.util.res.StringManager','None',NULL),(13820,'TODO: Refactor using the proxy field','Line','java/org/apache/naming/resources/ProxyDirContext.java',114,114,'org.apache.naming.resources.ProxyDirContext','None','DESIGN'),(13821,'None','None','java/org/apache/naming/resources/ProxyDirContext.java',-1,-1,'None','None',NULL),(13822,'Normal request processing\nFIXME: This could be an addition to the core API too','Line','java/org/apache/catalina/core/StandardContextValve.java',201,202,'org.apache.catalina.core.StandardContextValve','event(Request, Response, CometEvent)','DESIGN'),(13823,'Normal request processing\nFIXME: Firing request listeners could be an addition to the core\ncomet API','Line','java/org/apache/catalina/core/StandardContextValve.java',195,197,'org.apache.catalina.core.StandardContextValve','event(Request, Response, CometEvent)',NULL),(13824,'}','Line','java/org/apache/catalina/core/StandardContextValve.java',202,202,'org.apache.catalina.core.StandardContextValve','event(Request, Response, CometEvent)',NULL),(13825,'TODO Remove this method entirely','Line','java/org/apache/catalina/core/StandardContext.java',1214,1214,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13826,'TODO Remove this method entirely','Line','java/org/apache/catalina/core/StandardContext.java',1256,1256,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13827,'FIXME - add instance if already started?','Line','java/org/apache/catalina/core/StandardContext.java',2479,2479,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13828,'FIXME - add instance if already started?','Line','java/org/apache/catalina/core/StandardContext.java',2521,2521,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13829,'FIXME: Older spec revisions may still check this','Line','java/org/apache/catalina/core/StandardContext.java',2709,2709,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13830,'FIXME: Older spec revisions may still check this','Line','java/org/apache/catalina/core/StandardContext.java',2751,2751,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13831,'FIXME - behavior if already started?','Line','java/org/apache/catalina/core/StandardContext.java',3661,3661,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13832,'FIXME - behavior if already started?','Line','java/org/apache/catalina/core/StandardContext.java',3704,3704,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13833,'TODO: Log error','Line','java/org/apache/catalina/core/StandardContext.java',4942,4942,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13834,'TODO: Log error','Line','java/org/apache/catalina/core/StandardContext.java',4985,4985,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13835,'TODO spec 13.4.2 appears to say only the\nconflicting pattern is overwritten, not the\nentire security constraint.','Line','java/org/apache/catalina/core/StandardContext.java',5367,5369,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13836,'TODO spec 13.4.2 appears to say only the\nconflicting pattern is overwritten, not the\nentire security constraint.','Line','java/org/apache/catalina/core/StandardContext.java',5410,5412,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13837,'TODO spec 13.4.2 appears to say that non-conflicting patterns are\nstill used.\nTODO you can\'t calculate the eventual security constraint now,\nyou have to wait until the context is started, since application\ncode can add url patterns after calling setSecurity.','Line','java/org/apache/catalina/core/StandardContext.java',5381,5385,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13838,'TODO spec 13.4.2 appears to say that non-conflicting patterns are\nstill used.\nTODO you can\'t calculate the eventual security constraint now,\nyou have to wait until the context is started, since application\ncode can add url patterns after calling setSecurity.','Line','java/org/apache/catalina/core/StandardContext.java',5424,5428,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13839,'FIXME: i18n','Line','java/org/apache/catalina/core/StandardContext.java',5979,5979,'org.apache.catalina.core.StandardContext','getEffectiveMajorVersion()',NULL),(13840,'FIXME: i18n','Line','java/org/apache/catalina/core/StandardContext.java',6022,6022,'org.apache.catalina.core.StandardContext','getResourceOnlyServlets()',NULL),(13841,'FIXME','Line','java/org/apache/catalina/mbeans/MBeanUtils.java',501,501,'org.apache.catalina.mbeans.MBeanUtils','createManagedName(Object)','NOT_DESIGN'),(13842,'None','None','java/org/apache/catalina/mbeans/MBeanUtils.java',-1,-1,'None','None',NULL),(13843,'TODO - This is never executed. Bug or code to delete?','Line','java/org/apache/catalina/startup/ContextConfig.java',787,787,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13844,'Several components end up calling:\nsun.misc.GC.requestLatency(long)\n\nThose libraries / components known to trigger memory leaks due to\neventual calls to requestLatency(long) are:\n- javax.management.remote.rmi.RMIConnectorServer.start()','Block','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',173,180,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)','DESIGN'),(13845,'Initialise these classes when Tomcat starts','Line','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',152,152,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(13846,'Use the system classloader as the victim for all this\nClassLoader pinning we\'re about to do.','Line','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',159,160,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(13847,'Several components end up calling:\nsun.awt.AppContext.getAppContext()\n\nThose libraries / components known to trigger memory leaks\ndue to eventual calls to getAppContext() are:\n- Google Web Toolkit via its use of javax.imageio\n- Tomcat via its use of java.beans.Introspector.flushCaches()\nin 1.6.0_15 onwards\n- others TBD','Block','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',164,174,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(13848,'Trigger a call to sun.awt.AppContext.getAppContext(). This\nwill pin the system class loader in memory but that shouldn\'t\nbe an issue.','Line','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',176,178,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(13849,'Several components end up calling:\nsun.misc.GC.requestLatency(long)\n\nThose libraries / components known to trigger memory leaks\ndue to eventual calls to requestLatency(long) are:\n- javax.management.remote.rmi.RMIConnectorServer.start()','Block','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',183,190,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(13850,'None','None','java/org/apache/catalina/servlets/WebdavServlet.java',-1,-1,'None','None',NULL),(13851,'Shouldn\'t happen, but let\'s play nice...','Line','java/org/apache/catalina/manager/HTMLManagerServlet.java',1049,1049,'org.apache.catalina.manager.HTMLManagerServlet','doGet(HttpServletRequest, HttpServletResponse)','NOT_DESIGN'),(13852,'Very careful not to overflow - probably not necessary','Line','java/org/apache/catalina/session/ManagerBase.java',1380,1380,'org.apache.catalina.session.ManagerBase','run()',NULL),(13853,'Better than reporting zero','Line','java/org/apache/catalina/session/ManagerBase.java',1468,1468,'org.apache.catalina.session.ManagerBase','run()',NULL),(13854,'as a hack, you can use a static file - and generate the same\nsession ids ( good for strange debugging )','Line','java/org/apache/catalina/session/ManagerBase.java',423,424,'org.apache.catalina.session.ManagerBase','run()','NOT_DESIGN'),(13855,'TODO JMX Registration?','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',448,448,'org.apache.tomcat.util.net.AbstractEndpoint','getSocketProperties()','DESIGN'),(13856,'ThreadPoolExecutor.setCorePoolSize checks that\nremainingCapacity==0 to allow to interrupt idle threads\nI don\'t see why, but this hack allows to conform to this\n\\\"requirement\\\"','Line','java/org/apache/tomcat/util/threads/TaskQueue.java',108,111,'org.apache.tomcat.util.threads.TaskQueue','remainingCapacity()',NULL),(13857,'note by slaurent : quite oddly threadPoolExecutor.setCorePoolSize\nchecks that queue.remainingCapacity()==0. I did not understand\nwhy, but to get the intended effect of waking up idle threads, I\ntemporarily fake this condition.','Line','java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java',202,205,'org.apache.tomcat.util.threads.ThreadPoolExecutor','contextStopping()',NULL),(13858,'TODO Keep current state and check for invalid transitions','Line','java/org/apache/coyote/AbstractProtocolHandler.java',340,340,'org.apache.coyote.AbstractProtocolHandler','init()','NOT_DESIGN'),(13859,'NOTE: There is no maintenance of state or checking for valid transitions\nwithin this class. It is expected that the connector will maintain state\nand prevent invalid state transitions.','Block','java/org/apache/coyote/AbstractProtocolHandler.java',340,344,'org.apache.coyote.AbstractProtocolHandler','init()',NULL),(13860,'None','None','java/org/apache/tomcat/util/net/ServerSocketFactory.java',-1,-1,'None','None',NULL),(13861,'Yes, isSpace() is deprecated but it does exactly what we need','Line','java/org/apache/coyote/Response.java',470,470,'org.apache.coyote.Response','setContentType(String)',NULL),(13862,'Going to have have some casts /raw types somewhere so doing it here\nkeeps them all in one place. There might be a neater / better solution','Line','java/org/apache/el/lang/ELSupport.java',164,165,'org.apache.el.lang.ELSupport','coerceToEnum(Object, Class)',NULL),(13863,'Going to have to have some casts /raw types somewhere so doing it here\nkeeps them all in one place. There might be a neater / better solution\nbut I couldn\'t find it','Line','java/org/apache/el/lang/ELSupport.java',164,166,'org.apache.el.lang.ELSupport','coerceToEnum(Object, Class)',NULL),(13864,'Shouldn\'t be necessary but acts as a check that sub-classes are doing\nwhat they are supposed to.','Line','java/org/apache/catalina/util/LifecycleBase.java',224,225,'org.apache.catalina.util.LifecycleBase','stop()',NULL),(13865,'Shouldn\'t be necessary but acts as a check that sub-classes are\ndoing what they are supposed to.','Line','java/org/apache/catalina/util/LifecycleBase.java',234,235,'org.apache.catalina.util.LifecycleBase','stop()',NULL),(13866,'Bug 49000','Line','test/org/apache/tomcat/util/http/TestCookies.java',104,104,'org.apache.tomcat.util.http.TestCookies','testNameOnlyCookies()',NULL),(13867,'Ignore - the client has probably closed the connection','Line','java/org/apache/catalina/connector/Response.java',329,329,'org.apache.catalina.connector.Response','getConnector()',NULL),(13868,'Takes ~1s on markt\'s laptop. If this takes more than 3s something\nprobably needs looking at. If this fails repeatedly then we may need\nto increase this limit.','Line','test/org/apache/tomcat/util/http/mapper/TestMapper.java',150,152,'org.apache.tomcat.util.http.mapper.TestMapper','testPerformance()',NULL),(13869,'Takes ~1s on markt\'s laptop. If this takes more than 4s something\nprobably needs looking at. If this fails repeatedly then we may need\nto increase this limit.','Line','test/org/apache/tomcat/util/http/mapper/TestMapper.java',150,152,'org.apache.tomcat.util.http.mapper.TestMapper','testPerformance()',NULL),(13870,'FIXME: The following currently fails','Line','test/org/apache/catalina/servlets/TestDefaultServlet.java',223,223,'org.apache.catalina.servlets.TestDefaultServlet','testCustomErrorPage()','NOT_DESIGN'),(13871,'None','None','test/org/apache/catalina/servlets/TestDefaultServlet.java',-1,-1,'None','None',NULL),(13872,'Make sure regular multipart works properly\nsend multipart request','Line','test/org/apache/catalina/connector/TestRequest.java',547,548,'org.apache.catalina.connector.TestRequest','testBug37794()',NULL),(13873,'Make sure regular multipart works properly\nsend multipart request','Line','test/org/apache/catalina/core/TestStandardContext.java',341,342,'org.apache.catalina.core.TestStandardContext','testBug46243()',NULL),(13874,'FIXME','Line','java/org/apache/catalina/ha/ClusterDeployer.java',54,54,'org.apache.catalina.ha.ClusterDeployer','install(String, URL)','NOT_DESIGN'),(13875,'None','None','java/org/apache/catalina/ha/ClusterDeployer.java',-1,-1,'None','None',NULL),(13876,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/catalina/startup/TestTomcatSSL.java',148,148,'org.apache.catalina.startup.TestTomcatSSL','testRenegotiateFail()',NULL),(13877,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/tomcat/util/net/TestSsl.java',150,150,'org.apache.tomcat.util.net.TestSsl','testRenegotiateFail()',NULL),(13878,'Hack for testing with Jira','Line','java/org/apache/catalina/valves/CrawlerSessionManagerValve.java',154,154,'org.apache.catalina.valves.CrawlerSessionManagerValve','setCrawlerUserAgents(String)',NULL),(13879,'Set this before we register currently known naming resources to avoid\ntiming issues. Duplication registration is not an issue.','Line','java/org/apache/catalina/deploy/NamingResources.java',910,911,'org.apache.catalina.deploy.NamingResources','initInternal()',NULL),(13880,'Set this before we de-register currently known naming resources to\navoid timing issues. Duplication de-registration is not an issue.','Line','java/org/apache/catalina/deploy/NamingResources.java',960,961,'org.apache.catalina.deploy.NamingResources','destroyInternal()',NULL),(13881,'FIXME - Warp object hierarchy not currently supported','Line','java/org/apache/catalina/mbeans/ServerLifecycleListener.java',557,557,'org.apache.catalina.mbeans.ServerLifecycleListener','createMBeans(Server)',NULL),(13882,'FIXME - Add other resource types when supported by admin tool','Line','java/org/apache/catalina/mbeans/ServerLifecycleListener.java',1093,1093,'org.apache.catalina.mbeans.ServerLifecycleListener','processNamingResourcesPropertyChange(NamingResources, String, Object, Object)',NULL),(13883,'The request should have been completely read by the time the response\nis closed. Further reads of the input a) are pointless and b) really\nconfuse AJP (bug 50189) so close the input buffer to prevent them.','Line','java/org/apache/catalina/connector/OutputBuffer.java',278,280,'org.apache.catalina.connector.OutputBuffer','close()',NULL),(13884,'Probably running on Windows so no umask','Line','java/org/apache/catalina/security/SecurityListener.java',174,174,'org.apache.catalina.security.SecurityListener','checkUmask()',NULL),(13885,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/tomcat/util/net/TestSsl.java',115,115,'org.apache.tomcat.util.net.TestSsl','testRenegotiateFail()',NULL),(13886,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/tomcat/util/net/TestSsl.java',114,114,'org.apache.tomcat.util.net.TestSsl','testSimpleSsl()',NULL),(13887,'5 sec should be enough - in NIO we\'ll timeout','Line','test/org/apache/tomcat/util/net/TestSsl.java',103,103,'org.apache.tomcat.util.net.TestSsl','testRenegotiateFail()','NOT_DESIGN'),(13888,'None','None','test/org/apache/tomcat/util/net/TestSsl.java',-1,-1,'None','None',NULL),(13889,'FIXME','Line','java/org/apache/naming/resources/ProxyDirContext.java',85,85,'org.apache.naming.resources.ProxyDirContext','None','NOT_DESIGN'),(13890,'FIXME','Line','java/org/apache/naming/NamingService.java',202,202,'org.apache.naming.NamingService','stop()',NULL),(13891,'The reader and input stream don\'t need to be closed\nTODO: Is this ever called?\nIf so, move input swallow disabling from\nResponse.finishResponse() to here','Line','java/org/apache/catalina/connector/Request.java',802,805,'org.apache.catalina.connector.Request','finishRequest()',NULL),(13892,'Optionally disable swallowing of additional request data.\nTODO: Should be in Request.finishRequest(), but that method\nseems to get called never.','Line','java/org/apache/catalina/connector/Response.java',501,503,'org.apache.catalina.connector.Response','finishResponse()','DESIGN'),(13893,'TODO: Do not swallow request input but\nmake sure we are closing the connection','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',270,271,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(13894,'The reader and input stream don\'t need to be closed\nTODO: Is this ever called?\nIf so, move input swallow disabling from\nResponse.finishResponse() to here','Line','java/org/apache/catalina/connector/Request.java',795,798,'org.apache.catalina.connector.Request','finishRequest()','DESIGN'),(13895,'Optionally disable swallowing of additional request data.','Line','java/org/apache/catalina/connector/Request.java',795,795,'org.apache.catalina.connector.Request','finishRequest()',NULL),(13896,'Writing leftover bytes','Line','java/org/apache/catalina/connector/Response.java',500,500,'org.apache.catalina.connector.Response','finishResponse()',NULL),(13897,'TODO add a message','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',141,141,'org.apache.catalina.authenticator.SpnegoAuthenticator','getAuthMethod()','NOT_DESIGN'),(13898,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',203,203,'org.apache.catalina.authenticator.SpnegoAuthenticator','getAuthMethod()','NOT_DESIGN'),(13899,'Assume the GSSContext is stateless\nTODO: Confirm this assumption','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',247,248,'org.apache.catalina.authenticator.SpnegoAuthenticator','getAuthMethod()',NULL),(13900,'TODO This (and a lot of the surrounding code) needs to move\nto RealmBase so authorisation will work. This is just a quick\nhack to get authentication working.','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',268,270,'org.apache.catalina.authenticator.SpnegoAuthenticator','getAuthMethod()','DESIGN'),(13901,'Send response token on success and failure','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',271,271,'org.apache.catalina.authenticator.SpnegoAuthenticator','getAuthMethod()',NULL),(13902,'None','None','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',-1,-1,'None','None',NULL),(13903,'===============================================================================\nJMX Operations - Register the actual pool itself under the tomcat.jdbc domain\n===============================================================================','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSource.java',57,59,'org.apache.tomcat.jdbc.pool.DataSource','None',NULL),(13904,'do nothing, might be a future unsupported method\nso we better bail out and let the system continue','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/AbstractQueryReport.java',188,189,'org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport','prepareStatement(String, long)',NULL),(13905,'do nothing, might be a future unsupported method\nso we better bail out and let the system continue','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/AbstractQueryReport.java',188,189,'org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport','prepareStatement(String, long)',NULL),(13906,'if we are calling anything else, bail out','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/AbstractQueryReport.java',224,224,'org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport','invoke(Object, Method, Object[])',NULL),(13907,'if we are calling anything else, bail out','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/AbstractQueryReport.java',224,224,'org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport','invoke(Object, Method, Object[])',NULL),(13908,'create the map to hold our stats\nhowever TODO we need to improve the eviction\nselection','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java',131,133,'org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport','QueryStats> getPoolStats(String)',NULL),(13909,'create the map to hold our stats\nhowever TODO we need to improve the eviction\nselection','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java',131,133,'org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport','QueryStats> getPoolStats(String)',NULL),(13910,'TODO lookup JNDI name','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java',170,170,'org.apache.tomcat.jdbc.pool.PooledConnection','connect()',NULL),(13911,'TODO lookup JNDI name','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java',170,170,'org.apache.tomcat.jdbc.pool.PooledConnection','connect()',NULL),(13912,'create the proxy\nTODO possible optimization, keep track if this connection was returned properly, and don\'t generate a new facade','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',308,309,'org.apache.tomcat.jdbc.pool.ConnectionPool','getConnectionAsync()',NULL),(13913,'create the proxy\nTODO possible optimization, keep track if this connection was returned properly, and don\'t generate a new facade','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',308,309,'org.apache.tomcat.jdbc.pool.ConnectionPool','getConnectionAsync()',NULL),(13914,'clear the flag, and bail out','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',612,612,'org.apache.tomcat.jdbc.pool.ConnectionPool','getConnectionAsync()',NULL),(13915,'clear the flag, and bail out','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',612,612,'org.apache.tomcat.jdbc.pool.ConnectionPool','getConnectionAsync()',NULL),(13916,'if we reach here, another thread is configuring the actual connection\nthis shouldn\'t block for long','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',1109,1110,'org.apache.tomcat.jdbc.pool.ConnectionPool','getConnectionAsync()',NULL),(13917,'if we reach here, another thread is configuring the actual connection\nthis shouldn\'t block for long','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',1109,1110,'org.apache.tomcat.jdbc.pool.ConnectionPool','getConnectionAsync()',NULL),(13918,'Ok, no setXXX found, try a setProperty(\\\"name\\\", \\\"value\\\")','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/naming/GenericNamingResourcesFactory.java',167,167,'org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory','setProperty(Object, String, String, boolean)',NULL),(13919,'do nothing, might be a future unsupported method\nso we better bail out and let the system continue','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/StatementDecoratorInterceptor.java',111,112,'org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor','closeInvoked()',NULL),(13920,'do nothing, might be a future unsupported method\nso we better bail out and let the system continue','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementDecoratorInterceptor.java',111,112,'org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor','closeInvoked()',NULL),(13921,'if we are calling anything else, bail out','Line','modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/StatementDecoratorInterceptor.java',213,213,'org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor','closeInvoked()',NULL),(13922,'if we are calling anything else, bail out','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementDecoratorInterceptor.java',213,213,'org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor','closeInvoked()',NULL),(13923,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',180,180,'org.apache.catalina.authenticator.SpnegoAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(13924,'Assume the GSSContext is stateless\nTODO: Confirm this assumption','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',210,211,'org.apache.catalina.authenticator.SpnegoAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(13925,'TODO Remove this method entirely','Line','java/org/apache/catalina/core/StandardContext.java',1389,1389,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13926,'TODO Remove this method entirely','Line','java/org/apache/catalina/core/StandardContext.java',1403,1403,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13927,'FIXME - add instance if already started?','Line','java/org/apache/catalina/core/StandardContext.java',2693,2693,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13928,'FIXME - add instance if already started?','Line','java/org/apache/catalina/core/StandardContext.java',2707,2707,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13929,'FIXME: Older spec revisions may still check this','Line','java/org/apache/catalina/core/StandardContext.java',2922,2922,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13930,'FIXME: Older spec revisions may still check this','Line','java/org/apache/catalina/core/StandardContext.java',2936,2936,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13931,'FIXME - behavior if already started?','Line','java/org/apache/catalina/core/StandardContext.java',3869,3869,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13932,'FIXME - behavior if already started?','Line','java/org/apache/catalina/core/StandardContext.java',3883,3883,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13933,'TODO: Log error','Line','java/org/apache/catalina/core/StandardContext.java',5173,5173,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13934,'TODO: Log error','Line','java/org/apache/catalina/core/StandardContext.java',5187,5187,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13935,'TODO spec 13.4.2 appears to say only the\nconflicting pattern is overwritten, not the\nentire security constraint.','Line','java/org/apache/catalina/core/StandardContext.java',5681,5683,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13936,'TODO spec 13.4.2 appears to say only the\nconflicting pattern is overwritten, not the\nentire security constraint.','Line','java/org/apache/catalina/core/StandardContext.java',5695,5697,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13937,'TODO spec 13.4.2 appears to say that non-conflicting patterns are\nstill used.\nTODO you can\'t calculate the eventual security constraint now,\nyou have to wait until the context is started, since application\ncode can add url patterns after calling setSecurity.','Line','java/org/apache/catalina/core/StandardContext.java',5695,5699,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13938,'TODO spec 13.4.2 appears to say that non-conflicting patterns are\nstill used.\nTODO you can\'t calculate the eventual security constraint now,\nyou have to wait until the context is started, since application\ncode can add url patterns after calling setSecurity.','Line','java/org/apache/catalina/core/StandardContext.java',5709,5713,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13939,'FIXME: i18n','Line','java/org/apache/catalina/core/StandardContext.java',6227,6227,'org.apache.catalina.core.StandardContext','setFireRequestListenersOnForwards(boolean)',NULL),(13940,'FIXME: i18n','Line','java/org/apache/catalina/core/StandardContext.java',6241,6241,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13941,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/DigestAuthenticator.java',225,225,'org.apache.catalina.authenticator.DigestAuthenticator','findPrincipal(Request, String, Realm)','NOT_DESIGN'),(13942,'None','None','java/org/apache/catalina/authenticator/DigestAuthenticator.java',-1,-1,'None','None',NULL),(13943,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/DigestAuthenticator.java',312,312,'org.apache.catalina.authenticator.DigestAuthenticator','getInfo()',NULL),(13944,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/DigestAuthenticator.java',305,305,'org.apache.catalina.authenticator.DigestAuthenticator','parseUsername(String)',NULL),(13945,'we do it in a dedicated thread for memory leak protection, in\ncase some webapp code registers some ThreadLocals that they\nforget to cleanup\nTODO Figure out why DedicatedThreadExecutor hangs randomly in the\nunit tests if used here','Line','java/org/apache/catalina/core/StandardContext.java',5414,5418,'org.apache.catalina.core.StandardContext','getPreemptiveAuthentication()',NULL),(13946,'hack keep alive behavior','Line','java/org/apache/coyote/http11/Http11Processor.java',318,318,'org.apache.coyote.http11.Http11Processor','process(SocketWrapper<Socket>)','DESIGN'),(13947,'If we don\'t have a pipe-lined request allow this thread to be\nused by another connection','Line','java/org/apache/coyote/http11/Http11Processor.java',318,319,'org.apache.coyote.http11.Http11Processor','process(SocketWrapper<Socket>)',NULL),(13948,'FIXME: setId trigger session Listener, but only chance to register manager with correct id!','Line','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',362,362,'org.apache.catalina.ha.session.JvmRouteBinderValve','changeSessionID(Request, String, String, Session)','NOT_DESIGN'),(13949,'None','None','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',-1,-1,'None','None',NULL),(13950,'TODO - calculate timeout based on length in queue (System.currentTimeMills() - wrapper.getLastAccess() is the time in queue)','Line','java/org/apache/coyote/http11/Http11Processor.java',187,187,'org.apache.coyote.http11.Http11Processor','process(SocketWrapper<Socket>)','DESIGN'),(13951,'FIXME: Support for this could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpNioProtocol.java',215,215,'org.apache.coyote.ajp.AjpNioProtocol','event(NioChannel, SocketStatus)',NULL),(13952,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpNioProcessor.java',625,626,'org.apache.coyote.ajp.AjpNioProcessor','readMessage(AjpMessage)',NULL),(13953,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpNioProcessor.java',687,688,'org.apache.coyote.ajp.AjpNioProcessor','doWrite(ByteChunk, Response)',NULL),(13954,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpNioProcessor.java',624,625,'org.apache.coyote.ajp.AjpNioProcessor','readMessage(AjpMessage)','NOT_DESIGN'),(13955,'Invalid AJP header signature','Line','java/org/apache/coyote/ajp/AjpNioProcessor.java',635,635,'org.apache.coyote.ajp.AjpNioProcessor','readMessage(AjpMessage, boolean)',NULL),(13956,'FIXME: Support for this could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpNioProtocol.java',216,216,'org.apache.coyote.ajp.AjpNioProtocol','event(NioChannel, SocketStatus)',NULL),(13957,'FIXME: Support for Comet could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpNioProtocol.java',215,215,'org.apache.coyote.ajp.AjpNioProtocol','event(NioChannel, SocketStatus)',NULL),(13958,'FIXME: Disabled for Mozilla FORM support over SSL\n(improper caching issue)\n!request.isSecure() &&','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',469,471,'org.apache.catalina.authenticator.AuthenticatorBase','invoke(Request, Response)','NOT_DESIGN'),(13959,'Make sure that constrained resources are not cached by web proxies\nor browsers as caching can provide a security hole','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',466,467,'org.apache.catalina.authenticator.AuthenticatorBase','invoke(Request, Response)',NULL),(13960,'FIXME: These cause problems with downloading office docs\nfrom IE under SSL and may not be needed for newer Mozilla\nclients.','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',474,476,'org.apache.catalina.authenticator.AuthenticatorBase','invoke(Request, Response)','DESIGN'),(13961,'Note: These can cause problems with downloading files with IE','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',472,472,'org.apache.catalina.authenticator.AuthenticatorBase','invoke(Request, Response)',NULL),(13962,'Not entirely thread-safe but a few duplicate log messages are\nnot a huge issue','Line','java/org/apache/jasper/compiler/TldLocationsCache.java',449,450,'org.apache.jasper.compiler.TldLocationsCache','tldScanJar(JarURLConnection)',NULL),(13963,'TODO: Async requests may trigger multiple replication requests. How,\nif at all, should the stats handle this?','Line','java/org/apache/catalina/ha/tcp/ReplicationValve.java',564,565,'org.apache.catalina.ha.tcp.ReplicationValve','updateStats(long, long)',NULL),(13964,'TODO - is this async aware','Line','java/org/apache/catalina/valves/SemaphoreValve.java',44,44,'org.apache.catalina.valves.SemaphoreValve','None','NOT_DESIGN'),(13965,'None','None','java/org/apache/catalina/valves/SemaphoreValve.java',-1,-1,'None','None',NULL),(13966,'Set to distributable else every app will be prevented from being\ndistributable when the default fragment is merged with the main\nweb.xml','Line','java/org/apache/catalina/startup/ContextConfig.java',1198,1200,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(13967,'TODO Better to add a new state to the AsyncStateMachine and\nremove ASYNC_END entirely','Line','java/org/apache/coyote/http11/Http11Protocol.java',169,170,'org.apache.coyote.http11.Http11Protocol','process(SocketWrapper<Socket>, SocketStatus)','DESIGN'),(13968,'TODO Better to add a new state to the AsyncStateMachine and\nremove ASYNC_END entirely','Line','java/org/apache/coyote/ajp/AjpProtocol.java',150,151,'org.apache.coyote.ajp.AjpProtocol','process(SocketWrapper<Socket>, SocketStatus)','DESIGN'),(13969,'FIXME: Support for Comet could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpNioProtocol.java',168,168,'org.apache.coyote.ajp.AjpNioProtocol','event(NioChannel, SocketStatus)','NOT_DESIGN'),(13970,'None','None','java/org/apache/coyote/ajp/AjpNioProtocol.java',-1,-1,'None','None',NULL),(13971,'FIXME: Support for this could be added in AJP as well','Line','java/org/apache/coyote/ajp/AjpAprProtocol.java',132,132,'org.apache.coyote.ajp.AjpAprProtocol','event(SocketWrapper<Long>, SocketStatus)','DESIGN'),(13972,'If there\'s no content length\n(broken HTTP/1.0 or HTTP/1.1), assume\nthe client is not broken and didn\'t send a body','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',795,797,'org.apache.coyote.http11.Http11AprProcessor','prepareRequest()','DESIGN'),(13973,'------------------------------------------------------ Protected Methods','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',624,624,'org.apache.coyote.http11.Http11AprProcessor','prepareSendfile(OutputFilter[])',NULL),(13974,'If there\'s no content length\n(broken HTTP/1.0 or HTTP/1.1), assume\nthe client is not broken and didn\'t send a body','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',851,853,'org.apache.coyote.http11.Http11NioProcessor','prepareRequest()','DESIGN'),(13975,'------------------------------------------------------ Protected Methods','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',669,669,'org.apache.coyote.http11.Http11NioProcessor','prepareSendfile(OutputFilter[])',NULL),(13976,'If there\'s no content length\n(broken HTTP/1.0 or HTTP/1.1), assume\nthe client is not broken and didn\'t send a body','Line','java/org/apache/coyote/http11/Http11Processor.java',765,767,'org.apache.coyote.http11.Http11Processor','prepareRequest()','DESIGN'),(13977,'------------------------------------------------------ Protected Methods','Line','java/org/apache/coyote/http11/Http11Processor.java',578,578,'org.apache.coyote.http11.Http11Processor','prepareSendfile(OutputFilter[])',NULL),(13978,'If there\'s no content length\n(broken HTTP/1.0 or HTTP/1.1), assume\nthe client is not broken and didn\'t send a body','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',946,948,'org.apache.coyote.http11.AbstractHttp11Processor','prepareRequest()',NULL),(13979,'Well we cleaned the pool in terminate.\nWell we cleaned the pool in terminate.','Line','java/org/apache/catalina/core/AprLifecycleListener.java',139,140,'org.apache.catalina.core.AprLifecycleListener','terminateAPR()',NULL),(13980,'TODO','Line','test/org/apache/catalina/tribes/test/io/TestSerialization.java',30,30,'org.apache.catalina.tribes.test.io.TestSerialization','testEmptyArray()',NULL),(13981,'TODO','Line','test/org/apache/catalina/tribes/io/TestXByteBuffer.java',28,28,'org.apache.catalina.tribes.io.TestXByteBuffer','testEmptyArray()',NULL),(13982,'TODO','Line','test/org/apache/catalina/tribes/io/TestXByteBuffer.java',24,24,'org.apache.catalina.tribes.io.TestXByteBuffer','testEmptyArray()','NOT_DESIGN'),(13983,'None','None','test/org/apache/catalina/tribes/io/TestXByteBuffer.java',-1,-1,'None','None',NULL),(13984,'None','None','java/org/apache/coyote/ajp/AjpProtocol.java',-1,-1,'None','None',NULL),(13985,'TODO Add a new state to the AsyncStateMachine and remove\nASYNC_END (if possible)','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',55,56,'org.apache.tomcat.util.net.AbstractEndpoint','None',NULL),(13986,'In the middle of processing a request/response. Keep the\nsocket associated with the processor. Exact requirements\ndepend on type of long poll','Line','java/org/apache/coyote/http11/Http11AprProtocol.java',267,269,'org.apache.coyote.http11.Http11AprProtocol','process(SocketWrapper<Long>, SocketStatus)','NOT_DESIGN'),(13987,'In the middle of processing a request/response. Keep the\nsocket associated with the processor. Exact requirements\ndepend on type of long poll','Line','java/org/apache/coyote/http11/Http11Protocol.java',187,189,'org.apache.coyote.http11.Http11Protocol','process(SocketWrapper<Socket>, SocketStatus)',NULL),(13988,'In the middle of processing a request/response. Keep the\nsocket associated with the processor. Exact requirements\ndepend on type of long poll','Line','java/org/apache/coyote/http11/Http11NioProtocol.java',282,284,'org.apache.coyote.http11.Http11NioProtocol','process(SocketWrapper<NioChannel>, SocketStatus)',NULL),(13989,'NOOP for APR','Line','java/org/apache/coyote/http11/Http11AprProtocol.java',227,227,'org.apache.coyote.http11.Http11AprProtocol','initSsl(SocketWrapper<Long>, Http11AprProcessor)',NULL),(13990,'In the middle of processing a request/response. Keep the\nsocket associated with the processor. Exact requirements\ndepend on type of long poll','Line','java/org/apache/coyote/http11/AbstractHttp11Protocol.java',238,240,'org.apache.coyote.http11.AbstractHttp11Protocol','process(SocketWrapper<S>, SocketStatus)',NULL),(13991,'In the middle of processing a request/response. Keep the\nsocket associated with the processor. Exact requirements\ndepend on type of long poll','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',125,127,'org.apache.coyote.ajp.AbstractAjpProtocol','process(SocketWrapper<S>, SocketStatus)','NOT_DESIGN'),(13992,'NOOP for AJP','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',80,80,'org.apache.coyote.ajp.AbstractAjpProtocol','initSsl(SocketWrapper<S>, P)',NULL),(13993,'In the middle of processing a request/response. Keep the\nsocket associated with the processor. Exact requirements\ndepend on type of long poll','Line','java/org/apache/coyote/AbstractProtocol.java',524,526,'org.apache.coyote.AbstractProtocol','setProperty(String, String)',NULL),(13994,'Didn\'t send all the data but the socket is no longer\nset. Something went wrong. Close the connection.\nToo late to set status code.','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',309,311,'org.apache.coyote.http11.Http11AprProcessor','process(SocketWrapper<Long>)','DESIGN'),(13995,'Didn\'t send all of the data to sendfile.','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',309,309,'org.apache.coyote.http11.Http11AprProcessor','process(SocketWrapper<Long>)',NULL),(13996,'The socket is no longer set. Something went wrong.\nClose the connection. Too late to set status code.','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',311,312,'org.apache.coyote.http11.Http11AprProcessor','process(SocketWrapper<Long>)',NULL),(13997,'Sleep for a couple of seconds to give enough time for the connector\nstop message to be processed','Line','test/org/apache/catalina/comet/TestCometProcessor.java',157,158,'org.apache.catalina.comet.TestCometProcessor','testSimpleCometClient()','NOT_DESIGN'),(13998,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/AbstractInputBuffer.java',178,178,'org.apache.coyote.http11.AbstractInputBuffer','setInputStream(InputStream)',NULL),(13999,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/InternalInputBuffer.java',75,75,'org.apache.coyote.http11.InternalInputBuffer','setInputStream(InputStream)','DESIGN'),(14000,'None','None','java/org/apache/coyote/http11/InternalInputBuffer.java',-1,-1,'None','None',NULL),(14001,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',83,83,'org.apache.coyote.http11.InternalOutputBuffer','setOutputStream(OutputStream)','DESIGN'),(14002,'None','None','java/org/apache/coyote/http11/InternalOutputBuffer.java',-1,-1,'None','None',NULL),(14003,'Normal request processing\nFIXME: Firing request listeners could be an addition to the core\ncomet API','Line','java/org/apache/catalina/core/StandardContextValve.java',213,215,'org.apache.catalina.core.StandardContextValve','event(Request, Response, CometEvent)','DESIGN'),(14004,'Select the Wrapper to be used for this Request','Line','java/org/apache/catalina/core/StandardContextValve.java',232,232,'org.apache.catalina.core.StandardContextValve','event(Request, Response, CometEvent)',NULL),(14005,'Error page processing','Line','java/org/apache/catalina/core/StandardContextValve.java',237,237,'org.apache.catalina.core.StandardContextValve','event(Request, Response, CometEvent)',NULL),(14006,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpProcessor.java',480,481,'org.apache.coyote.ajp.AjpProcessor','doWrite(ByteChunk, Response)',NULL),(14007,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',998,999,'org.apache.coyote.ajp.AbstractAjpProcessor','doWrite(ByteChunk, Response)',NULL),(14008,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpNioProcessor.java',531,532,'org.apache.coyote.ajp.AjpNioProcessor','doWrite(ByteChunk, Response)',NULL),(14009,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',558,559,'org.apache.coyote.ajp.AjpAprProcessor','doWrite(ByteChunk, Response)',NULL),(14010,'probably a resource not in the filesystem (e.g. in a\npackaged war)','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2913,2914,'org.apache.catalina.loader.WebappClassLoader','findResourceInternal(String, String)',NULL),(14011,'The socket is no longer set. Something went wrong.\nClose the connection. Too late to set status code.','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',329,330,'org.apache.coyote.http11.Http11AprProcessor','process(SocketWrapper<Long>)','DESIGN'),(14012,'The socket is no longer set. Something went wrong.\nClose the connection. Too late to set status code.','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',353,354,'org.apache.coyote.http11.Http11AprProcessor','breakKeepAliveLoop(SocketWrapper<Long>)',NULL),(14013,'Wait for the write thread to stop','Line','test/org/apache/catalina/comet/TestCometProcessor.java',157,157,'org.apache.catalina.comet.TestCometProcessor','testSimpleCometClient()',NULL),(14014,'Wait for the read thread to stop','Line','test/org/apache/catalina/comet/TestCometProcessor.java',164,164,'org.apache.catalina.comet.TestCometProcessor','testSimpleCometClient()',NULL),(14015,'TODO: do we need caching ? JMX is for management, it\'s not supposed to require lots of performance.','Line','java/org/apache/tomcat/util/modeler/ManagedBean.java',487,487,'org.apache.tomcat.util.modeler.ManagedBean','getGetter(String, BaseModelMBean, Object)','NOT_DESIGN'),(14016,'None','None','java/org/apache/tomcat/util/modeler/ManagedBean.java',-1,-1,'None','None',NULL),(14017,'Cache may be needed for getters, but it is a really bad idea for setters, this is far\nless frequent.','Line','java/org/apache/tomcat/util/modeler/ManagedBean.java',528,529,'org.apache.tomcat.util.modeler.ManagedBean','getSetter(String, BaseModelMBean, Object)','DESIGN'),(14018,'Do nothing\nTODO Remove this action','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',778,779,'org.apache.coyote.http11.AbstractHttp11Processor','action(ActionCode, Object)','DESIGN'),(14019,'None','None','java/org/apache/coyote/http11/AbstractHttp11Processor.java',-1,-1,'None','None',NULL),(14020,'Close event for this processor triggered by request\nprocessing in another processor, a non-Tomcat thread (i.e.\nan application controlled thread) or similar.','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',441,443,'org.apache.coyote.http11.Http11NioProcessor','actionInternal(ActionCode, Object)',NULL),(14021,'TODO return List','Line','java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java',82,82,'org.apache.tomcat.util.bcel.classfile.AnnotationEntry','getElementValuePairs()',NULL),(14022,'Not started - it should check for availability first\nThis should eventually move to Engine, it\'s generic.','Line','java/org/apache/catalina/core/StandardHostValve.java',145,146,'org.apache.catalina.core.StandardHostValve','getInfo()',NULL),(14023,'Not started - it should check for availability first\nThis should eventually move to Engine, it\'s generic.','Line','java/org/apache/catalina/core/StandardHostValve.java',216,217,'org.apache.catalina.core.StandardHostValve','invoke(Request, Response)',NULL),(14024,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/DigestAuthenticator.java',298,298,'org.apache.catalina.authenticator.DigestAuthenticator','getCnonceCacheSize()',NULL),(14025,'Not a very clean solution ...','Line','java/org/apache/tomcat/util/bcel/classfile/ClassParser.java',72,72,'org.apache.tomcat.util.bcel.classfile.ClassParser','parse()','NOT_DESIGN'),(14026,'None','None','java/org/apache/tomcat/util/bcel/classfile/ClassParser.java',-1,-1,'None','None',NULL),(14027,'Probably useless','Line','java/org/apache/catalina/connector/Response.java',472,472,'org.apache.catalina.connector.Response','createOutputStream()','NOT_DESIGN'),(14028,'None','None','java/org/apache/catalina/connector/Response.java',-1,-1,'None','None',NULL),(14029,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','java/org/apache/catalina/tribes/transport/nio/NioReceiver.java',117,119,'org.apache.catalina.tribes.transport.nio.NioReceiver','stop()',NULL),(14030,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',243,245,'org.apache.tomcat.util.net.SecureNioChannel','rehandshake(long)',NULL),(14031,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','test/org/apache/catalina/tribes/test/transport/SocketNioValidateSend.java',35,37,'org.apache.catalina.tribes.test.transport.SocketNioValidateSend','main(String[])','NOT_DESIGN'),(14032,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',923,925,'org.apache.tomcat.util.net.NioEndpoint','offer(SocketProcessor)',NULL),(14033,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','test/org/apache/catalina/tribes/test/NioSenderTest.java',64,66,'org.apache.catalina.tribes.test.NioSenderTest','init()',NULL),(14034,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java',63,65,'org.apache.catalina.tribes.transport.nio.ParallelNioSender','sendMessage(Member[], ChannelMessage)',NULL),(14035,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','java/org/apache/tomcat/util/net/NioSelectorPool.java',69,71,'org.apache.tomcat.util.net.NioSelectorPool','getSharedSelector()',NULL),(14036,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','java/org/apache/tomcat/util/net/NioSelectorPool.java',94,96,'org.apache.tomcat.util.net.NioSelectorPool','get()',NULL),(14037,'Selector.open() isn\'t thread safe\nhttp://bugs.sun.com/view_bug.do?bug_id=6427854\nAffects 1.6.0_29, fixed in 1.7.0_01','Line','test/org/apache/catalina/tribes/test/transport/SocketNioSend.java',37,39,'org.apache.catalina.tribes.test.transport.SocketNioSend','main(String[])','NOT_DESIGN'),(14038,'Workaround for a&b&c encoding','Line','java/org/apache/tomcat/util/http/Parameters.java',223,223,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, String)','NOT_DESIGN'),(14039,'Name finished. Value starts from next character','Line','java/org/apache/tomcat/util/http/Parameters.java',245,245,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, Charset)',NULL),(14040,'Equals character in value','Line','java/org/apache/tomcat/util/http/Parameters.java',250,250,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, Charset)',NULL),(14041,'Name finished. No value.','Line','java/org/apache/tomcat/util/http/Parameters.java',256,256,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, Charset)',NULL),(14042,'Value finished','Line','java/org/apache/tomcat/util/http/Parameters.java',259,259,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, Charset)',NULL),(14043,'Decoding required','Line','java/org/apache/tomcat/util/http/Parameters.java',266,266,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, Charset)',NULL),(14044,'invalid chunk - it\'s better to ignore','Line','java/org/apache/tomcat/util/http/Parameters.java',265,265,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, String)',NULL),(14045,'invalid chunk - it\'s better to ignore','Line','java/org/apache/tomcat/util/http/Parameters.java',313,313,'org.apache.tomcat.util.http.Parameters','processParameters(byte[], int, int, Charset)',NULL),(14046,'we do it in a dedicated thread for memory leak protection, in\ncase some webapp code registers some ThreadLocals that they\nforget to cleanup\nTODO Figure out why DedicatedThreadExecutor hangs randomly in the\nunit tests if used here','Line','java/org/apache/catalina/core/StandardContext.java',5350,5354,'org.apache.catalina.core.StandardContext','getSendRedirectBody()','DESIGN'),(14047,'Stop our child containers, if any','Line','java/org/apache/catalina/core/StandardContext.java',5299,5299,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(14048,'Ok, no setXXX found, try a getProperty(\\\"name\\\")','Line','test/org/apache/catalina/tribes/demos/IntrospectionUtils.java',444,444,'org.apache.catalina.tribes.demos.IntrospectionUtils','execute(Object, String)','NOT_DESIGN'),(14049,'None','None','test/org/apache/catalina/tribes/demos/IntrospectionUtils.java',-1,-1,'None','None',NULL),(14050,'XXX','Line','test/org/apache/catalina/tribes/demos/IntrospectionUtils.java',515,515,'org.apache.catalina.tribes.demos.IntrospectionUtils','execute(Object, String)','NOT_DESIGN'),(14051,'Redeploy resources processing is hard-coded to never delete this file','Line','java/org/apache/catalina/startup/HostConfig.java',1154,1154,'org.apache.catalina.startup.HostConfig','getConfigClass()',NULL),(14052,'Sleep to overcome apparent JVM bug where Poller sometimes\nfails to report bytes available to read.','Line','test/org/apache/catalina/comet/TestCometProcessor.java',395,396,'org.apache.catalina.comet.TestCometProcessor','testAsyncClose()','DESIGN'),(14053,'None','None','test/org/apache/catalina/comet/TestCometProcessor.java',-1,-1,'None','None',NULL),(14054,'TODO - This is never executed. Bug or code to delete?','Line','java/org/apache/catalina/startup/ContextConfig.java',746,746,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','DESIGN'),(14055,'TODO: change this to use group/name','Line','java/org/apache/tomcat/util/modeler/Registry.java',460,460,'org.apache.tomcat.util.modeler.Registry','removeManagedBean(ManagedBean)','NOT_DESIGN'),(14056,'excellent... we have already authenticated the client somehow,\nprobably from another container that has a login-config','Line','java/org/apache/catalina/authenticator/NonLoginAuthenticator.java',91,92,'org.apache.catalina.authenticator.NonLoginAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(14057,'Load home interface and checking if bean correctly\nimplements specified home interface','Line','java/org/apache/naming/factory/EjbFactory.java',78,79,'org.apache.naming.factory.EjbFactory','getObjectInstance(Object, Name, Context, Hashtable<?, ?>)','NOT_DESIGN'),(14058,'None','None','java/org/apache/naming/factory/EjbFactory.java',-1,-1,'None','None',NULL),(14059,'-------------------- Deprecated code --------------------\nefficient int, long and date\nXXX used only for headers - shouldn\'t be\nstored here.','Line','java/org/apache/tomcat/util/buf/MessageBytes.java',527,530,'org.apache.tomcat.util.buf.MessageBytes','newInstance()',NULL),(14060,'-------------------- Deprecated code --------------------\nefficient long\nXXX used only for headers - shouldn\'t be stored here.','Line','java/org/apache/tomcat/util/buf/MessageBytes.java',469,471,'org.apache.tomcat.util.buf.MessageBytes','newInstance()',NULL),(14061,'XXX Old code, needs to be replaced !!!!\n','Line','java/org/apache/tomcat/util/buf/UDecoder.java',204,205,'org.apache.tomcat.util.buf.UDecoder','convert(String, boolean)',NULL),(14062,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','test/org/apache/catalina/mbeans/MBeanDumper.java',130,132,'org.apache.catalina.mbeans.MBeanDumper','escape(String)',NULL),(14063,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','java/org/apache/catalina/manager/JMXProxyServlet.java',239,241,'org.apache.catalina.manager.JMXProxyServlet','escape(String)','DESIGN'),(14064,'None','None','java/org/apache/catalina/manager/JMXProxyServlet.java',-1,-1,'None','None',NULL),(14065,'The only invalid char is \\n\nWe also need to keep the string short and split it with \\nSPACE\nXXX TODO','Line','java/org/apache/catalina/mbeans/MBeanDumper.java',140,142,'org.apache.catalina.mbeans.MBeanDumper','escape(String)',NULL),(14066,'TODO Better logging','Line','java/org/apache/tomcat/util/buf/C2BConverter.java',60,60,'org.apache.tomcat.util.buf.C2BConverter','recycle()','NOT_DESIGN'),(14067,'Should never happen since this means encoding is invalid and\nin that case, the constructor will have failed.','Line','java/org/apache/tomcat/util/buf/C2BConverter.java',72,73,'org.apache.tomcat.util.buf.C2BConverter','recycle()',NULL),(14068,'Hand this socket off to an appropriate processor\nTODO FIXME - this is currently a blocking call, meaning we will be blocking\nfurther accepts until there is a thread available.','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',797,799,'org.apache.tomcat.util.net.NioEndpoint','offer(SocketProcessor)','DESIGN'),(14069,'Successful accept, reset the error delay','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',791,791,'org.apache.tomcat.util.net.NioEndpoint','offer(SocketProcessor)',NULL),(14070,'setSocketOptions() will add channel to the poller\nif successful','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',794,795,'org.apache.tomcat.util.net.NioEndpoint','offer(SocketProcessor)',NULL),(14071,'maybe we have a single mlet','Line','java/org/apache/tomcat/util/modeler/modules/MbeansSource.java',166,166,'org.apache.tomcat.util.modeler.modules.MbeansSource','execute()',NULL),(14072,'XXX Not very clean...  Just a workaround','Line','java/org/apache/tomcat/util/modeler/modules/MbeansSource.java',175,175,'org.apache.tomcat.util.modeler.modules.MbeansSource','execute()',NULL),(14073,'We wrap everything in a model mbean.\nXXX need to support \\\"StandardMBeanDescriptorsSource\\\"','Line','java/org/apache/tomcat/util/modeler/modules/MbeansSource.java',213,214,'org.apache.tomcat.util.modeler.modules.MbeansSource','execute()',NULL),(14074,'XXX Arguments, loader !!!','Line','java/org/apache/tomcat/util/modeler/modules/MbeansSource.java',224,224,'org.apache.tomcat.util.modeler.modules.MbeansSource','execute()',NULL),(14075,'TODO','Line','java/org/apache/tomcat/util/modeler/modules/ModelerSource.java',47,47,'org.apache.tomcat.util.modeler.modules.ModelerSource','loadDescriptors(Registry, String, String, Object)','NOT_DESIGN'),(14076,'None','None','java/org/apache/tomcat/util/modeler/modules/ModelerSource.java',-1,-1,'None','None',NULL),(14077,'TODO: Make buffer sizes configurable\nTODO: Allow buffers to expand','Line','java/org/apache/catalina/websocket/MessageInbound.java',27,28,'org.apache.catalina.websocket.MessageInbound','None','NOT_DESIGN'),(14078,'These attributes apply to the message that may be spread over multiple\nframes\nTODO','Line','java/org/apache/catalina/websocket/StreamInbound.java',40,42,'org.apache.catalina.websocket.StreamInbound','None',NULL),(14079,'TODO: Not supported.','Line','java/org/apache/catalina/websocket/StreamInbound.java',76,76,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14080,'TODO: Better message','Line','java/org/apache/catalina/websocket/StreamInbound.java',87,87,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14081,'TODO: Doesn\'t currently handle multi-frame messages. That will need\nsome refactoring.','Line','java/org/apache/catalina/websocket/StreamInbound.java',116,117,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14082,'TODO: Per frame extension handling is not currently supported.','Line','java/org/apache/catalina/websocket/StreamInbound.java',119,119,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14083,'TODO: Handle other control frames.','Line','java/org/apache/catalina/websocket/StreamInbound.java',121,121,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14084,'TODO: Handle control frames appearing in the middle of a multi-frame\nmessage','Line','java/org/apache/catalina/websocket/StreamInbound.java',123,124,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14085,'TODO: Message','Line','java/org/apache/catalina/websocket/StreamInbound.java',142,142,'org.apache.catalina.websocket.StreamInbound','validateOpCode(int)',NULL),(14086,'TODO: Better message','Line','java/org/apache/catalina/util/Conversions.java',29,29,'org.apache.catalina.util.Conversions','byteArrayToLong(byte[])',NULL),(14087,'TODO: Make buffer size configurable\nByte buffer needs to be 4* char buffer to be sure that char buffer\ncan always we written into Byte buffer','Line','java/org/apache/catalina/websocket/WsOutbound.java',39,41,'org.apache.catalina.websocket.WsOutbound','writeBinaryData(int)',NULL),(14088,'TODO: Send a close message','Line','java/org/apache/catalina/websocket/WsOutbound.java',118,118,'org.apache.catalina.websocket.WsOutbound','close()',NULL),(14089,'TODO Read client handshake - Origin\nSec-WebSocket-Protocol\nSec-WebSocket-Extensions','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',93,95,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14090,'TODO Extensions require the ability to specify something (API TBD)\nthat can be passed to the Tomcat internals and process extension\ndata present when the frame is fragmented.','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',97,99,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14091,'TODO','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',106,106,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14092,'Small hack until the Servlet API provides a way to do this.','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',112,112,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14093,'TODO Splitting headers into tokens isn\'t quite this simple but\nthis should be OK in this case. It is tempting to change the\nheader parsing code so there is a one to one mapping between\ntoken and enumeration entry.','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',123,126,'org.apache.catalina.websocket.WebSocketServlet','headerContains(HttpServletRequest, String, String)',NULL),(14094,'FIXME !!!! SET SSL PROPERTIES','Line','java/org/apache/catalina/startup/Embedded.java',419,419,'org.apache.catalina.startup.Embedded','createConnector(String, int, String)',NULL),(14095,'TODO: Write a test','Line','test/org/apache/catalina/websocket/TestWebSocket.java',32,32,'org.apache.catalina.websocket.TestWebSocket','None','NOT_DESIGN'),(14096,'In theory this should never happen. In \'standard\' usage the start\nscripts will set the system property. In embedded usage either\nthe system property will be set or it will be set explicitly.','Line','java/org/apache/catalina/core/ContainerBase.java',1362,1364,'org.apache.catalina.core.ContainerBase','run()','DESIGN'),(14097,'None','None','java/org/apache/catalina/core/ContainerBase.java',-1,-1,'None','None',NULL),(14098,'MBean Factory - fixed name','Line','java/org/apache/catalina/mbeans/MBeanUtils.java',1357,1357,'org.apache.catalina.mbeans.MBeanUtils','destroyMBean(Server)','NOT_DESIGN'),(14099,'TODO','Line','java/org/apache/catalina/mbeans/MBeanFactory.java',800,800,'org.apache.catalina.mbeans.MBeanFactory','createValve(String, String)',NULL),(14100,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/BasicAuthenticator.java',118,118,'org.apache.catalina.authenticator.BasicAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(14101,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/BasicAuthenticator.java',113,113,'org.apache.catalina.authenticator.BasicAuthenticator','authenticate(Request, HttpServletResponse)','NOT_DESIGN'),(14102,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',171,171,'org.apache.catalina.authenticator.SpnegoAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(14103,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',170,170,'org.apache.catalina.authenticator.SpnegoAuthenticator','authenticate(Request, HttpServletResponse)',NULL),(14104,'Assume the GSSContext is stateless\nTODO: Confirm this assumption','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',201,202,'org.apache.catalina.authenticator.SpnegoAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(14105,'Assume the GSSContext is stateless\nTODO: Confirm this assumption','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',200,201,'org.apache.catalina.authenticator.SpnegoAuthenticator','authenticate(Request, HttpServletResponse)',NULL),(14106,'excellent... we have already authenticated the client somehow,\nprobably from another container that has a login-config','Line','java/org/apache/catalina/authenticator/NonLoginAuthenticator.java',93,94,'org.apache.catalina.authenticator.NonLoginAuthenticator','authenticate(Request, HttpServletResponse, LoginConfig)',NULL),(14107,'excellent... we have already authenticated the client somehow,\nprobably from another container that has a login-config','Line','java/org/apache/catalina/authenticator/NonLoginAuthenticator.java',85,86,'org.apache.catalina.authenticator.NonLoginAuthenticator','authenticate(Request, HttpServletResponse)',NULL),(14108,'Should never reach this code but in case we do...\nTODO','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1585,1586,'org.apache.coyote.http11.AbstractHttp11Processor','upgradeDispatch()',NULL),(14109,'Probably an UpgradeProcessor','Line','java/org/apache/coyote/AbstractProtocol.java',664,664,'org.apache.coyote.AbstractProtocol','setProperty(String, String)',NULL),(14110,'TODO Should never happen. ISE?','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',93,93,'org.apache.coyote.ajp.AbstractAjpProtocol','upgradePoll(SocketWrapper<S>, P)',NULL),(14111,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',99,99,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapper<S>, UpgradeInbound)',NULL),(14112,'None of the following NO-OP methods are strictly necessary - assuming the\nthere are no bugs in the connector code that cause upgraded connections\nto be treated as Http11, Comet or Async. These NO-OP methods are here for\nsafety and to aid debugging during development.','Block','java/org/apache/coyote/http11/upgrade/UpgradeBioProcessor.java',89,94,'org.apache.coyote.http11.upgrade.UpgradeBioProcessor','event(SocketStatus)','DESIGN'),(14113,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeBioProcessor.java',98,98,'org.apache.coyote.http11.upgrade.UpgradeBioProcessor','event(SocketStatus)','NOT_DESIGN'),(14114,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeBioProcessor.java',106,106,'org.apache.coyote.http11.upgrade.UpgradeBioProcessor','process(SocketWrapper<Socket>)','NOT_DESIGN'),(14115,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeBioProcessor.java',113,113,'org.apache.coyote.http11.upgrade.UpgradeBioProcessor','asyncDispatch(SocketStatus)','NOT_DESIGN'),(14116,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeBioProcessor.java',120,120,'org.apache.coyote.http11.upgrade.UpgradeBioProcessor','asyncPostProcess()','NOT_DESIGN'),(14117,'None of the following NO-OP methods are strictly necessary - assuming the\nthere are no bugs in the connector code that cause upgraded connections\nto be treated as Http11, Comet or Async. These NO-OP methods are here for\nsafety and to aid debugging during development.','Block','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',88,93,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','event(SocketStatus)','DESIGN'),(14118,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',97,97,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','event(SocketStatus)','NOT_DESIGN'),(14119,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',105,105,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','process(SocketWrapper<Long>)','NOT_DESIGN'),(14120,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',112,112,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','asyncDispatch(SocketStatus)','NOT_DESIGN'),(14121,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',119,119,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','asyncPostProcess()','NOT_DESIGN'),(14122,'None of the following NO-OP methods are strictly necessary - assuming the\nthere are no bugs in the connector code that cause upgraded connections\nto be treated as Http11, Comet or Async. These NO-OP methods are here for\nsafety and to aid debugging during development.','Block','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',194,199,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','event(SocketStatus)','DESIGN'),(14123,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',203,203,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','event(SocketStatus)','NOT_DESIGN'),(14124,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',211,211,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','process(SocketWrapper<NioChannel>)','NOT_DESIGN'),(14125,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',218,218,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','asyncDispatch(SocketStatus)','NOT_DESIGN'),(14126,'TODO Log an error','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',225,225,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','asyncPostProcess()','NOT_DESIGN'),(14127,'TODO Should never happen. ISE?','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',96,96,'org.apache.coyote.ajp.AbstractAjpProtocol','upgradePoll(SocketWrapper<S>, Processor<S>)','DESIGN'),(14128,'Output methods','Block','java/org/apache/coyote/http11/upgrade/UpgradeBioProcessor.java',46,48,'org.apache.coyote.http11.upgrade.UpgradeBioProcessor','flush()',NULL),(14129,'Input methods','Block','java/org/apache/coyote/http11/upgrade/UpgradeBioProcessor.java',61,63,'org.apache.coyote.http11.upgrade.UpgradeBioProcessor','read()',NULL),(14130,'Output methods','Block','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',43,45,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','flush()',NULL),(14131,'NOOP','Line','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',48,48,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','flush()',NULL),(14132,'Input methods','Block','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',58,60,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','read()',NULL),(14133,'TODO Read client handshake - Sec-WebSocket-Protocol\nSec-WebSocket-Extensions','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',99,100,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14134,'Output methods','Block','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',48,50,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','flush()',NULL),(14135,'ignore','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',63,63,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','flush()',NULL),(14136,'Input methods','Block','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',83,85,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','read()',NULL),(14137,'Adapted from the NioInputBuffer.','Block','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',99,101,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','readSocket(boolean, byte[], int, int)',NULL),(14138,'Ignore','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',113,113,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','readSocket(boolean, byte[], int, int)',NULL),(14139,'Adapted from the NioOutputBuffer','Block','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',147,149,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','writeToSocket(byte[])',NULL),(14140,'ignore','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',167,167,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','writeToSocket(byte[])',NULL),(14141,'Hack required by Eclipse\'s \\\"serve modules without\npublishing\\\" feature since this backs WEB-INF/classes by\nmultiple locations rather than one.','Line','java/org/apache/catalina/startup/ContextConfig.java',1183,1185,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()',NULL),(14142,'TODO Read client handshake - Sec-WebSocket-Extensions','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',107,107,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14143,'TODO Splitting headers into tokens isn\'t quite this simple but\nthis should be OK in this case. It is tempting to change the\nheader parsing code so there is a one to one mapping between\ntoken and enumeration entry.','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',128,131,'org.apache.catalina.websocket.WebSocketServlet','headerContains(HttpServletRequest, String, String)','DESIGN'),(14144,'None','None','java/org/apache/catalina/websocket/WebSocketServlet.java',-1,-1,'None','None',NULL),(14145,'These attributes apply to the message that may be spread over multiple\nframes\nTODO','Line','java/org/apache/catalina/websocket/StreamInbound.java',41,43,'org.apache.catalina.websocket.StreamInbound','None','DESIGN'),(14146,'None','None','java/org/apache/catalina/websocket/StreamInbound.java',-1,-1,'None','None',NULL),(14147,'TODO: Not supported.','Line','java/org/apache/catalina/websocket/StreamInbound.java',77,77,'org.apache.catalina.websocket.StreamInbound','onData()','NOT_DESIGN'),(14148,'Must be start the start of a frame or series of frames','Line','java/org/apache/catalina/websocket/StreamInbound.java',52,52,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14149,'TODO: Better message','Line','java/org/apache/catalina/websocket/StreamInbound.java',88,88,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14150,'TODO i18n','Line','java/org/apache/catalina/websocket/StreamInbound.java',66,66,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14151,'TODO: Doesn\'t currently handle multi-frame messages. That will need\nsome refactoring.','Line','java/org/apache/catalina/websocket/StreamInbound.java',118,119,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14152,'TODO: Doesn\'t currently handle multi-frame messages. That will need\nsome refactoring.','Line','java/org/apache/catalina/websocket/WsInputStream.java',63,64,'org.apache.catalina.websocket.WsInputStream','getFrameHeader()','NOT_DESIGN'),(14153,'TODO: Per frame extension handling is not currently supported.','Line','java/org/apache/catalina/websocket/StreamInbound.java',121,121,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14154,'TODO: Per frame extension handling is not currently supported.','Line','java/org/apache/catalina/websocket/WsInputStream.java',66,66,'org.apache.catalina.websocket.WsInputStream','getFrameHeader()','NOT_DESIGN'),(14155,'TODO: Handle other control frames.','Line','java/org/apache/catalina/websocket/StreamInbound.java',123,123,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14156,'TODO: Handle other control frames.','Line','java/org/apache/catalina/websocket/WsInputStream.java',68,68,'org.apache.catalina.websocket.WsInputStream','getFrameHeader()','NOT_DESIGN'),(14157,'TODO: Handle control frames appearing in the middle of a multi-frame\nmessage','Line','java/org/apache/catalina/websocket/StreamInbound.java',125,126,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14158,'TODO: Handle control frames appearing in the middle of a multi-frame\nmessage','Line','java/org/apache/catalina/websocket/WsInputStream.java',70,71,'org.apache.catalina.websocket.WsInputStream','getFrameHeader()','DESIGN'),(14159,'None','None','java/org/apache/catalina/websocket/WsInputStream.java',-1,-1,'None','None',NULL),(14160,'TODO: Message','Line','java/org/apache/catalina/websocket/StreamInbound.java',144,144,'org.apache.catalina.websocket.StreamInbound','validateOpCode(int)',NULL),(14161,'TODO: Message','Line','java/org/apache/catalina/websocket/StreamInbound.java',85,85,'org.apache.catalina.websocket.StreamInbound','validateOpCode(byte)',NULL),(14162,'TODO: StringManager / i18n','Line','java/org/apache/catalina/websocket/WsInputStream.java',44,44,'org.apache.catalina.websocket.WsInputStream','getFrameHeader()',NULL),(14163,'TODO: Per frame extension handling is not currently supported.','Line','java/org/apache/catalina/websocket/WsInputStream.java',44,44,'org.apache.catalina.websocket.WsInputStream','processFrameHeader()',NULL),(14164,'TODO: Handle other control frames.','Line','java/org/apache/catalina/websocket/WsInputStream.java',46,46,'org.apache.catalina.websocket.WsInputStream','processFrameHeader()','NOT_DESIGN'),(14165,'TODO: Handle control frames appearing in the middle of a multi-frame\nmessage','Line','java/org/apache/catalina/websocket/WsInputStream.java',48,49,'org.apache.catalina.websocket.WsInputStream','processFrameHeader()',NULL),(14166,'TODO i18n','Line','java/org/apache/catalina/websocket/WsInputStream.java',90,90,'org.apache.catalina.websocket.WsInputStream','read()',NULL),(14167,'Open the socket','Line','test/org/apache/catalina/websocket/TestWebSocket.java',59,59,'org.apache.catalina.websocket.TestWebSocket','testSimple()',NULL),(14168,'TODO: Make buffer size configurable','Line','java/org/apache/catalina/websocket/WsOutbound.java',39,39,'org.apache.catalina.websocket.WsOutbound','writeBinaryData(int)',NULL),(14169,'2MB - like maxPostSize','Line','java/org/apache/catalina/websocket/MessageInbound.java',27,27,'org.apache.catalina.websocket.MessageInbound','None',NULL),(14170,'TODO i18n','Line','java/org/apache/catalina/websocket/MessageInbound.java',68,68,'org.apache.catalina.websocket.MessageInbound','resizeByteBuffer()',NULL),(14171,'TODO i18n','Line','java/org/apache/catalina/websocket/MessageInbound.java',87,87,'org.apache.catalina.websocket.MessageInbound','resizeCharBuffer()',NULL),(14172,'TODO: Send a close message','Line','java/org/apache/catalina/websocket/WsOutbound.java',116,116,'org.apache.catalina.websocket.WsOutbound','close()','DESIGN'),(14173,'None','None','java/org/apache/catalina/websocket/WsOutbound.java',-1,-1,'None','None',NULL),(14174,'TODO Think about threading requirements for writing. This is not\ncurrently thread safe and writing almost certainly needs to be.','Line','java/org/apache/catalina/websocket/WsOutbound.java',115,116,'org.apache.catalina.websocket.WsOutbound','close(int, ByteBuffer)',NULL),(14175,'TODO Think about threading requirements for writing. This is not\ncurrently thread safe and writing almost certainly needs to be.','Line','java/org/apache/catalina/websocket/WsOutbound.java',145,146,'org.apache.catalina.websocket.WsOutbound','pong(ByteBuffer)',NULL),(14176,'TODO - handle this - ISE?','Line','java/org/apache/catalina/websocket/WsOutbound.java',148,148,'org.apache.catalina.websocket.WsOutbound','pong(ByteBuffer)',NULL),(14177,'TODO User defined extensions may define values for rsv','Line','java/org/apache/catalina/websocket/StreamInbound.java',58,58,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14178,'TODO i18n','Line','java/org/apache/catalina/websocket/StreamInbound.java',96,96,'org.apache.catalina.websocket.StreamInbound','onData()','NOT_DESIGN'),(14179,'TODO: Message','Line','java/org/apache/catalina/websocket/StreamInbound.java',157,157,'org.apache.catalina.websocket.StreamInbound','validateOpCode(byte)','NOT_DESIGN'),(14180,'TODO: Handle control frames between fragments','Line','java/org/apache/catalina/websocket/WsInputStream.java',46,46,'org.apache.catalina.websocket.WsInputStream','processFrameHeader()',NULL),(14181,'TODO: map of protocols','Line','java/org/apache/coyote/http11/Http11AprProtocol.java',187,187,'org.apache.coyote.http11.Http11AprProtocol','process(SocketWrapper<Long>, SocketStatus, Http11AprProtocol, AbstractEndpoint)','NOT_DESIGN'),(14182,'TODO: interrupt poll ?','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',1216,1216,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(14183,'This is a bit more complicated, to avoid multiple reads/writes.\nWe\'ll read as much as possible - possible past frame end. This may\ncost an extra copy - or even more complexity for dealing with slices\nif we want to save the copy.','Line','java/org/apache/tomcat/spdy/SpdyFrame.java',20,23,'org.apache.tomcat.spdy.SpdyFrame','None',NULL),(14184,'TODO: priority','Line','java/org/apache/tomcat/spdy/SpdyFrame.java',98,98,'org.apache.tomcat.spdy.SpdyFrame','serializeHead()',NULL),(14185,'TODO: instead of that, use byte[][]','Line','java/org/apache/tomcat/spdy/SpdyFrame.java',230,230,'org.apache.tomcat.spdy.SpdyFrame','makeSpace(int)',NULL),(14186,'TODO: handle RST','Line','java/org/apache/tomcat/spdy/SpdyStream.java',82,82,'org.apache.tomcat.spdy.SpdyStream','onCtlFrame(SpdyFrame)',NULL),(14187,'TODO: add the others','Line','java/org/apache/tomcat/spdy/SpdyStream.java',184,184,'org.apache.tomcat.spdy.SpdyStream','send(String, String)',NULL),(14188,'todo','Line','java/org/apache/tomcat/spdy/SpdyStream.java',187,187,'org.apache.tomcat.spdy.SpdyStream','send(String, String)',NULL),(14189,'TODO: this can be pooled, to avoid allocation on idle connections\nTODO: override socket timeout','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',42,43,'org.apache.tomcat.spdy.SpdyConnection','None',NULL),(14190,'TODO: finer handling of priorities','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',114,114,'org.apache.tomcat.spdy.SpdyConnection','None',NULL),(14191,'TODO: abort','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',340,340,'org.apache.tomcat.spdy.SpdyConnection','write(byte[], int, int)',NULL),(14192,'grow the buffer if needed. no need to copy the head, parsed\n( maybe for debugging ).','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',425,426,'org.apache.tomcat.spdy.SpdyConnection','processInput()',NULL),(14193,'TODO: close all streams','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',506,506,'org.apache.tomcat.spdy.SpdyConnection','abort(String)','NOT_DESIGN'),(14194,'TODO: handle input\nTODO: recycle\nTODO: swallow input ( recycle only after input close )\nTODO: find a way to inject an OutputBuffer, or interecept close() -\nso we can send FIN in the last data packet.','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',59,63,'org.apache.coyote.spdy.SpdyProcessor','None',NULL),(14195,'TODO: async, etc ( detached mode - use a special light protocol)','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',166,166,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(14196,'TODO: recycle','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',184,184,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(14197,'TODO: async','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',227,227,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(14198,'TODO: Do not swallow request input but\nmake sure we are closing the connection','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',242,243,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(14199,'TODO:','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',385,385,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(14200,'TODO: is closed ?','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',427,427,'org.apache.coyote.spdy.SpdyProcessor','sendResponseHead()','DESIGN'),(14201,'TODO: filter headers: Connection, Keep-Alive, Proxy-Connection,','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',440,440,'org.apache.coyote.spdy.SpdyProcessor','sendResponseHead()',NULL),(14202,'TODO: optimize','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',466,466,'org.apache.coyote.spdy.SpdyProcessor','sendResponseHead()',NULL),(14203,'TODO i18n','Line','java/org/apache/catalina/websocket/WsInputStream.java',96,96,'org.apache.catalina.websocket.WsInputStream','processorRead()',NULL),(14204,'TODO i18n','Line','java/org/apache/catalina/websocket/WsInputStream.java',109,109,'org.apache.catalina.websocket.WsInputStream','processorRead(byte[])',NULL),(14205,'TODO: Per frame extension handling is not currently supported.','Line','java/org/apache/catalina/websocket/WsInputStream.java',50,50,'org.apache.catalina.websocket.WsInputStream','processFrameHeader()','NOT_DESIGN'),(14206,'TODO: Handle control frames between fragments','Line','java/org/apache/catalina/websocket/WsInputStream.java',52,52,'org.apache.catalina.websocket.WsInputStream','processFrameHeader()','NOT_DESIGN'),(14207,'TODO: StringManager / i18n','Line','java/org/apache/catalina/websocket/WsInputStream.java',59,59,'org.apache.catalina.websocket.WsInputStream','processFrameHeader()',NULL),(14208,'TODO: StringManager / i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',48,48,'org.apache.catalina.websocket.WsFrame','getFin()',NULL),(14209,'TODO i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',118,118,'org.apache.catalina.websocket.WsFrame','processorRead(UpgradeProcessor<?>)',NULL),(14210,'TODO i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',132,132,'org.apache.catalina.websocket.WsFrame','processorRead(UpgradeProcessor<?>, byte[])',NULL),(14211,'TODO i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',149,149,'org.apache.catalina.websocket.WsFrame','processorRead(UpgradeProcessor<?>, ByteBuffer)',NULL),(14212,'TODO i18n','Line','java/org/apache/catalina/websocket/WsInputStream.java',62,62,'org.apache.catalina.websocket.WsInputStream','read()',NULL),(14213,'TODO','Line','java/org/apache/catalina/websocket/WsInputStream.java',72,72,'org.apache.catalina.websocket.WsInputStream','read()',NULL),(14214,'TODO This should fail on invalid UTF-8 input but doesn\'t','Line','java/org/apache/catalina/websocket/MessageInbound.java',57,57,'org.apache.catalina.websocket.MessageInbound','onTextData(Reader)',NULL),(14215,'TODO: write/read should go to SocketWrapper.','Line','java/org/apache/coyote/spdy/SpdyAprNpnHandler.java',121,121,'org.apache.coyote.spdy.SpdyAprNpnHandler','init(AbstractEndpoint, long, Adapter)','DESIGN'),(14216,'TODO','Line','java/org/apache/tomcat/spdy/CompressDeflater6.java',72,72,'org.apache.tomcat.spdy.CompressDeflater6','recycle()',NULL),(14217,'Other 1xxx reserved / not permitted\n2xxx reserved\n3xxx framework defined\n4xxx application defined','Line','java/org/apache/catalina/websocket/WsOutbound.java',147,150,'org.apache.catalina.websocket.WsOutbound','validateCloseStatus(int)',NULL),(14218,'TODO','Line','java/org/apache/catalina/websocket/WsInputStream.java',76,76,'org.apache.catalina.websocket.WsInputStream','read()',NULL),(14219,'TODO i18n','Line','java/org/apache/catalina/websocket/WsInputStream.java',79,79,'org.apache.catalina.websocket.WsInputStream','read()','NOT_DESIGN'),(14220,'if someone would change the limit in process,\nhe would face consequences','Line','java/org/apache/catalina/websocket/Utf8Decoder.java',150,151,'org.apache.catalina.websocket.Utf8Decoder','decodeHasArray(ByteBuffer, CharBuffer)',NULL),(14221,'TODO i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',102,102,'org.apache.catalina.websocket.WsFrame','getFin()','NOT_DESIGN'),(14222,'TODO - handle this - ISE?','Line','java/org/apache/catalina/websocket/WsOutbound.java',267,267,'org.apache.catalina.websocket.WsOutbound','pong(ByteBuffer)','DESIGN'),(14223,'TODO This should fail on invalid UTF-8 input but doesn\'t','Line','java/org/apache/catalina/websocket/MessageInbound.java',65,65,'org.apache.catalina.websocket.MessageInbound','onTextData(Reader)','DESIGN'),(14224,'None','None','java/org/apache/catalina/websocket/MessageInbound.java',-1,-1,'None','None',NULL),(14225,'TODO: StringManager / i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',61,61,'org.apache.catalina.websocket.WsFrame','getFin()','NOT_DESIGN'),(14226,'None','None','java/org/apache/catalina/websocket/WsFrame.java',-1,-1,'None','None',NULL),(14227,'TODO i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',146,146,'org.apache.catalina.websocket.WsFrame','processorRead(UpgradeProcessor<?>)','NOT_DESIGN'),(14228,'TODO i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',160,160,'org.apache.catalina.websocket.WsFrame','processorRead(UpgradeProcessor<?>, byte[])','NOT_DESIGN'),(14229,'TODO i18n','Line','java/org/apache/catalina/websocket/WsFrame.java',177,177,'org.apache.catalina.websocket.WsFrame','processorRead(UpgradeProcessor<?>, ByteBuffer)','NOT_DESIGN'),(14230,'TODO i18n','Line','java/org/apache/catalina/websocket/MessageInbound.java',76,76,'org.apache.catalina.websocket.MessageInbound','resizeByteBuffer()','NOT_DESIGN'),(14231,'TODO i18n','Line','java/org/apache/catalina/websocket/MessageInbound.java',96,96,'org.apache.catalina.websocket.MessageInbound','resizeCharBuffer()','NOT_DESIGN'),(14232,'TODO - change this test to check if there is data to read','Line','java/org/apache/catalina/websocket/StreamInbound.java',68,68,'org.apache.catalina.websocket.StreamInbound','onData()','DESIGN'),(14233,'TODO Required once while loop is fixed','Line','java/org/apache/catalina/websocket/StreamInbound.java',117,117,'org.apache.catalina.websocket.StreamInbound','onData()','NOT_DESIGN'),(14234,'TODO support non-blocking reads','Line','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',76,76,'org.apache.coyote.http11.upgrade.UpgradeAprProcessor','read(boolean, byte[], int, int)','NOT_DESIGN'),(14235,'TODO Implement non-blocking reads. Should be as simple as replacing\ntrue with block in the two lines below','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',107,108,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','read(boolean, byte[], int, int)','NOT_DESIGN'),(14236,'TODO message','Line','java/org/apache/catalina/websocket/WsFrame.java',218,218,'org.apache.catalina.websocket.WsFrame','nextFrame(UpgradeProcessor<?>, boolean)','NOT_DESIGN'),(14237,'None','None','java/org/apache/coyote/http11/upgrade/UpgradeAprProcessor.java',-1,-1,'None','None',NULL),(14238,'TODO: Make buffer size configurable','Line','java/org/apache/catalina/websocket/WsOutbound.java',48,48,'org.apache.catalina.websocket.WsOutbound','writeBinaryData(int)','NOT_DESIGN'),(14239,'TODO Think about threading requirements for writing. This is not\ncurrently thread safe and writing almost certainly needs to be.','Line','java/org/apache/catalina/websocket/WsOutbound.java',254,255,'org.apache.catalina.websocket.WsOutbound','close(int, ByteBuffer)','NOT_DESIGN'),(14240,'TODO Think about threading requirements for writing. This is not\ncurrently thread safe and writing almost certainly needs to be.','Line','java/org/apache/catalina/websocket/WsOutbound.java',291,292,'org.apache.catalina.websocket.WsOutbound','pong(ByteBuffer)','NOT_DESIGN'),(14241,'None','None','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',-1,-1,'None','None',NULL),(14242,'None','None','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',-1,-1,'None','None',NULL),(14243,'Not thread-safe but if one of multiple increments is lost\nthat is not a big deal since the fact that there was any\nduplicate is a much bigger issue.','Line','java/org/apache/catalina/session/ManagerBase.java',778,780,'org.apache.catalina.session.ManagerBase','getContainer()',NULL),(14244,'TODO: if resumed, old certs are good.\nIf not - warn if certs changed, remember first cert, etc.','Line','java/org/apache/tomcat/jni/socket/AprSocket.java',491,492,'org.apache.tomcat.jni.socket.AprSocket','getPeerCert(boolean)',NULL),(14245,'TODO: if the ticket, session id or session changed - callback to\nsave the session again','Line','java/org/apache/tomcat/jni/socket/AprSocket.java',860,861,'org.apache.tomcat.jni.socket.AprSocket','handshakeDone()',NULL),(14246,'It seems to send the ticket, get server helo / ChangeCipherSpec, but than\nSSL3_GET_RECORD:decryption failed or bad record mac in s3_pkt.c:480:\nEither bug in openssl, or some combination of ciphers - needs more debugging.\n( this can save a roundtrip and CPU on TLS handshake )','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',94,97,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14247,'Set on all accepted or connected sockets.\nTODO: add the other properties','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',124,125,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14248,'TODO: do we need this here ?','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',169,169,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14249,'TODO: should have a separate method for switching to tls later.','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',338,338,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14250,'TODO: does it need to be done in io thread ?','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',427,427,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14251,'Blocking\nTODO: use socket pool\nTODO: cache it ( and TTL ) in hi','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',462,464,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14252,'Client certificate verification - maybe make it option','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',644,644,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14253,'TODO: try release buffers','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',693,693,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14254,'Easiest ( maybe safest ) way to interrupt accept\nwe could have it in non-blocking mode, etc','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',816,817,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14255,'TODO: SSL really needs a thread.','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',844,844,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14256,'Removed the \'thread safe\' updates for now, to simplify the code\nlast test shows a small improvement, can switch later.','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',916,917,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14257,'TODO: destroy/close the raw socket','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',1027,1027,'org.apache.tomcat.jni.socket.AprSocketContext','run()',NULL),(14258,'TODO: timeouts','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',1101,1101,'org.apache.tomcat.jni.socket.AprSocketContext','run()',NULL),(14259,'None','None','java/org/apache/coyote/spdy/SpdyAprNpnHandler.java',-1,-1,'None','None',NULL),(14260,'TODO: if data, split it in 2 frames\ngrow the buffer if needed.','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',450,451,'org.apache.tomcat.spdy.SpdyConnection','processInput()',NULL),(14261,'None','None','java/org/apache/tomcat/spdy/SpdyConnection.java',-1,-1,'None','None',NULL),(14262,'None','None','java/org/apache/coyote/spdy/SpdyProcessor.java',-1,-1,'None','None',NULL),(14263,'late: IDs are assigned as we send ( priorities may affect\nthe transmission order )','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',241,242,'org.apache.tomcat.spdy.SpdyConnection','toString()',NULL),(14264,'Yes, isSpace() is deprecated but it does exactly what we need','Line','java/org/apache/coyote/Response.java',449,449,'org.apache.coyote.Response','setContentType(String)','NOT_DESIGN'),(14265,'Invalid - Assume no charset and just pass through whatever\nthe user provided.','Line','java/org/apache/coyote/Response.java',443,444,'org.apache.coyote.Response','setContentType(String)',NULL),(14266,'You can override these two methods in subclasses of SimpleNode to\ncustomize the way the node appears when the tree is dumped. If your\noutput uses more than one line you should override toString(String),\notherwise overriding toString() is probably all you need to do.','Block','java/org/apache/tomcat/util/http/parser/SimpleNode.java',87,92,'org.apache.tomcat.util.http.parser.SimpleNode','toString()',NULL),(14267,'A connection, once closed, should stay closed','Line','modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/MultipleCloseTest.java',64,64,'org.apache.tomcat.jdbc.test.MultipleCloseTest','testClosedConnectionsNotReused()',NULL),(14268,'TODO: This isn\'t pretty but it works. Significant refactoring would\nbe required to avoid the exception.','Line','java/org/apache/el/util/ReflectionUtil.java',323,324,'org.apache.el.util.ReflectionUtil','isCoercibleFrom(Object, Class<?>)',NULL),(14269,'clear the flag, and bail out','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',629,629,'org.apache.tomcat.jdbc.pool.ConnectionPool','getConnectionAsync()','NOT_DESIGN'),(14270,'None','None','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java',-1,-1,'None','None',NULL),(14271,'TODO: handle RST','Line','java/org/apache/tomcat/spdy/SpdyStream.java',108,108,'org.apache.tomcat.spdy.SpdyStream','onCtlFrame(SpdyFrame)',NULL),(14272,'TODO: handle RST','Line','java/org/apache/tomcat/spdy/SpdyStream.java',106,106,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(14273,'TODO: add the others','Line','java/org/apache/tomcat/spdy/SpdyStream.java',241,241,'org.apache.tomcat.spdy.SpdyStream','send(String, String)',NULL),(14274,'TODO: add the others','Line','java/org/apache/tomcat/spdy/SpdyStream.java',239,239,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(14275,'todo','Line','java/org/apache/tomcat/spdy/SpdyStream.java',244,244,'org.apache.tomcat.spdy.SpdyStream','send(String, String)',NULL),(14276,'todo','Line','java/org/apache/tomcat/spdy/SpdyStream.java',242,242,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)','NOT_DESIGN'),(14277,'None','None','java/org/apache/coyote/http11/Http11AprProtocol.java',-1,-1,'None','None',NULL),(14278,'TODO: send rst, error processing the stream.','Line','java/org/apache/tomcat/spdy/SpdyStream.java',257,257,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(14279,'TODO','Line','java/org/apache/tomcat/spdy/SpdyStream.java',268,268,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(14280,'TODO','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',224,224,'org.apache.tomcat.spdy.SpdyConnection','toString()',NULL),(14281,'TODO: save/interpret settings','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',560,560,'org.apache.tomcat.spdy.SpdyConnection','handleFrame()',NULL),(14282,'todo: check spdy/2','Line','java/org/apache/tomcat/spdy/NetSupportOpenSSL.java',42,42,'org.apache.tomcat.spdy.NetSupportOpenSSL','handshakeDone(AprSocket)',NULL),(14283,'TODO: code to plug in v7-specific. It is marginally faster.','Line','java/org/apache/tomcat/spdy/CompressDeflater6.java',71,71,'org.apache.tomcat.spdy.CompressDeflater6','get()',NULL),(14284,'TODO gotta catch RejectedExecutionException and properly handle it','Line','java/org/apache/tomcat/util/net/JIoEndpoint.java',576,576,'org.apache.tomcat.util.net.JIoEndpoint','setHandler(Handler)',NULL),(14285,'Several components end up calling:\nsun.misc.GC.requestLatency(long)\n\nThose libraries / components known to trigger memory leaks\ndue to eventual calls to requestLatency(long) are:\n- javax.management.remote.rmi.RMIConnectorServer.start()','Block','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',281,288,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)','DESIGN'),(14286,'Ignore this case: we must be running on a\nnon-Sun-based JRE.','Line','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',276,277,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(14287,'Several components end up calling\nsun.misc.GC.requestLatency(long) which creates a daemon\nthread without setting the TCCL.\n\nThose libraries / components known to trigger memory leaks\ndue to eventual calls to requestLatency(long) are:\n- javax.management.remote.rmi.RMIConnectorServer.start()\n\nNote: Long.MAX_VALUE is a special case that causes the thread\nto terminate\n','Block','java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java',281,293,'org.apache.catalina.core.JreMemoryLeakPreventionListener','lifecycleEvent(LifecycleEvent)',NULL),(14288,'This seems wrong but it is what the spec says...','Line','java/org/apache/tomcat/util/http/mapper/Mapper.java',1040,1040,'org.apache.tomcat.util.http.mapper.Mapper','setDefaultHostName(String)',NULL),(14289,'Skip blanks introduced by regexp split and/or poor input','Line','java/org/apache/naming/resources/BaseDirContext.java',239,239,'org.apache.naming.resources.BaseDirContext','addResourcesJar(URL)',NULL),(14290,'What\'s the story here with DateTool.LOCALE_US?? Why??','Line','java/org/apache/catalina/ssi/SSIMediator.java',97,97,'org.apache.catalina.ssi.SSIMediator','setConfigTimeFmt(String, boolean)','DESIGN'),(14291,'None','None','java/org/apache/catalina/ssi/SSIMediator.java',-1,-1,'None','None',NULL),(14292,'Well we cleaned the pool in terminate.\nWell we cleaned the pool in terminate.','Line','java/org/apache/catalina/core/AprLifecycleListener.java',153,154,'org.apache.catalina.core.AprLifecycleListener','terminateAPR()','NOT_DESIGN'),(14293,'Well we cleaned the pool in terminate.','Line','java/org/apache/catalina/core/AprLifecycleListener.java',151,151,'org.apache.catalina.core.AprLifecycleListener','terminateAPR()',NULL),(14294,'TODO SERVLET 3.1','Line','java/org/apache/coyote/http11/InternalInputBuffer.java',447,447,'org.apache.coyote.http11.InternalInputBuffer','supportsNonBlocking()','NOT_DESIGN'),(14295,'TODO Notify write listener','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',304,304,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)',NULL),(14296,'TODO Notify read listener','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',306,306,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)',NULL),(14297,'------------------------------------------------------------- TODO SERVLET 3.1 IN PROGRESS','Line','java/org/apache/coyote/http11/AbstractInputBuffer.java',165,165,'org.apache.coyote.http11.AbstractInputBuffer','supportsNonBlocking()','NOT_DESIGN'),(14298,'------------------------------------------------------------- TODO SERVLET 3.1 IN PROGRESS','Line','java/org/apache/coyote/Request.java',144,144,'org.apache.coyote.Request','None','NOT_DESIGN'),(14299,'TODO SERVLET 3.1 is it allowed to switch from non block to blocking?','Line','java/org/apache/coyote/Request.java',153,153,'org.apache.coyote.Request','getReadListener()','NOT_DESIGN'),(14300,'TODO SERVLET 3.1 -\nwe should not swallow this exception','Line','java/org/apache/coyote/http11/InternalNioInputBuffer.java',194,195,'org.apache.coyote.http11.InternalNioInputBuffer','supportsNonBlocking()',NULL),(14301,'TODO SERVLET 3.1','Line','java/org/apache/coyote/http11/InternalAprInputBuffer.java',109,109,'org.apache.coyote.http11.InternalAprInputBuffer','supportsNonBlocking()','NOT_DESIGN'),(14302,'here we can issue a non blocking read\nif supported\nTODO SERVLET 3.1','Line','java/org/apache/catalina/connector/InputBuffer.java',273,275,'org.apache.catalina.connector.InputBuffer','dataAvailable()',NULL),(14303,'TODO - delete the line below in Tomcat 9 onwards','Line','java/org/apache/catalina/session/ManagerBase.java',246,246,'org.apache.catalina.session.ManagerBase','getContainer()',NULL),(14304,'TODO FIXME-- fix - so we can notify of error','Line','java/org/apache/coyote/http11/Http11NioProcessor.java',195,195,'org.apache.coyote.http11.Http11NioProcessor','asyncDispatch(SocketStatus)','NOT_DESIGN'),(14305,'FIXME BUFFER IS BROKEN, 0 doesn\'t work','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',102,102,'org.apache.catalina.nonblocking.TestNonBlockingAPI','getProtocol()',NULL),(14306,'TODO SERVLET 3.1 is it allowed to switch from non block to blocking?','Line','java/org/apache/coyote/Response.java',557,557,'org.apache.coyote.Response','getRequest()',NULL),(14307,'FIXME BUFFER IS BROKEN, 0 doesn\'t work','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',161,161,'org.apache.catalina.nonblocking.TestNonBlockingAPI','getProtocol()',NULL),(14308,'Strip query string first (doing it this way makes the logic a lot\nsimpler)','Line','java/org/apache/catalina/connector/Response.java',1657,1658,'org.apache.catalina.connector.Response','normalize(CharChunk)',NULL),(14309,'Strip query string and/or fragment first as doing it this way makes\nthe normalization logic a lot simpler','Line','java/org/apache/catalina/connector/Response.java',1658,1659,'org.apache.catalina.connector.Response','normalize(CharChunk)',NULL),(14310,'Ignore. Probably triggered by a call to stop().\nIn the highly unlikely event it was a different trigger,\nsimply ignore it and continue.','Line','java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java',175,177,'org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor','run()',NULL),(14311,'Ignore. Probably triggered by a call to stopHeartbeat().\nIn the highly unlikely event it was a different trigger,\nsimply ignore it and continue.','Line','java/org/apache/catalina/tribes/group/GroupChannel.java',692,694,'org.apache.catalina.tribes.group.GroupChannel','run()',NULL),(14312,'None','None','java/org/apache/catalina/tribes/io/BufferPool.java',-1,-1,'None','None',NULL),(14313,'This seems wrong but it is what the spec says...','Line','java/org/apache/catalina/mapper/Mapper.java',1040,1040,'org.apache.catalina.mapper.Mapper','setDefaultHostName(String)',NULL),(14314,'Takes ~1s on markt\'s laptop. If this takes more than 4s something\nprobably needs looking at. If this fails repeatedly then we may need\nto increase this limit.','Line','test/org/apache/tomcat/util/http/mapper/TestMapper.java',168,170,'org.apache.tomcat.util.http.mapper.TestMapper','testPerformance()',NULL),(14315,'Takes ~1s on markt\'s laptop. If this takes more than 4s something\nprobably needs looking at. If this fails repeatedly then we may need\nto increase this limit.','Line','test/org/apache/catalina/mapper/TestMapper.java',168,170,'org.apache.catalina.mapper.TestMapper','testPerformance()',NULL),(14316,'XXX Unused\nXXX Unused','Line','java/org/apache/coyote/ajp/Constants.java',39,40,'org.apache.coyote.ajp.Constants','None',NULL),(14317,'XXX XXX Need to construct Locale or something else','Line','java/org/apache/coyote/Response.java',346,346,'org.apache.coyote.Response','getRequest()','NOT_DESIGN'),(14318,'None','None','java/org/apache/coyote/Response.java',-1,-1,'None','None',NULL),(14319,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/DigestAuthenticator.java',450,450,'org.apache.catalina.authenticator.DigestAuthenticator','getCnonceCacheSize()',NULL),(14320,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/DigestAuthenticator.java',459,459,'org.apache.catalina.authenticator.DigestAuthenticator','getNonceCacheSize()',NULL),(14321,'FIXME: Improve parsing to check for CRLF','Line','java/org/apache/coyote/http11/filters/ChunkedInputFilter.java',309,309,'org.apache.coyote.http11.filters.ChunkedInputFilter','parseChunkHeader()','NOT_DESIGN'),(14322,'None','None','java/org/apache/coyote/http11/filters/ChunkedInputFilter.java',-1,-1,'None','None',NULL),(14323,'Socket was probably closed before client had a chance to read\nresponse','Line','test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java',141,142,'org.apache.coyote.http11.filters.TestChunkedInputFilter','testChunkHeaderCRLF()',NULL),(14324,'Process a STOP directly','Line','java/org/apache/coyote/http11/Http11AprProtocol.java',301,301,'org.apache.coyote.http11.Http11AprProtocol','longPoll(SocketWrapper<Long>, Processor<Long>)',NULL),(14325,'None','None','java/org/apache/tomcat/spdy/SpdyStream.java',-1,-1,'None','None',NULL),(14326,'TODO : Investigate if it is possible to extract the current list of\navailable ciphers. Native code changes will be required.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',354,355,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(14327,'Saves a call to getClassLoader() on very request. Under high load these\ncalls took just long enough to appear as a hot spot (although a very\nminor one) in a profiler.','Line','java/org/apache/catalina/core/StandardHostValve.java',63,65,'org.apache.catalina.core.StandardHostValve','None',NULL),(14328,'TODO - Make this configurable','Line','java/org/apache/catalina/valves/AccessLogValve.java',973,973,'org.apache.catalina.valves.AccessLogValve','getFormatInternal(long)',NULL),(14329,'TODO - Make this configurable','Line','java/org/apache/catalina/valves/AccessLogValve.java',950,950,'org.apache.catalina.valves.AccessLogValve','getFormatInternal(long)','NOT_DESIGN'),(14330,'TODO Remove this method entirely','Line','java/org/apache/catalina/core/StandardContext.java',1406,1406,'org.apache.catalina.core.StandardContext','getSendRedirectBody()','DESIGN'),(14331,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',142,142,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','readSocket(boolean, byte[], int, int)',NULL),(14332,'here we can issue a non blocking read\nif supported\nTODO SERVLET 3.1','Line','java/org/apache/catalina/connector/InputBuffer.java',272,274,'org.apache.catalina.connector.InputBuffer','dataAvailable()','NOT_DESIGN'),(14333,'None','None','java/org/apache/catalina/connector/InputBuffer.java',-1,-1,'None','None',NULL),(14334,'XXX\nisn\'t this really an IllegalArgumentException?','Line','java/javax/servlet/http/HttpServlet.java',849,850,'javax.servlet.http.NoBodyOutputStream','write(byte[], int, int)','DESIGN'),(14335,'None','None','java/javax/servlet/http/HttpServlet.java',-1,-1,'None','None',NULL),(14336,'TODO SERVLET 3.1','Line','java/javax/servlet/http/HttpServlet.java',866,866,'javax.servlet.http.NoBodyOutputStream','canWrite()',NULL),(14337,'TODO SERVLET 3.1','Line','java/javax/servlet/http/HttpServlet.java',872,872,'javax.servlet.http.NoBodyOutputStream','setWriteListener(javax.servlet.WriteListener)',NULL),(14338,'TODO','Line','java/javax/net/websocket/ContainerProvider.java',22,22,'javax.net.websocket.ContainerProvider','getServerContainer()',NULL),(14339,'TODO','Line','java/javax/net/websocket/ContainerProvider.java',27,27,'javax.net.websocket.ContainerProvider','getClientContainer()',NULL),(14340,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',75,75,'javax.net.websocket.DefaultServerConfiguration','getNegotiatedSubprotocol(List<String>)',NULL),(14341,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',83,83,'javax.net.websocket.DefaultServerConfiguration','getNegotiatedExtensions(List<Extension>)',NULL),(14342,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',89,89,'javax.net.websocket.DefaultServerConfiguration','checkOrigin(String)',NULL),(14343,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',101,101,'javax.net.websocket.DefaultServerConfiguration','modifyHandshake(HandshakeRequest, HandshakeResponse)',NULL),(14344,'FIXME - These need accessors','Line','java/javax/net/websocket/CloseReason.java',23,23,'javax.net.websocket.CloseReason','getCode()','NOT_DESIGN'),(14345,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',24,24,'javax.net.websocket.extensions.FrameBuilder','getBuilder()',NULL),(14346,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',29,29,'javax.net.websocket.extensions.FrameBuilder','createTextFrame(String)',NULL),(14347,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',35,35,'javax.net.websocket.extensions.FrameBuilder','createTextContinuationFrame(String, boolean)',NULL),(14348,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',40,40,'javax.net.websocket.extensions.FrameBuilder','createBinaryFrame(ByteBuffer)',NULL),(14349,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',46,46,'javax.net.websocket.extensions.FrameBuilder','createBinaryContinuationFrame(ByteBuffer, boolean)',NULL),(14350,'None','None','java/org/apache/tomcat/util/bcel/classfile/Utility.java',-1,-1,'None','None',NULL),(14351,'Guess what this does','Line','java/org/apache/tomcat/util/bcel/classfile/Utility.java',391,391,'org.apache.tomcat.util.bcel.classfile.Utility','unwrap(ThreadLocal<Integer>)','NOT_DESIGN'),(14352,'checkcast\ninstanceof','Block','java/org/apache/tomcat/util/bcel/Constants.java',358,359,'org.apache.tomcat.util.bcel.Constants','None','NOT_DESIGN'),(14353,'instanceof\nmonitorenter','Block','java/org/apache/tomcat/util/bcel/Constants.java',432,433,'org.apache.tomcat.util.bcel.Constants','None','NOT_DESIGN'),(14354,'FIXME: Add attributes','Line','java/org/apache/catalina/servlets/DefaultServlet.java',546,546,'org.apache.catalina.servlets.DefaultServlet','destroy()','NOT_DESIGN'),(14355,'None','None','java/org/apache/catalina/servlets/DefaultServlet.java',-1,-1,'None','None',NULL),(14356,'Note : There should be only one (of course), but I think we should\nkeep this a bit generic','Line','java/org/apache/catalina/loader/WebappClassLoader.java',845,846,'org.apache.catalina.loader.WebappClassLoader','addRepository(String, File)',NULL),(14357,'Note : There should be only one (of course), but I think we should\nkeep this a bit generic','Line','java/org/apache/catalina/loader/WebappClassLoader.java',752,753,'org.apache.catalina.loader.WebappClassLoader','setRepository(String, File)',NULL),(14358,'Give up, no changes are made to the current cache','Line','java/org/apache/naming/resources/ResourceCache.java',188,188,'org.apache.naming.resources.ResourceCache','allocate(int)',NULL),(14359,'Hack required by Eclipse\'s \\\"serve modules without\npublishing\\\" feature since this backs WEB-INF/classes by\nmultiple locations rather than one.','Line','java/org/apache/catalina/startup/ContextConfig.java',1184,1186,'org.apache.catalina.startup.ContextConfig','addJarsToSkip(String)','DESIGN'),(14360,'Step 4. Process /WEB-INF/classes for annotations','Line','java/org/apache/catalina/startup/ContextConfig.java',1175,1175,'org.apache.catalina.startup.ContextConfig','addJarsToSkip(String)',NULL),(14361,'TODO Should some resources be excluded from caching?','Line','java/org/apache/catalina/webresources/Cache.java',60,60,'org.apache.catalina.webresources.Cache','getResource(String)','DESIGN'),(14362,'Process resources unordered for speed. Trades cache\nefficiency (younger entries may be evicted before older\nones) for speed since this is on the critical path for\nrequest processing','Line','java/org/apache/catalina/webresources/Cache.java',93,96,'org.apache.catalina.webresources.Cache','getResource(String)',NULL),(14363,'Oldest resource should be first (so iterator goes from oldest to\nyoungest.','Line','java/org/apache/catalina/webresources/Cache.java',210,211,'org.apache.catalina.webresources.Cache','compare(CachedResource, CachedResource)',NULL),(14364,'A potential future enhancement is to allow writing to any ResourceSet,\nnot just the main ResourceSet although that adds all sorts complications\nincluding:\n- which ResourceSet to write to\n- unexpected behaviour when deleting a resource from one ResourceSet since\nthat may unmask a resource in a lower priority ResouceSet so what was a\ndelete looks like a replace with the user having no idea where the \'new\'\nresource came from\n- how to handle PUT when the target is read-only but it could be written to\na higher priority ResourceSet that is read-write','Block','java/org/apache/catalina/WebResourceRoot.java',72,83,'None','None',NULL),(14365,'Bug 45403 - Check that the resource is readable','Line','java/org/apache/catalina/loader/WebappLoader.java',767,767,'org.apache.catalina.loader.WebappLoader','getClassLoader()',NULL),(14366,'Case sensitivity check\nNote: We know the resource is located somewhere under base at\npoint. The purpose of this code is to check in a case\nsensitive manner, the path to the resource under base\nagrees with what was requested','Line','java/org/apache/catalina/webresources/AbstractFileResourceSet.java',61,65,'org.apache.catalina.webresources.AbstractFileResourceSet','file(String, boolean)',NULL),(14367,'Ok, no setXXX found, try a setProperty(\\\"name\\\", \\\"value\\\")','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/naming/GenericNamingResourcesFactory.java',168,168,'org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory','setProperty(Object, String, String, boolean)',NULL),(14368,'Ok, no setXXX found, try a setProperty(\\\"name\\\", \\\"value\\\")','Line','modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/naming/GenericNamingResourcesFactory.java',169,169,'org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory','setProperty(Object, String, String)',NULL),(14369,'TODO: Extract common code from this test and TestOut.java','Line','test/org/apache/jasper/tagplugins/jstl/core/TestSet.java',40,40,'org.apache.jasper.tagplugins.jstl.core.TestSet','toFix()','DESIGN'),(14370,'None','None','test/org/apache/jasper/tagplugins/jstl/core/TestSet.java',-1,-1,'None','None',NULL),(14371,'Move to beginning','Line','java/org/apache/catalina/deploy/WebXml.java',2133,2133,'org.apache.catalina.deploy.WebXml','orderWebFragments(WebXml, Map<String, WebXml>)','NOT_DESIGN'),(14372,'Stage 1. Make all dependencies bi-directional - this makes the\nnext stage simpler.','Line','java/org/apache/catalina/deploy/WebXml.java',2123,2124,'org.apache.catalina.deploy.WebXml','orderWebFragments(WebXml, Map<String, WebXml>)',NULL),(14373,'Variation on bug 54068','Line','test/org/apache/catalina/deploy/TestWebXmlOrdering.java',323,323,'org.apache.catalina.deploy.TestWebXmlOrdering','testOrderWebFragmentsRelative9()',NULL),(14374,'Variation on bug 54068','Line','test/org/apache/catalina/deploy/TestWebXmlOrdering.java',329,329,'org.apache.catalina.deploy.TestWebXmlOrdering','testOrderWebFragmentsRelative10()',NULL),(14375,'Workaround for Adobe Read 9 plug-in on IE bug\nCan be removed after 26 June 2013 (EOL of Reader 9)\nSee BZ 53814','Line','java/org/apache/tomcat/util/http/parser/HttpParser2.java',237,239,'org.apache.tomcat.util.http.parser.HttpParser2','parseMediaType(StringReader)',NULL),(14376,'Workaround for Adobe Read 9 plug-in on IE bug\nCan be removed after 26 June 2013 (EOL of Reader 9)\nSee BZ 53814','Line','java/org/apache/tomcat/util/http/parser/MediaType.java',80,82,'org.apache.tomcat.util.http.parser.MediaType','toString()',NULL),(14377,'Workaround for Adobe Read 9 plug-in on IE bug\nCan be removed after 26 June 2013 (EOL of Reader 9)\nSee BZ 53814','Line','java/org/apache/tomcat/util/http/parser/MediaType.java',109,111,'org.apache.tomcat.util.http.parser.MediaType','toStringNoCharset()',NULL),(14378,'Neither params nor methodParams can be null\nwhen comparing their lengths','Line','java/org/apache/tomcat/util/IntrospectionUtils.java',313,314,'org.apache.tomcat.util.IntrospectionUtils','findMethod(Class<?>, String, Class<?>[])',NULL),(14379,'TODO Remove this once implemented','Line','java/javax/net/websocket/extensions/FrameBuilder.java',28,28,'javax.net.websocket.extensions.FrameBuilder','createTextFrame(String)',NULL),(14380,'TODO Remove this once implemented','Line','java/javax/net/websocket/extensions/FrameBuilder.java',34,34,'javax.net.websocket.extensions.FrameBuilder','createTextContinuationFrame(String, boolean)',NULL),(14381,'TODO Remove this once implemented','Line','java/javax/net/websocket/extensions/FrameBuilder.java',41,41,'javax.net.websocket.extensions.FrameBuilder','createBinaryFrame(ByteBuffer)',NULL),(14382,'TODO Remove this once implemented','Line','java/javax/net/websocket/extensions/FrameBuilder.java',47,47,'javax.net.websocket.extensions.FrameBuilder','createBinaryContinuationFrame(ByteBuffer, boolean)',NULL),(14383,'TODO Remove this once implemented','Line','java/javax/net/websocket/DefaultServerConfiguration.java',27,27,'javax.net.websocket.DefaultServerConfiguration','None',NULL),(14384,'TODO','Line','java/javax/websocket/ContainerProvider.java',22,22,'javax.websocket.ContainerProvider','getServerContainer()',NULL),(14385,'TODO','Line','java/javax/websocket/ContainerProvider.java',27,27,'javax.websocket.ContainerProvider','getClientContainer()','NOT_DESIGN'),(14386,'TODO Remove this once implemented','Line','java/javax/websocket/DefaultServerConfiguration.java',25,25,'javax.websocket.DefaultServerConfiguration','None',NULL),(14387,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',77,77,'javax.net.websocket.DefaultServerConfiguration','getNegotiatedSubprotocol(List<String>)',NULL),(14388,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',80,80,'javax.websocket.DefaultServerConfiguration','getNegotiatedSubprotocol(List<String>)',NULL),(14389,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',85,85,'javax.net.websocket.DefaultServerConfiguration','getNegotiatedExtensions(List<Extension>)','NOT_DESIGN'),(14390,'None','None','java/javax/websocket/DefaultServerConfiguration.java',-1,-1,'None','None',NULL),(14391,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',91,91,'javax.net.websocket.DefaultServerConfiguration','checkOrigin(String)',NULL),(14392,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',94,94,'javax.websocket.DefaultServerConfiguration','checkOrigin(String)','NOT_DESIGN'),(14393,'TODO','Line','java/javax/net/websocket/DefaultServerConfiguration.java',103,103,'javax.net.websocket.DefaultServerConfiguration','modifyHandshake(HandshakeRequest, HandshakeResponse)',NULL),(14394,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',107,107,'javax.websocket.DefaultServerConfiguration','modifyHandshake(HandshakeRequest, HandshakeResponse)',NULL),(14395,'None','None','java/javax/websocket/CloseReason.java',-1,-1,'None','None',NULL),(14396,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',30,30,'javax.net.websocket.extensions.FrameBuilder','createTextFrame(String)',NULL),(14397,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',37,37,'javax.net.websocket.extensions.FrameBuilder','createTextContinuationFrame(String, boolean)',NULL),(14398,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',43,43,'javax.net.websocket.extensions.FrameBuilder','createBinaryFrame(ByteBuffer)',NULL),(14399,'TODO','Line','java/javax/net/websocket/extensions/FrameBuilder.java',50,50,'javax.net.websocket.extensions.FrameBuilder','createBinaryContinuationFrame(ByteBuffer, boolean)',NULL),(14400,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',100,100,'javax.websocket.DefaultServerConfiguration','matchesURI(URI)','NOT_DESIGN'),(14401,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',96,96,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapper<S>, UpgradeInbound)',NULL),(14402,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',97,97,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapper<S>, ProtocolHandler)',NULL),(14403,'TODO Handle read/write ready for non-blocking IO','Line','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',85,85,'org.apache.coyote.http11.upgrade.UpgradeProcessor','getInputStream()',NULL),(14404,'TODO Support non-blocking IO','Line','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',158,158,'org.apache.coyote.http11.upgrade.UpgradeProcessor','getInputStream()',NULL),(14405,'TODO Support non-blocking IO','Line','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',209,209,'org.apache.coyote.http11.upgrade.UpgradeProcessor','canWrite()',NULL),(14406,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',144,144,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','readSocket(boolean, byte[], int, int)','NOT_DESIGN'),(14407,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioProcessor.java',102,102,'org.apache.coyote.http11.upgrade.UpgradeNioProcessor','doRead()',NULL),(14408,'TODO User defined extensions may define values for rsv','Line','java/org/apache/catalina/websocket/StreamInbound.java',120,120,'org.apache.catalina.websocket.StreamInbound','onData()',NULL),(14409,'TODO User defined extensions may define values for rsv','Line','java/org/apache/catalina/websocket/StreamHandler.java',80,80,'org.apache.catalina.websocket.StreamHandler','onData()',NULL),(14410,'Small hack until the Servlet API provides a way to do this.','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',124,124,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)','DESIGN'),(14411,'TODO Must block????','Line','java/org/apache/catalina/websocket/WsInputStream.java',111,111,'org.apache.catalina.websocket.WsInputStream','read(byte[], int, int)',NULL),(14412,'TODO Must block ????','Line','java/org/apache/catalina/websocket/WsFrame.java',165,165,'org.apache.catalina.websocket.WsFrame','blockingRead(InputStream, byte[])',NULL),(14413,'TODO Must block ?????','Line','java/org/apache/catalina/websocket/WsFrame.java',214,214,'org.apache.catalina.websocket.WsFrame','nextFrame(InputStream, boolean)',NULL),(14414,'TODO','Line','java/org/apache/catalina/websocket/StreamHandler.java',115,115,'org.apache.catalina.websocket.StreamHandler','onData()',NULL),(14415,'TODO Make these buffer sizes configurable via the constructor','Line','java/org/apache/catalina/websocket/StreamHandler.java',196,196,'org.apache.catalina.websocket.StreamHandler','init(WebConnection)',NULL),(14416,'TODO i18n','Line','java/org/apache/catalina/websocket/StreamHandler.java',202,202,'org.apache.catalina.websocket.StreamHandler','init(WebConnection)',NULL),(14417,'Should never reach this code but in case we do...\nTODO','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1553,1554,'org.apache.coyote.http11.AbstractHttp11Processor','upgradeDispatch()',NULL),(14418,'TODO','Line','test/org/apache/coyote/http11/upgrade/TestUpgradeServletInputStream.java',101,101,'org.apache.coyote.http11.upgrade.TestUpgradeServletInputStream','init(WebConnection)','NOT_DESIGN'),(14419,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/NioUpgradeServletInputStream.java',90,90,'org.apache.coyote.http11.upgrade.NioUpgradeServletInputStream','readSocket(boolean, byte[], int, int)',NULL),(14420,'TODO Auto-generated method stub','Line','test/org/apache/coyote/http11/upgrade/TestUpgradeServletInputStream.java',206,206,'org.apache.coyote.http11.upgrade.TestUpgradeServletInputStream','onError(Throwable)',NULL),(14421,'TODO Auto-generated method stub','Line','test/org/apache/coyote/http11/upgrade/TestUpgradeServletInputStream.java',215,215,'org.apache.coyote.http11.upgrade.TestUpgradeServletInputStream','onWritePossible()',NULL),(14422,'TODO Handle read/write ready for non-blocking IO','Line','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',86,86,'org.apache.coyote.http11.upgrade.UpgradeProcessor','getInputStream()','DESIGN'),(14423,'Unexpected state','Line','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',90,90,'org.apache.coyote.http11.upgrade.UpgradeProcessor','getInputStream()',NULL),(14424,'TODO Support non-blocking IO','Line','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',159,159,'org.apache.coyote.http11.upgrade.UpgradeProcessor','getInputStream()','NOT_DESIGN'),(14425,'None','None','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',-1,-1,'None','None',NULL),(14426,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/NioUpgradeServletInputStream.java',109,109,'org.apache.coyote.http11.upgrade.NioUpgradeServletInputStream','readSocket(boolean, byte[], int, int)',NULL),(14427,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',51,51,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','setReadListener(ReadListener)',NULL),(14428,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',62,62,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','read()',NULL),(14429,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioServletInputStream.java',90,90,'org.apache.coyote.http11.upgrade.UpgradeNioServletInputStream','readSocket(boolean, byte[], int, int)',NULL),(14430,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioServletInputStream.java',109,109,'org.apache.coyote.http11.upgrade.UpgradeNioServletInputStream','readSocket(boolean, byte[], int, int)',NULL),(14431,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',58,58,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','setReadListener(ReadListener)','NOT_DESIGN'),(14432,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioServletInputStream.java',78,78,'org.apache.coyote.http11.upgrade.UpgradeNioServletInputStream','doRead(boolean, byte[], int, int)',NULL),(14433,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeNioServletInputStream.java',97,97,'org.apache.coyote.http11.upgrade.UpgradeNioServletInputStream','doRead(boolean, byte[], int, int)',NULL),(14434,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java',49,49,'org.apache.coyote.http11.upgrade.UpgradeServletOutputStream','setWriteListener(WriteListener)',NULL),(14435,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java',75,75,'org.apache.coyote.http11.upgrade.UpgradeServletOutputStream','preWriteChecks()',NULL),(14436,'TODO: - Reuse the buffer\n- Only reallocate if it gets too big (>8k?)','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java',91,92,'org.apache.coyote.http11.upgrade.UpgradeServletOutputStream','writeInternal(byte[], int, int)',NULL),(14437,'TODO Support non-blocking IO','Line','java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java',165,165,'org.apache.coyote.http11.upgrade.UpgradeProcessor','canWrite()','NOT_DESIGN'),(14438,'The only way to finish an HTTP Upgrade connection is to close the\nsocket.','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',33,34,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','isFinished()',NULL),(14439,'None','None','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',-1,-1,'None','None',NULL),(14440,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',105,105,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','preReadChecks()','NOT_DESIGN'),(14441,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java',38,38,'org.apache.coyote.http11.upgrade.UpgradeServletOutputStream','setWriteListener(WriteListener)','NOT_DESIGN'),(14442,'None','None','java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java',-1,-1,'None','None',NULL),(14443,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java',62,62,'org.apache.coyote.http11.upgrade.UpgradeServletOutputStream','preWriteChecks()','NOT_DESIGN'),(14444,'TODO: - Reuse the buffer\n- Only reallocate if it gets too big (>8k?)','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java',87,88,'org.apache.coyote.http11.upgrade.UpgradeServletOutputStream','writeInternal(byte[], int, int)',NULL),(14445,'TODO: - Reuse the buffer\n- Only reallocate if it gets too big (>8k?)','Line','java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java',87,88,'org.apache.coyote.http11.upgrade.AbstractServletOutputStream','writeInternal(byte[], int, int)',NULL),(14446,'The only way to finish an HTTP Upgrade connection is to close the\nsocket.','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',43,44,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','isFinished()',NULL),(14447,'The only way to finish an HTTP Upgrade connection is to close the\nsocket.','Line','java/org/apache/coyote/http11/upgrade/AbstractServletInputStream.java',43,44,'org.apache.coyote.http11.upgrade.AbstractServletInputStream','isFinished()',NULL),(14448,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/NioServletInputStream.java',78,78,'org.apache.coyote.http11.upgrade.NioServletInputStream','doRead(boolean, byte[], int, int)',NULL),(14449,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/NioServletInputStream.java',97,97,'org.apache.coyote.http11.upgrade.NioServletInputStream','doRead(boolean, byte[], int, int)',NULL),(14450,'TODO SecurityManager','Line','java/javax/websocket/ContainerProvider.java',28,28,'javax.websocket.ContainerProvider','getServerContainer()','NOT_DESIGN'),(14451,'None','None','java/javax/websocket/ContainerProvider.java',-1,-1,'None','None',NULL),(14452,'TODO SecurityManager','Line','java/org/apache/websocket/ServerContainerImpl.java',41,41,'org.apache.websocket.ServerContainerImpl','getServerContainer()',NULL),(14453,'TODO Replace following debug code with something useful.','Line','java/org/apache/websocket/ServerContainerImpl.java',84,84,'org.apache.websocket.ServerContainerImpl','publishServer(Class<? extends Endpoint>)',NULL),(14454,'TODO i18n','Line','java/org/apache/websocket/ServerContainerImpl.java',88,88,'org.apache.websocket.ServerContainerImpl','publishServer(Class<? extends Endpoint>)',NULL),(14455,'TODO Replace following debug code with something useful.','Line','java/org/apache/websocket/ServerContainerImpl.java',95,95,'org.apache.websocket.ServerContainerImpl','publishServer(Class<?>, String)',NULL),(14456,'TODO SecurityManager','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',41,41,'org.apache.tomcat.websocket.ServerContainerImpl','getServerContainer()',NULL),(14457,'TODO Replace following debug code with something useful.','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',84,84,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<? extends Endpoint>)',NULL),(14458,'TODO i18n','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',88,88,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<? extends Endpoint>)',NULL),(14459,'TODO Replace following debug code with something useful.','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',95,95,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<?>, String)',NULL),(14460,'Note: No special handling required when running under a\nSecurityManager as the caller and this class will have the same\nClassLoader','Line','java/javax/websocket/ContainerProvider.java',36,38,'javax.websocket.ContainerProvider','getServerContainer()',NULL),(14461,'TODO SecurityManager','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',51,51,'org.apache.tomcat.websocket.ServerContainerImpl','getServerContainer()','NOT_DESIGN'),(14462,'None','None','java/org/apache/tomcat/websocket/ServerContainerImpl.java',-1,-1,'None','None',NULL),(14463,'TODO i18n','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',81,81,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<? extends Endpoint>)','NOT_DESIGN'),(14464,'TODO Replace following debug code with something useful.','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',82,82,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<? extends Endpoint>)','DESIGN'),(14465,'TODO Replace following debug code with something useful.','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',101,101,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<?>, String)','DESIGN'),(14466,'Set the ServletContext if it hasn\'t already been set','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',133,133,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<?>, ServletContext, String)',NULL),(14467,'Should never happen','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',137,137,'org.apache.tomcat.websocket.ServerContainerImpl','publishServer(Class<?>, ServletContext, String)',NULL),(14468,'TODO - Find these','Line','java/org/apache/tomcat/websocket/WsEndpointPojo.java',41,41,'org.apache.tomcat.websocket.WsEndpointPojo','getEndpointConfiguration()',NULL),(14469,'TODO Message handling','Line','java/org/apache/tomcat/websocket/WsProtocolHandler.java',36,36,'org.apache.tomcat.websocket.WsProtocolHandler','init(WebConnection)',NULL),(14470,'TODO - Review this debug hack','Line','webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java',44,44,'websocket.echo.EchoEndpoint','onOpen(Session)','NOT_DESIGN'),(14471,'TODO - Don\'t want to have to do this on every connection','Line','java/org/apache/tomcat/websocket/WsEndpointPojo.java',51,51,'org.apache.tomcat.websocket.WsEndpointPojo','getEndpointConfiguration()','DESIGN'),(14472,'This is the same as testAcceptProtectedBasic (above), except\nusing white space around the username credential.\n\nThe request is rejected with 401 SC_UNAUTHORIZED status.\n\nTODO: RFC2617 does not define the separation syntax between the\nauth-scheme and basic-credentials tokens. Tomcat should tolerate\nany reasonable amount of white space and return SC_OK.','Block','test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java',211,220,'org.apache.catalina.authenticator.TestNonLoginAndBasicAuthenticator','testAcceptPublicNonLogin()',NULL),(14473,'This is the same as testAcceptProtectedBasic (above), except\nusing white space around the password credential.\n\nThe request is rejected with 401 SC_UNAUTHORIZED status.\n\nTODO: RFC2617 does not define the separation syntax between the\nauth-scheme and basic-credentials tokens. Tomcat should tolerate\nany reasonable amount of white space and return SC_OK.','Block','test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java',229,238,'org.apache.catalina.authenticator.TestNonLoginAndBasicAuthenticator','testAcceptPublicNonLogin()',NULL),(14474,'None','None','java/org/apache/tomcat/websocket/WsEndpointPojo.java',-1,-1,'None','None',NULL),(14475,'TODO Insert the session into the method args','Line','java/org/apache/tomcat/websocket/WsEndpointPojo.java',80,80,'org.apache.tomcat.websocket.WsEndpointPojo','onOpen(Session)','DESIGN'),(14476,'TODO Insert throwable','Line','java/org/apache/tomcat/websocket/WsEndpointPojo.java',109,109,'org.apache.tomcat.websocket.WsEndpointPojo','onError(Throwable)','NOT_DESIGN'),(14477,'TODO Need to cache the pojoMethodMapping too','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',177,177,'org.apache.tomcat.websocket.ServerContainerImpl','getEndpoint(String)',NULL),(14478,'TODO Need to cache the pojoMethodMapping too','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',181,181,'org.apache.tomcat.websocket.ServerContainerImpl','getEndpoint(String)',NULL),(14479,'TODO','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',195,195,'org.apache.tomcat.websocket.PojoMethodMapping','coerceToType(Class<?>, String)',NULL),(14480,'TODO Message handling','Line','java/org/apache/tomcat/websocket/WsProtocolHandler.java',39,39,'org.apache.tomcat.websocket.WsProtocolHandler','init(WebConnection)','NOT_DESIGN'),(14481,'None','None','java/org/apache/tomcat/websocket/WsProtocolHandler.java',-1,-1,'None','None',NULL),(14482,'None','None','webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java',-1,-1,'None','None',NULL),(14483,'TODO Check if partial messages supported','Line','java/org/apache/tomcat/websocket/WsFrame.java',160,160,'org.apache.tomcat.websocket.WsFrame','processData()',NULL),(14484,'TODO Handle incoming data properly','Line','java/org/apache/tomcat/websocket/WsFrame.java',171,171,'org.apache.tomcat.websocket.WsFrame','processData()',NULL),(14485,'if someone would change the limit in process,\nhe would face consequences','Line','java/org/apache/tomcat/websocket/Utf8Decoder.java',150,151,'org.apache.catalina.websocket.Utf8Decoder','decodeHasArray(ByteBuffer, CharBuffer)',NULL),(14486,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',39,39,'javax.websocket.DefaultServerConfiguration','getEndpointFactory()','NOT_DESIGN'),(14487,'TODO Need to cache the pojoMethodMapping too','Line','java/org/apache/tomcat/websocket/ServerContainerImpl.java',186,186,'org.apache.tomcat.websocket.ServerContainerImpl','getEndpoint(String, String)','NOT_DESIGN'),(14488,'TODO Use factory from annotation if present','Line','java/org/apache/tomcat/websocket/WsEndpointPojo.java',40,40,'org.apache.tomcat.websocket.WsEndpointPojo','onOpen(Session)',NULL),(14489,'TODO\nValidate the PONG?','Line','java/org/apache/tomcat/websocket/WsFrame.java',178,179,'org.apache.tomcat.websocket.WsFrame','processData()','DESIGN'),(14490,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsFrame.java',181,181,'org.apache.tomcat.websocket.WsFrame','processData()',NULL),(14491,'TODO Handle partial payloads','Line','java/org/apache/tomcat/websocket/WsFrame.java',225,225,'org.apache.tomcat.websocket.WsFrame','getPayload()','NOT_DESIGN'),(14492,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsSession.java',61,61,'org.apache.tomcat.websocket.WsSession','getContainer()',NULL),(14493,'TODO Ignore? ISE?','Line','java/org/apache/tomcat/websocket/WsSession.java',108,108,'org.apache.tomcat.websocket.WsSession','getContainer()',NULL),(14494,'TODO Send the close message to the remote endpoint','Line','java/org/apache/tomcat/websocket/WsSession.java',184,184,'org.apache.tomcat.websocket.WsSession','getContainer()',NULL),(14495,'None','None','java/org/apache/tomcat/websocket/WsFrame.java',-1,-1,'None','None',NULL),(14496,'TODO Check if partial messages supported','Line','java/org/apache/tomcat/websocket/WsFrame.java',187,187,'org.apache.tomcat.websocket.WsFrame','processData()','NOT_DESIGN'),(14497,'TODO Handle incoming data properly','Line','java/org/apache/tomcat/websocket/WsFrame.java',198,198,'org.apache.tomcat.websocket.WsFrame','processData()','NOT_DESIGN'),(14498,'TODO','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',62,62,'org.apache.tomcat.websocket.PojoMethodMapping','getOnOpen()',NULL),(14499,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsFrame.java',120,120,'org.apache.tomcat.websocket.WsFrame','processInitialHeader()',NULL),(14500,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsSession.java',78,78,'org.apache.tomcat.websocket.WsSession','getContainer()',NULL),(14501,'TODO insert message and session into params','Line','java/org/apache/tomcat/websocket/PojoMessageHandlerBasic.java',35,35,'org.apache.tomcat.websocket.PojoMessageHandlerBasic','onMessage(T)',NULL),(14502,'TODO insert message, last and session into params','Line','java/org/apache/tomcat/websocket/PojoMessageHandlerAsync.java',35,35,'org.apache.tomcat.websocket.PojoMessageHandlerAsync','onMessage(T, boolean)',NULL),(14503,'TODO insert message, last and session into\nparams','Line','java/org/apache/tomcat/websocket/PojoMessageHandlerAsync.java',35,36,'org.apache.tomcat.websocket.PojoMessageHandlerAsync','onMessage(T, boolean)',NULL),(14504,'TODO i18n','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',251,251,'org.apache.tomcat.websocket.PojoMethodMapping','getMessageHandler(Object, String, Session)',NULL),(14505,'TODO: Remove this once sendXxx is implemented?','Line','java/org/apache/tomcat/websocket/PojoMessageHandlerBase.java',57,57,'org.apache.tomcat.websocket.PojoMessageHandlerBase','processResult(Object)',NULL),(14506,'TODO','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',40,40,'org.apache.tomcat.websocket.WsRemoteEndpoint','onWritePossible()','NOT_DESIGN'),(14507,'None','None','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',-1,-1,'None','None',NULL),(14508,'Another message is being sent using fragments\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',57,58,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendString(String)',NULL),(14509,'Another message is being sent using fragments\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',68,69,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendBytes(ByteBuffer)',NULL),(14510,'Can\'t write a text fragment in the middle of a binary message\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',81,82,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendPartialString(String, boolean)',NULL),(14511,'Can\'t write a binary fragment in the middle of a text message\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',107,108,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendPartialBytes(ByteBuffer, boolean)',NULL),(14512,'TODO: Something went wrong. Log an error.','Line','java/org/apache/tomcat/websocket/WsSession.java',316,316,'org.apache.tomcat.websocket.WsSession','getContainer()',NULL),(14513,'Never going to work\nTODO i18n - buffer too small','Line','java/org/apache/tomcat/websocket/WsFrame.java',316,317,'org.apache.tomcat.websocket.WsFrame','checkRoomPayload()',NULL),(14514,'TODO i18n','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',159,159,'org.apache.tomcat.websocket.PojoMethodMapping','getOnOpen()',NULL),(14515,'TODO','Line','java/org/apache/tomcat/websocket/WsProtocolHandler.java',114,114,'org.apache.tomcat.websocket.WsProtocolHandler','init(WebConnection)',NULL),(14516,'TODO Send the close message to the remote endpoint','Line','java/org/apache/tomcat/websocket/WsSession.java',209,209,'org.apache.tomcat.websocket.WsSession','getContainer()',NULL),(14517,'TODO Send the close message to the remote endpoint\n125 is maximum size for the payload of a control message','Line','java/org/apache/tomcat/websocket/WsSession.java',212,213,'org.apache.tomcat.websocket.WsSession','getContainer()',NULL),(14518,'Never going to work\nTODO i18n - buffer too small','Line','java/org/apache/tomcat/websocket/WsFrame.java',330,331,'org.apache.tomcat.websocket.WsFrame','checkRoomPayload()',NULL),(14519,'TODO i18n - buffer too small','Line','java/org/apache/tomcat/websocket/WsFrame.java',330,330,'org.apache.tomcat.websocket.WsFrame','checkRoomPayload()',NULL),(14520,'TODO Remove this once implemented','Line','java/javax/websocket/DefaultServerConfiguration.java',27,27,'javax.websocket.DefaultServerConfiguration','None','DESIGN'),(14521,'None','None','java/javax/websocket/server/DefaultServerConfiguration.java',-1,-1,'None','None',NULL),(14522,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',87,87,'javax.websocket.DefaultServerConfiguration','getNegotiatedSubprotocol(List<String>)',NULL),(14523,'TODO','Line','java/javax/websocket/server/DefaultServerConfiguration.java',93,93,'javax.websocket.server.DefaultServerConfiguration','getNegotiatedSubprotocol(List<String>)',NULL),(14524,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',106,106,'javax.websocket.DefaultServerConfiguration','matchesURI(URI)',NULL),(14525,'TODO','Line','java/javax/websocket/server/DefaultServerConfiguration.java',111,111,'javax.websocket.server.DefaultServerConfiguration','matchesURI(URI)',NULL),(14526,'TODO','Line','java/javax/websocket/DefaultServerConfiguration.java',113,113,'javax.websocket.DefaultServerConfiguration','modifyHandshake(HandshakeRequest, HandshakeResponse)',NULL),(14527,'TODO','Line','java/javax/websocket/server/DefaultServerConfiguration.java',118,118,'javax.websocket.server.DefaultServerConfiguration','modifyHandshake(HandshakeRequest, HandshakeResponse)',NULL),(14528,'TODO Use factory from annotation if present','Line','java/org/apache/tomcat/websocket/WsEndpointPojo.java',43,43,'org.apache.tomcat.websocket.WsEndpointPojo','onOpen(Session)','NOT_DESIGN'),(14529,'TODO','Line','java/org/apache/tomcat/websocket/WsServlet.java',100,100,'org.apache.tomcat.websocket.WsServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14530,'TODO','Line','java/org/apache/tomcat/websocket/WsProtocolHandler.java',122,122,'org.apache.tomcat.websocket.WsProtocolHandler','init(WebConnection)',NULL),(14531,'TODO Log?','Line','java/org/apache/tomcat/websocket/WsProtocolHandler.java',120,120,'org.apache.tomcat.websocket.WsProtocolHandler','init(WebConnection)',NULL),(14532,'TODO Extensions may use rsv bits','Line','java/org/apache/tomcat/websocket/WsFrame.java',127,127,'org.apache.tomcat.websocket.WsFrame','processInitialHeader()',NULL),(14533,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsFrame.java',145,145,'org.apache.tomcat.websocket.WsFrame','processInitialHeader()','NOT_DESIGN'),(14534,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsFrame.java',234,234,'org.apache.tomcat.websocket.WsFrame','processData()','NOT_DESIGN'),(14535,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsFrame.java',136,136,'org.apache.tomcat.websocket.WsFrame','processInitialHeader()','NOT_DESIGN'),(14536,'This should trigger an error but currently passes. Once the JVM is#\nfixed, s/false/true/','Line','test/org/apache/tomcat/websocket/TestUtf8.java',40,41,'org.apache.tomcat.websocket.TestUtf8','testJvmDecoder1()','DESIGN'),(14537,'This should trigger an error but currently passes. Once the JVM is\nfixed, s/false/true/ and s/20/13/','Line','test/org/apache/tomcat/websocket/TestUtf8.java',43,44,'org.apache.tomcat.websocket.TestUtf8','testJvmDecoder1()',NULL),(14538,'Ideally should fail after 2 bytes (i==1)','Line','test/org/apache/tomcat/websocket/TestUtf8.java',51,51,'org.apache.tomcat.websocket.TestUtf8','testJvmDecoder2()',NULL),(14539,'Ideally should fail after 2 bytes (i==1) but that makes the decoder\na lot more complex to write','Line','test/org/apache/tomcat/websocket/TestUtf8.java',92,93,'org.apache.tomcat.websocket.TestUtf8','testHarmonyDecoder2()','NOT_DESIGN'),(14540,'TODO i18n','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',166,166,'org.apache.tomcat.websocket.PojoMethodMapping','getMappingPath()',NULL),(14541,'TODO i18n','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',167,167,'org.apache.tomcat.websocket.PojoMethodMapping','getWsPath()',NULL),(14542,'TODO','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',224,224,'org.apache.tomcat.websocket.PojoMethodMapping','getMappingPath()',NULL),(14543,'TODO','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',225,225,'org.apache.tomcat.websocket.PojoMethodMapping','getWsPath()',NULL),(14544,'None','None','test/org/apache/tomcat/websocket/TestUtf8.java',-1,-1,'None','None',NULL),(14545,'Duplicate mapping. As per clarification from the Servlet EG,\ndeployment should fail.','Line','java/org/apache/catalina/deploy/WebXml.java',332,333,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14546,'TODO: interrupt poll ?','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',1246,1246,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','DESIGN'),(14547,'Event processes either a read or a write depending on what the poller returns','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',1671,1671,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(14548,'No explicit poller size limitation\nFIXME: Default to one per CPU ?','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',463,464,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','DESIGN'),(14549,'TODO i18n','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',168,168,'org.apache.tomcat.websocket.PojoMethodMapping','getWsPath()',NULL),(14550,'TODO i18n','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',168,168,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getWsPath()',NULL),(14551,'TODO','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',226,226,'org.apache.tomcat.websocket.PojoMethodMapping','getWsPath()',NULL),(14552,'TODO','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',226,226,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getWsPath()',NULL),(14553,'TODO i18n','Line','java/org/apache/tomcat/websocket/PojoMethodMapping.java',267,267,'org.apache.tomcat.websocket.PojoMethodMapping','getMessageHandler(Object, String, Session)',NULL),(14554,'TODO i18n','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',267,267,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getMessageHandler(Object, String, Session)',NULL),(14555,'TODO: Remove this once sendXxx is implemented?','Line','java/org/apache/tomcat/websocket/PojoMessageHandlerBase.java',62,62,'org.apache.tomcat.websocket.PojoMessageHandlerBase','processResult(Object)',NULL),(14556,'TODO: Remove this once sendXxx is implemented?','Line','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java',62,62,'org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase','processResult(Object)','DESIGN'),(14557,'TODO Log?','Line','java/org/apache/tomcat/websocket/server/WsProtocolHandler.java',125,125,'org.apache.tomcat.websocket.server.WsProtocolHandler','init(WebConnection)',NULL),(14558,'TODO','Line','java/org/apache/tomcat/websocket/server/WsServlet.java',101,101,'org.apache.tomcat.websocket.server.WsServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14559,'Another message is being sent using fragments\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',61,62,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendString(String)',NULL),(14560,'Another message is being sent using fragments\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',47,48,'org.apache.tomcat.websocket.WsRemoteEndpointBase','sendString(String)','DESIGN'),(14561,'Another message is being sent using fragments\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',72,73,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendBytes(ByteBuffer)',NULL),(14562,'Another message is being sent using fragments\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',58,59,'org.apache.tomcat.websocket.WsRemoteEndpointBase','sendBytes(ByteBuffer)','DESIGN'),(14563,'Can\'t write a text fragment in the middle of a binary message\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',85,86,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendPartialString(String, boolean)',NULL),(14564,'Can\'t write a text fragment in the middle of a binary message\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',71,72,'org.apache.tomcat.websocket.WsRemoteEndpointBase','sendPartialString(String, boolean)','NOT_DESIGN'),(14565,'Can\'t write a binary fragment in the middle of a text message\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpoint.java',117,118,'org.apache.tomcat.websocket.WsRemoteEndpoint','sendPartialBytes(ByteBuffer, boolean)',NULL),(14566,'Can\'t write a binary fragment in the middle of a text message\nTODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',103,104,'org.apache.tomcat.websocket.WsRemoteEndpointBase','sendPartialBytes(ByteBuffer, boolean)','NOT_DESIGN'),(14567,'TODO This needs to work for client and server side code','Line','java/org/apache/tomcat/websocket/WsFrame.java',86,86,'org.apache.tomcat.websocket.WsFrame','onDataAvailable()',NULL),(14568,'Temp hack until the above is resolved','Line','java/org/apache/tomcat/websocket/WsFrame.java',91,91,'org.apache.tomcat.websocket.WsFrame','onDataAvailable()',NULL),(14569,'Create HTTP connection\nTODO','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',44,45,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<? extends Endpoint>, ClientEndpointConfiguration, URI)',NULL),(14570,'Handshake\nTODO','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',47,48,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<? extends Endpoint>, ClientEndpointConfiguration, URI)','NOT_DESIGN'),(14571,'TODO','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',58,58,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<? extends Endpoint>, ClientEndpointConfiguration, URI)',NULL),(14572,'TODO This needs to work for client and server side code','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',84,84,'org.apache.tomcat.websocket.WsFrameBase','onDataAvailable()',NULL),(14573,'Temp hack until the above is resolved','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',89,89,'org.apache.tomcat.websocket.WsFrameBase','onDataAvailable()',NULL),(14574,'TODO Extensions may use rsv bits','Line','java/org/apache/tomcat/websocket/WsFrame.java',151,151,'org.apache.tomcat.websocket.WsFrame','processInitialHeader()',NULL),(14575,'TODO Extensions may use rsv bits','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',169,169,'org.apache.tomcat.websocket.WsFrameBase','processInitialHeader()',NULL),(14576,'TODO i18n - buffer too small','Line','java/org/apache/tomcat/websocket/WsFrame.java',510,510,'org.apache.tomcat.websocket.WsFrame','checkRoomPayload()',NULL),(14577,'TODO i18n - buffer too small','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',528,528,'org.apache.tomcat.websocket.WsFrameBase','checkRoomPayload()',NULL),(14578,'FIXME: Add flags if possible','Line','java/org/apache/catalina/valves/rewrite/RewriteRule.java',148,148,'org.apache.catalina.valves.rewrite.RewriteRule','parse(Map<String, RewriteMap>)',NULL),(14579,'FIXME: Output maps if possible','Line','java/org/apache/catalina/valves/rewrite/RewriteValve.java',199,199,'org.apache.catalina.valves.rewrite.RewriteValve','getConfiguration()',NULL),(14580,'FIXME: Proxy not supported, would require proxy capabilities in Tomcat','Line','java/org/apache/catalina/valves/rewrite/RewriteValve.java',702,702,'org.apache.catalina.valves.rewrite.RewriteValve','parseRuleFlag(String, RewriteRule, String)',NULL),(14581,'FIXME: Implement SSL environment variables','Line','java/org/apache/catalina/valves/rewrite/ResolverImpl.java',135,135,'org.apache.catalina.valves.rewrite.ResolverImpl','resolveSsl(String)',NULL),(14582,'FIXME: Add flags if possible','Line','java/org/apache/catalina/valves/rewrite/RewriteCond.java',151,151,'org.apache.catalina.valves.rewrite.RewriteCond','evaluate(String, Resolver)',NULL),(14583,'TODO Needs to be same size or smaller than WsFrame input buffer','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',123,123,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)','DESIGN'),(14584,'None','None','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',-1,-1,'None','None',NULL),(14585,'TODO This needs to work for client and server side code','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',82,82,'org.apache.tomcat.websocket.WsFrameBase','processInputBuffer()','DESIGN'),(14586,'Temp hack until the above is resolved','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',87,87,'org.apache.tomcat.websocket.WsFrameBase','processInputBuffer()','NOT_DESIGN'),(14587,'TODO Send the close message to the remote endpoint\n125 is maximum size for the payload of a control message','Line','java/org/apache/tomcat/websocket/WsSession.java',205,206,'org.apache.tomcat.websocket.WsSession','close(CloseReason)','DESIGN'),(14588,'125 is maximum size for the payload of a control message','Line','java/org/apache/tomcat/websocket/WsSession.java',206,206,'org.apache.tomcat.websocket.WsSession','close(CloseReason)',NULL),(14589,'TODO Auto-generated method stub','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',59,59,'org.apache.tomcat.websocket.WsRemoteEndpointBase','None',NULL),(14590,'TODO Auto-generated method stub','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',66,66,'org.apache.tomcat.websocket.WsRemoteEndpointBase','setBatchingAllowed(boolean)',NULL),(14591,'TODO Auto-generated method stub','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',73,73,'org.apache.tomcat.websocket.WsRemoteEndpointBase','setBatchingAllowed(boolean)',NULL),(14592,'None','None','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',-1,-1,'None','None',NULL),(14593,'TODO HTTPS support','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',92,92,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14594,'TODO Log invalid header','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',310,310,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14595,'TODO handle known multi-value headers','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',314,314,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14596,'TODO Log','Line','java/org/apache/tomcat/websocket/server/WsProtocolHandler.java',127,127,'org.apache.tomcat.websocket.server.WsProtocolHandler','init(WebConnection)','NOT_DESIGN'),(14597,'TODO Make the size of this conversion buffer configurable','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',47,47,'org.apache.tomcat.websocket.WsRemoteEndpointBase','None',NULL),(14598,'TODO Mask the data properly','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',246,246,'org.apache.tomcat.websocket.WsRemoteEndpointBase','setBatchingAllowed(boolean)',NULL),(14599,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',460,460,'org.apache.tomcat.websocket.WsRemoteEndpointBase','startMessage(byte, boolean)','NOT_DESIGN'),(14600,'None','None','java/org/apache/tomcat/websocket/server/WsProtocolHandler.java',-1,-1,'None','None',NULL),(14601,'TODO Log?','Line','java/org/apache/tomcat/websocket/server/WsProtocolHandler.java',137,137,'org.apache.tomcat.websocket.server.WsProtocolHandler','init(WebConnection)','DESIGN'),(14602,'XXX optimize - recycle, etc','Line','java/org/apache/tomcat/util/buf/UEncoder.java',134,134,'org.apache.tomcat.util.buf.UEncoder','encodeURL(String)','NOT_DESIGN'),(14603,'\\\"surrogate\\\" - UTF is _not_ 16 bit, but 21 !!!!\n( while UCS is 31 ). Amazing...','Line','java/org/apache/tomcat/util/buf/UEncoder.java',83,84,'org.apache.tomcat.util.buf.UEncoder','encodeURL(String, int, int)',NULL),(14604,'FIXME: See if unmappable/malformed behavior configuration is needed in practice','Line','java/org/apache/tomcat/util/buf/C2BConverter.java',52,52,'org.apache.tomcat.util.buf.C2BConverter','recycle()',NULL),(14605,'FIXME: See if unmappable/malformed behavior configuration is needed\nin practice','Line','java/org/apache/tomcat/util/buf/C2BConverter.java',42,43,'org.apache.tomcat.util.buf.C2BConverter','recycle()',NULL),(14606,'TODO i18n - buffer too small','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',496,496,'org.apache.tomcat.websocket.WsFrameBase','checkRoomPayload()','NOT_DESIGN'),(14607,'None','None','java/org/apache/tomcat/websocket/WsFrameBase.java',-1,-1,'None','None',NULL),(14608,'TODO','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',141,141,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14609,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',141,141,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)','NOT_DESIGN'),(14610,'Same size as the WsFrame input buffer','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',126,126,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14611,'Attributes of the current message\nTODO: May need a new ByteBuffer per message','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',53,54,'org.apache.tomcat.websocket.WsFrameBase','None','NOT_DESIGN'),(14612,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsSession.java',91,91,'org.apache.tomcat.websocket.WsSession','addMessageHandler(MessageHandler)','NOT_DESIGN'),(14613,'None','None','java/org/apache/tomcat/websocket/WsSession.java',-1,-1,'None','None',NULL),(14614,'TODO Ignore? ISE?','Line','java/org/apache/tomcat/websocket/WsSession.java',147,147,'org.apache.tomcat.websocket.WsSession','removeMessageHandler(MessageHandler)','DESIGN'),(14615,'ISE for now. Could swallow this silently / log this if the ISE\nbecomes a problem','Line','java/org/apache/tomcat/websocket/WsSession.java',153,154,'org.apache.tomcat.websocket.WsSession','removeMessageHandler(MessageHandler)',NULL),(14616,'Unused due to buggy client implementations','Line','java/org/apache/tomcat/util/http/parser/HttpParser.java',46,46,'org.apache.tomcat.util.http.parser.HttpParser','None',NULL),(14617,'Unable to send close message.\nTODO - Ignore?','Line','java/org/apache/tomcat/websocket/WsSession.java',257,258,'org.apache.tomcat.websocket.WsSession','close(CloseReason)',NULL),(14618,'TODO','Line','java/org/apache/tomcat/websocket/server/WsServlet.java',106,106,'org.apache.tomcat.websocket.server.WsServlet','doGet(HttpServletRequest, HttpServletResponse)','NOT_DESIGN'),(14619,'Extensions\nCurrently no extensions are supported by this implementation','Line','java/org/apache/tomcat/websocket/server/WsServlet.java',102,103,'org.apache.tomcat.websocket.server.WsServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14620,'TODO Extensions may use rsv bits','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',124,124,'org.apache.tomcat.websocket.WsFrameBase','processInitialHeader()','NOT_DESIGN'),(14621,'Note extensions may use rsv bits but currently no extensions are\nsupported','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',124,125,'org.apache.tomcat.websocket.WsFrameBase','processInitialHeader()',NULL),(14622,'TODO Mask the data properly','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',247,247,'org.apache.tomcat.websocket.WsRemoteEndpointBase','getAsyncSendTimeout()',NULL),(14623,'TODO Make the size of these buffers configurable','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',47,47,'org.apache.tomcat.websocket.WsRemoteEndpointBase','None','DESIGN'),(14624,'FIXME: No getter to access PreResource, JarResources and PostResources','Line','java/org/apache/catalina/storeconfig/WebResourceRootSF.java',45,45,'org.apache.catalina.storeconfig.WebResourceRootSF','storeChilds(PrintWriter, int, Object, StoreDescription)','NOT_DESIGN'),(14625,'@TODO is this case possible?','Line','java/org/apache/catalina/storeconfig/StandardContextSF.java',267,267,'org.apache.catalina.storeconfig.StandardContextSF','storeChilds(PrintWriter, int, Object, StoreDescription)',NULL),(14626,'TODO is this case possible? (see it a old Server 5.0 impl)','Line','java/org/apache/catalina/storeconfig/StandardEngineSF.java',63,63,'org.apache.catalina.storeconfig.StandardEngineSF','storeChilds(PrintWriter, int, Object, StoreDescription)',NULL),(14627,'Generate a real default StandardContext TODO read and interpret the\ndefault context.xml and context.xml.default TODO Cache a Default\nStandardContext ( with reloading strategy) TODO remove really all\nelements, but detection is hard... To Listener or Valve from same class?>\n\n@see org.apache.catalina.storeconfig.StoreAppender#defaultInstance(java.lang.Object)','Block','java/org/apache/catalina/storeconfig/StoreContextAppender.java',147,154,'org.apache.catalina.storeconfig.StoreContextAppender','defaultInstance(Object)',NULL),(14628,'Must hold writeLock above to modify state','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',50,50,'org.apache.tomcat.websocket.WsRemoteEndpointBase','None',NULL),(14629,'Max size of WebSocket header is 14 bytes','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',52,52,'org.apache.tomcat.websocket.WsRemoteEndpointBase','None',NULL),(14630,'TODO Mask the data properly','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',248,248,'org.apache.tomcat.websocket.WsRemoteEndpointBase','getAsyncSendTimeout()','NOT_DESIGN'),(14631,'Can write directly','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',316,316,'org.apache.tomcat.websocket.WsRemoteEndpointBase','getAsyncSendTimeout()',NULL),(14632,'TODO Log this? Runtime exception? Something else?','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',102,102,'org.apache.tomcat.websocket.WsRemoteEndpointBase','getAsyncSendTimeout()',NULL),(14633,'Store nested <PreResources> elements','Line','java/org/apache/catalina/storeconfig/WebResourceRootSF.java',48,48,'org.apache.catalina.storeconfig.WebResourceRootSF','storeChilds(PrintWriter, int, Object, StoreDescription)',NULL),(14634,'Store nested <JarResources> elements','Line','java/org/apache/catalina/storeconfig/WebResourceRootSF.java',60,60,'org.apache.catalina.storeconfig.WebResourceRootSF','storeChilds(PrintWriter, int, Object, StoreDescription)',NULL),(14635,'Store nested <PostResources> elements','Line','java/org/apache/catalina/storeconfig/WebResourceRootSF.java',72,72,'org.apache.catalina.storeconfig.WebResourceRootSF','storeChilds(PrintWriter, int, Object, StoreDescription)',NULL),(14636,'TODO is this case possible? (see it a old Server 5.0 impl)','Line','java/org/apache/catalina/storeconfig/StandardEngineSF.java',62,62,'org.apache.catalina.storeconfig.StandardEngineSF','storeChilds(PrintWriter, int, Object, StoreDescription)',NULL),(14637,'@TODO is this case possible?','Line','java/org/apache/catalina/storeconfig/StandardContextSF.java',266,266,'org.apache.catalina.storeconfig.StandardContextSF','storeChilds(PrintWriter, int, Object, StoreDescription)',NULL),(14638,'Internal OP Codes\nRFC 6455 limits OP Codes to 4 bits so these should never clash\nAlways set bit 4 so these will be treated as control codes','Line','java/org/apache/tomcat/websocket/Constants.java',34,36,'org.apache.tomcat.websocket.Constants','None',NULL),(14639,'Attributes of the current message','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',53,53,'org.apache.tomcat.websocket.WsFrameBase','None',NULL),(14640,'TODO: May need a new ByteBuffer per message','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',62,62,'org.apache.tomcat.websocket.WsFrameBase','None',NULL),(14641,'FIXME: Why we remove change data from other running request?\nsetId also trigger resetDeltaRequest!!','Line','java/org/apache/catalina/ha/session/JvmRouteBinderValve.java',353,354,'org.apache.catalina.ha.session.JvmRouteBinderValve','changeSessionID(Request, String, String, Session)','DESIGN'),(14642,'Ignore anything else\nTODO Log this','Line','java/org/apache/tomcat/websocket/BackgroundProcessManager.java',85,86,'org.apache.tomcat.websocket.BackgroundProcessManager','getInstance()','NOT_DESIGN'),(14643,'TODO Log this?','Line','java/org/apache/tomcat/websocket/WsSession.java',386,386,'org.apache.tomcat.websocket.WsSession','expire()',NULL),(14644,'TODO Log this? Runtime exception? Something else?','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBase.java',91,91,'org.apache.tomcat.websocket.WsRemoteEndpointBase','getAsyncSendTimeout()','DESIGN'),(14645,'Unable to send close message.\nTODO - Ignore?','Line','java/org/apache/tomcat/websocket/WsSession.java',291,292,'org.apache.tomcat.websocket.WsSession','close(CloseReason)','DESIGN'),(14646,'TODO Replace null with path parameter map','Line','java/org/apache/tomcat/websocket/server/WsProtocolHandler.java',91,91,'org.apache.tomcat.websocket.server.WsProtocolHandler','None','NOT_DESIGN'),(14647,'TODO i18n','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',253,253,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getMessageHandler(Object, Map<String, String>, Session)',NULL),(14648,'TODO Log this?','Line','java/org/apache/tomcat/websocket/WsSession.java',397,397,'org.apache.tomcat.websocket.WsSession','expire()','DESIGN'),(14649,'TODO: Something went wrong. Log an error.','Line','java/org/apache/tomcat/websocket/WsSession.java',449,449,'org.apache.tomcat.websocket.WsSession','getMessageType(Class<? extends MessageHandler>)','NOT_DESIGN'),(14650,'Error will be logged further up the call stack','Line','java/org/apache/tomcat/websocket/WsSession.java',453,453,'org.apache.tomcat.websocket.WsSession','getMessageType(Class<? extends MessageHandler>)',NULL),(14651,'TODO: Use this','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',143,143,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(14652,'this is a bit tricky.\nwe\'ll need to resize the array.\nprobably should be synchronized but digester\'s not thread safe anyway','Line','java/org/apache/tomcat/util/digester/SetPropertiesRule.java',233,235,'org.apache.tomcat.util.digester.SetPropertiesRule','addAlias(String, String)','DESIGN'),(14653,'None','None','java/org/apache/tomcat/util/digester/SetPropertiesRule.java',-1,-1,'None','None',NULL),(14654,'// XXX Need a better solution - to avoid the static\nif( registry == null )','Line','java/org/apache/tomcat/util/modeler/BaseModelMBean.java',1083,1084,'org.apache.tomcat.util.modeler.BaseModelMBean','preRegister(MBeanServer, ObjectName)','DESIGN'),(14655,'TODO Use a common base class','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointBasic.java',27,27,'None','None','NOT_DESIGN'),(14656,'TODO Don\'t create new wrappers on every call','Line','java/org/apache/tomcat/websocket/WsSession.java',266,266,'org.apache.tomcat.websocket.WsSession','getAsyncRemote()','NOT_DESIGN'),(14657,'TODO Don\'t create new wrappers on every call','Line','java/org/apache/tomcat/websocket/WsSession.java',273,273,'org.apache.tomcat.websocket.WsSession','getBasicRemote()','NOT_DESIGN'),(14658,'TODO Use a common base class','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointAsync.java',26,26,'None','None','NOT_DESIGN'),(14659,'None','None','java/org/apache/tomcat/websocket/WsRemoteEndpointBasic.java',-1,-1,'None','None',NULL),(14660,'None','None','java/org/apache/tomcat/websocket/WsRemoteEndpointAsync.java',-1,-1,'None','None',NULL),(14661,'TODO','Line','java/javax/websocket/server/DefaultServerConfiguration.java',96,96,'javax.websocket.server.DefaultServerConfiguration','getNegotiatedSubprotocol(List<String>)',NULL),(14662,'TODO','Line','java/javax/websocket/server/DefaultServerConfiguration.java',103,103,'javax.websocket.server.DefaultServerConfiguration','getNegotiatedExtensions(List<Extension>)',NULL),(14663,'TODO','Line','java/javax/websocket/server/DefaultServerConfiguration.java',119,119,'javax.websocket.server.DefaultServerConfiguration','matchesURI(URI)',NULL),(14664,'TODO','Line','java/javax/websocket/server/DefaultServerConfiguration.java',126,126,'javax.websocket.server.DefaultServerConfiguration','modifyHandshake(HandshakeRequest, HandshakeResponse)',NULL),(14665,'TODO Work-around bug in UTF8 decoder\n@Test(expected=MalformedInputException.class)','Line','test/org/apache/tomcat/util/buf/TestB2CConverter.java',92,93,'org.apache.tomcat.util.buf.TestB2CConverter','testBug54602a()',NULL),(14666,'Should never happen as B2CConverter should replace\nproblematic characters','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',1053,1054,'org.apache.catalina.connector.CoyoteAdapter','convertURI(MessageBytes, Request)',NULL),(14667,'TODO Requires a switch to the Harmony based decoder to fix this\nShould be','Line','test/org/apache/catalina/connector/TestCoyoteAdapter.java',208,209,'org.apache.catalina.connector.TestCoyoteAdapter','testPathParmsRootNone()','DESIGN'),(14668,'if someone would change the limit in process,\nhe would face consequences','Line','java/org/apache/tomcat/websocket/Utf8Decoder.java',159,160,'org.apache.tomcat.websocket.Utf8Decoder','decodeHasArray(ByteBuffer, CharBuffer)',NULL),(14669,'if someone would change the limit in process,\nhe would face consequences','Line','java/org/apache/tomcat/util/buf/Utf8Decoder.java',158,159,'org.apache.tomcat.util.buf.Utf8Decoder','decodeHasArray(ByteBuffer, CharBuffer)',NULL),(14670,'This should trigger an error but currently passes. Once the JVM is\nfixed, s/false/true/ and s/20/13/','Line','test/org/apache/tomcat/websocket/TestUtf8.java',94,95,'org.apache.tomcat.websocket.TestUtf8','testJvmDecoder1()',NULL),(14671,'This should trigger an error but currently passes. Once the JVM is\nfixed, s/false/true/ and s/20/13/','Line','test/org/apache/tomcat/util/buf/TestUtf8.java',91,92,'org.apache.tomcat.util.buf.TestUtf8','testJvmDecoder1()',NULL),(14672,'This should trigger an error but currently passes. Once the JVM is\nfixed, s/false/true/ and s/20/13/','Line','test/org/apache/tomcat/util/buf/TestUtf8.java',87,88,'org.apache.tomcat.util.buf.TestUtf8','testJvmDecoder1()',NULL),(14673,'This should trigger an error but currently passes. Once the JVM is\nfixed, s/false/true/ and s/20/12/','Line','test/org/apache/tomcat/util/buf/TestUtf8.java',118,119,'org.apache.tomcat.util.buf.TestUtf8','testJvmDecoder1()',NULL),(14674,'Invalid UTF-8','Line','test/org/apache/catalina/connector/TestCoyoteAdapter.java',206,206,'org.apache.catalina.connector.TestCoyoteAdapter','testPathParmsRootNone()',NULL),(14675,'This should trigger an error but currently passes. Once the JVM is\nfixed, s/false/true/ and s/20/12/','Line','test/org/apache/tomcat/util/buf/TestUtf8.java',105,106,'org.apache.tomcat.util.buf.TestUtf8','testJvmDecoder1()',NULL),(14676,'TODO: May need a new ByteBuffer per message','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',63,63,'org.apache.tomcat.websocket.WsFrameBase','None','NOT_DESIGN'),(14677,'None','None','java/org/apache/tomcat/websocket/BackgroundProcessManager.java',-1,-1,'None','None',NULL),(14678,'TODO Log invalid header','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',407,407,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Object, URI)','NOT_DESIGN'),(14679,'None','None','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java',-1,-1,'None','None',NULL),(14680,'TODO Not implemented','Line','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java',38,38,'org.apache.tomcat.websocket.pojo.PojoMessageHandlerWholeBinary','decode(ByteBuffer)',NULL),(14681,'TODO i18n','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',256,256,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getMessageHandler(Object, Map<String, String>, Session, EndpointConfig)',NULL),(14682,'TODO Not implemented','Line','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java',66,66,'org.apache.tomcat.websocket.pojo.PojoMessageHandlerWholeBinary','decode(ByteBuffer)','NOT_DESIGN'),(14683,'None','None','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java',-1,-1,'None','None',NULL),(14684,'TODO i18n','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',345,345,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getWsPath()',NULL),(14685,'TODO: Log error','Line','java/org/apache/catalina/core/StandardContext.java',5202,5202,'org.apache.catalina.core.StandardContext','getSendRedirectBody()','NOT_DESIGN'),(14686,'The handshake process reads/writes from/to the\nsocket. status may therefore be OPEN_WRITE once\nthe handshake completes. However, the handshake\nhappens when the socket is opened so the status\nmust always be OPEN_READ after it completes. It\nis OK to always set this as it is only used if\nthe handshake completes.','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1557,1563,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(14687,'If this finishes early, let the client think it is polling so the\nclient can complete','Line','test/org/apache/tomcat/jni/TestSocket.java',320,321,'org.apache.tomcat.jni.TestSocket','run()',NULL),(14688,'now pull out the encoding token the same way.','Line','java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java',192,192,'org.apache.tomcat.util.http.fileupload.util.mime.MimeUtility','decodeWord(String)',NULL),(14689,'seems a bit silly to encode a null string, but easy to deal with.','Line','java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java',208,208,'org.apache.tomcat.util.http.fileupload.util.mime.MimeUtility','decodeWord(String)',NULL),(14690,'maybe quoted printable.','Line','java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java',222,222,'org.apache.tomcat.util.http.fileupload.util.mime.MimeUtility','decodeWord(String)',NULL),(14691,'TODO i18n','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',205,205,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getWsPath()','NOT_DESIGN'),(14692,'None','None','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',-1,-1,'None','None',NULL),(14693,'TODO','Line','java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java',257,257,'org.apache.tomcat.websocket.pojo.PojoMethodMapping','getWsPath()','NOT_DESIGN'),(14694,'Reflection related problems','Line','java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java',66,66,'org.apache.tomcat.websocket.pojo.PojoEndpointBase','doOnOpen(Session, EndpointConfig)',NULL),(14695,'If really fatal - re-throw','Line','java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java',82,82,'org.apache.tomcat.websocket.pojo.PojoEndpointBase','handleOnOpenError(Session, Throwable)',NULL),(14696,'TODO Must block ????','Line','java/org/apache/catalina/websocket/WsFrame.java',166,166,'org.apache.catalina.websocket.WsFrame','blockingRead(InputStream, byte[])',NULL),(14697,'TODO Must block ?????','Line','java/org/apache/catalina/websocket/WsFrame.java',215,215,'org.apache.catalina.websocket.WsFrame','nextFrame(InputStream, boolean)',NULL),(14698,'Other 1xxx reserved / not permitted\n2xxx reserved\n3xxx framework defined\n4xxx application defined','Line','java/org/apache/catalina/websocket/WsOutbound.java',245,248,'org.apache.catalina.websocket.WsOutbound','validateCloseStatus(int)',NULL),(14699,'TODO Read client handshake - Sec-WebSocket-Extensions','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',98,98,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14700,'TODO Extensions require the ability to specify something (API TBD)\nthat can be passed to the Tomcat internals and process extension\ndata present when the frame is fragmented.','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',100,102,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14701,'TODO','Line','java/org/apache/catalina/websocket/WebSocketServlet.java',112,112,'org.apache.catalina.websocket.WebSocketServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(14702,'TODO User defined extensions may define values for rsv','Line','java/org/apache/catalina/websocket/StreamHandler.java',81,81,'org.apache.catalina.websocket.StreamHandler','onData()',NULL),(14703,'TODO','Line','java/org/apache/catalina/websocket/StreamHandler.java',116,116,'org.apache.catalina.websocket.StreamHandler','onData()',NULL),(14704,'TODO Make these buffer sizes configurable via the constructor','Line','java/org/apache/catalina/websocket/StreamHandler.java',209,209,'org.apache.catalina.websocket.StreamHandler','init(WebConnection)',NULL),(14705,'TODO i18n','Line','java/org/apache/catalina/websocket/StreamHandler.java',215,215,'org.apache.catalina.websocket.StreamHandler','init(WebConnection)',NULL),(14706,'None','None','java/org/apache/catalina/authenticator/BasicAuthenticator.java',-1,-1,'None','None',NULL),(14707,'FIXME: Add trimming','Line','java/org/apache/catalina/authenticator/SpnegoAuthenticator.java',190,190,'org.apache.catalina.authenticator.SpnegoAuthenticator','authenticate(Request, HttpServletResponse)','NOT_DESIGN'),(14708,'Takes ~1s on markt\'s laptop. If this takes more than 4s something\nprobably needs looking at. If this fails repeatedly then we may need\nto increase this limit.','Line','test/org/apache/catalina/mapper/TestMapper.java',201,203,'org.apache.catalina.mapper.TestMapper','testPerformance()',NULL),(14709,'Takes ~1s on markt\'s laptop. If this takes more than 5s something\nprobably needs looking at. If this fails repeatedly then we may need\nto increase this limit.','Line','test/org/apache/catalina/mapper/TestMapper.java',201,203,'org.apache.catalina.mapper.TestMapper','testPerformance()',NULL),(14710,'TODO could be simplified if there is no requirement to reject invalid line sep when length <=0\n@see test case Base64Test.testConstructors()','Line','java/org/apache/tomcat/util/codec/binary/Base64.java',272,273,'org.apache.tomcat.util.codec.binary.Base64','isUrlSafe()',NULL),(14711,'12 bits = 8 + 4\ndump the extra 4 bits','Line','java/org/apache/tomcat/util/codec/binary/Base64.java',467,468,'org.apache.tomcat.util.codec.binary.Base64','decode(byte[], int, int, Context)',NULL),(14712,'TODO: Remove this before release','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',123,123,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14713,'This is a temporary hack to allow the WebSocket EA TCK to work. This\nhas been confirmed as non-compliant with the EG lead so the TCK will\nhave to change. For now, we need the TCK to work.','Block','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',124,128,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14714,'End of TCK hack','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',134,134,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Class<?>, URI)',NULL),(14715,'TODO HTTPS support','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',196,196,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Endpoint, ClientEndpointConfig, URI)','NOT_DESIGN'),(14716,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',35,35,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer)',NULL),(14717,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',42,42,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer, A, CompletionHandler<Integer, ? super A>)',NULL),(14718,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',48,48,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','write(ByteBuffer)',NULL),(14719,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',56,56,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','write(ByteBuffer[], int, int, long, TimeUnit, A, CompletionHandler<Long, ? super A>)',NULL),(14720,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',62,62,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','close()',NULL),(14721,'using a dynamic way of setting properties is nice, but a security risk\nif exposed through JMX. This way you can sit and try to guess property names,\nwe will only allow explicit property names','Line','java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java',399,401,'org.apache.catalina.ha.tcp.SimpleTcpCluster','setProperty(String, Object)','DESIGN'),(14722,'--------------------------------------------------------- Public Methods','Line','java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java',372,372,'org.apache.catalina.ha.tcp.SimpleTcpCluster','ClusterManager> getManagers()',NULL),(14723,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',45,45,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer, A, CompletionHandler<Integer, ? super A>)',NULL),(14724,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',89,89,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer)','NOT_DESIGN'),(14725,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',51,51,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','write(ByteBuffer)',NULL),(14726,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',59,59,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','write(ByteBuffer[], int, int, long, TimeUnit, A, CompletionHandler<Long, ? super A>)',NULL),(14727,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',65,65,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','close()',NULL),(14728,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',70,70,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','None','NOT_DESIGN'),(14729,'Status.BUFFER_UNDERFLOW - only happens on unwrap\nStatus.CLOSED - unexpected\nTODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',190,192,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer)','NOT_DESIGN'),(14730,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',220,220,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer)',NULL),(14731,'Status.CLOSED - unexpected\nTODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',284,285,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer)','NOT_DESIGN'),(14732,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',502,502,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','get()',NULL),(14733,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',514,514,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','get(long, TimeUnit)',NULL),(14734,'TODO i18n','Line','java/org/apache/tomcat/websocket/server/UriTemplate.java',58,58,'org.apache.tomcat.websocket.server.UriTemplate','None','NOT_DESIGN'),(14735,'give a hint about what\'s wrong','Line','java/org/apache/jasper/compiler/ErrorDispatcher.java',376,376,'org.apache.jasper.compiler.ErrorDispatcher','jspError(String)',NULL),(14736,'give a hint about what\'s wrong','Line','java/org/apache/jasper/compiler/ErrorDispatcher.java',227,227,'org.apache.jasper.compiler.ErrorDispatcher','jspError(String, String...)',NULL),(14737,'XXX TODO: Source code line length\nXXX TODO: StringManager\nXXX TODO: Sort logger names and system property keys in getVMInfo()\nXXX TODO: Add memory and GC MBeans to getVMInfo()\nXXX Optional: Wire setters to the manager:\nlog level setter, verbose class loading setter,\nand threadMXBean setters.','Line','java/org/apache/tomcat/util/Diagnostics.java',18,24,'None','None',NULL),(14738,'XXX Not sure whether the following MBeans should better\nbe retrieved on demand, i.e. whether they can change\ndynamically in the MBeanServer.','Line','java/org/apache/tomcat/util/Diagnostics.java',74,76,'org.apache.tomcat.util.Diagnostics','None',NULL),(14739,'None','None','java/org/apache/coyote/Request.java',-1,-1,'None','None',NULL),(14740,'Note: This class is not used for HTTP upgrade so only need to test\nfor async','Line','java/org/apache/coyote/Request.java',159,160,'org.apache.coyote.Request','getReadListener()',NULL),(14741,'TODO SERVLET 3.1 is it allowed to switch from non block to blocking?','Line','java/org/apache/coyote/Response.java',552,552,'org.apache.coyote.Response','getRequest()','NOT_DESIGN'),(14742,'Note: This class is not used for HTTP upgrade so only need to test\nfor async','Line','java/org/apache/coyote/Response.java',565,566,'org.apache.coyote.Response','getRequest()',NULL),(14743,'TODO Notify write listener','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',327,327,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)','NOT_DESIGN'),(14744,'TODO Notify read listener','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',330,330,'org.apache.catalina.connector.CoyoteAdapter','asyncDispatch(org.apache.coyote.Request, org.apache.coyote.Response, SocketStatus)','NOT_DESIGN'),(14745,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',224,224,'org.apache.coyote.http11.InternalOutputBuffer','hasDataToWrite()',NULL),(14746,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',231,231,'org.apache.coyote.http11.InternalOutputBuffer','setBlocking(boolean)',NULL),(14747,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',237,237,'org.apache.coyote.http11.InternalOutputBuffer','flushBuffer(boolean)','NOT_DESIGN'),(14748,'TODO','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',216,216,'org.apache.coyote.http11.InternalAprOutputBuffer','hasDataToWrite()',NULL),(14749,'TODO','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',223,223,'org.apache.coyote.http11.InternalAprOutputBuffer','setBlocking(boolean)',NULL),(14750,'TODO','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',229,229,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)',NULL),(14751,'Blocking connector so ignore block parameter as this will always use\nblocking IO.','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',241,242,'org.apache.coyote.http11.InternalOutputBuffer','flushBuffer(boolean)',NULL),(14752,'Always blocks so never any data left over.','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',246,246,'org.apache.coyote.http11.InternalOutputBuffer','flushBuffer(boolean)',NULL),(14753,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',228,228,'org.apache.coyote.http11.InternalOutputBuffer','setBlocking(boolean)',NULL),(14754,'TODO','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',233,233,'org.apache.coyote.http11.InternalAprOutputBuffer','isBlocking()',NULL),(14755,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',234,234,'org.apache.coyote.http11.InternalOutputBuffer','isBlocking()',NULL),(14756,'TODO: Non-blocking IO not yet implemented so always block parameter\nignored','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',203,204,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)',NULL),(14757,'TODO: Non-blocking IO not yet implemented so always returns false','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',211,211,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)',NULL),(14758,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',202,202,'org.apache.coyote.http11.InternalOutputBuffer','isBlocking()','NOT_DESIGN'),(14759,'TODO','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',185,185,'org.apache.coyote.http11.InternalAprOutputBuffer','isBlocking()','NOT_DESIGN'),(14760,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',196,196,'org.apache.coyote.http11.InternalOutputBuffer','setBlocking(boolean)','NOT_DESIGN'),(14761,'TODO','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',179,179,'org.apache.coyote.http11.InternalAprOutputBuffer','setBlocking(boolean)','NOT_DESIGN'),(14762,'TODO','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',189,189,'org.apache.coyote.http11.InternalOutputBuffer','hasDataToWrite()','NOT_DESIGN'),(14763,'TODO','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',172,172,'org.apache.coyote.http11.InternalAprOutputBuffer','hasDataToWrite()','NOT_DESIGN'),(14764,'Blocking IO so always returns false.','Line','java/org/apache/coyote/http11/InternalOutputBuffer.java',189,189,'org.apache.coyote.http11.InternalOutputBuffer','hasMoreDataToFlush()',NULL),(14765,'TODO: Non-blocking IO not yet implemented so always block parameter\nignored','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',155,156,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)','NOT_DESIGN'),(14766,'TODO: Review how to update the SocketWrapper\'s last accessed time','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',200,200,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)',NULL),(14767,'here we must break if we didn\'t finish the write','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',219,219,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)',NULL),(14768,'TODO: Non-blocking IO not yet implemented so always returns false','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',163,163,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)',NULL),(14769,'TODO Implement non-blocking writes','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',231,231,'org.apache.coyote.http11.InternalAprOutputBuffer','writeToSocket()',NULL),(14770,'TODO: Review how to update the SocketWrapper\'s last accessed time','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',173,173,'org.apache.coyote.http11.InternalAprOutputBuffer','addToBB(byte[], int, int)',NULL),(14771,'FIXME BUFFER IS BROKEN, 0 doesn\'t work','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',105,105,'org.apache.catalina.nonblocking.TestNonBlockingAPI','getProtocol()',NULL),(14772,'FIXME BUFFER IS BROKEN, 0 doesn\'t work','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',104,104,'org.apache.catalina.nonblocking.TestNonBlockingAPI','testNonBlockingRead()',NULL),(14773,'TODO Faking non-blocking reads is not yet implemented for BIO.','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',60,60,'org.apache.catalina.nonblocking.TestNonBlockingAPI','None','NOT_DESIGN'),(14774,'TODO Non-blocking reads are not yet implemented for APR.','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',66,66,'org.apache.catalina.nonblocking.TestNonBlockingAPI','None',NULL),(14775,'Should never reach this code but in case we do...\nTODO','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1639,1640,'org.apache.coyote.http11.AbstractHttp11Processor','upgradeDispatch(SocketStatus)','DESIGN'),(14776,'Should never reach this code but in case we do...','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1639,1639,'org.apache.coyote.http11.AbstractHttp11Processor','upgradeDispatch(SocketStatus)',NULL),(14777,'None','None','java/org/apache/coyote/http11/InternalAprInputBuffer.java',-1,-1,'None','None',NULL),(14778,'None','None','java/org/apache/coyote/http11/AbstractInputBuffer.java',-1,-1,'None','None',NULL),(14779,'TODO','Line','java/org/apache/coyote/http11/InternalAprInputBuffer.java',627,627,'org.apache.coyote.http11.InternalAprInputBuffer','nbRead()',NULL),(14780,'FIXME: Check for null ?','Line','java/org/apache/coyote/http11/AbstractInputBuffer.java',172,172,'org.apache.coyote.http11.AbstractInputBuffer','addFilter(InputFilter)','DESIGN'),(14781,'FIXME:Put an error message','Block','java/org/apache/coyote/http11/AbstractOutputBuffer.java',301,301,'org.apache.coyote.http11.AbstractOutputBuffer','addFilter(OutputFilter)','NOT_DESIGN'),(14782,'None','None','java/org/apache/coyote/http11/AbstractOutputBuffer.java',-1,-1,'None','None',NULL),(14783,'TODO SERVLET 3.1 -\nwe should not swallow this exception','Line','java/org/apache/coyote/http11/InternalNioInputBuffer.java',176,177,'org.apache.coyote.http11.InternalNioInputBuffer','None','DESIGN'),(14784,'None','None','java/org/apache/coyote/http11/InternalNioInputBuffer.java',-1,-1,'None','None',NULL),(14785,'None','None','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',-1,-1,'None','None',NULL),(14786,'TODO - Use these','Line','java/org/apache/tomcat/util/Diagnostics.java',79,79,'org.apache.tomcat.util.Diagnostics','isThreadContentionMonitoringEnabled()',NULL),(14787,'XXX TODO: Source code line length\nXXX TODO: Sort logger names and system property keys in getVMInfo()\nXXX TODO: Add memory and GC MBeans to getVMInfo()\nXXX Optional: Wire setters to the manager:\nlog level setter, verbose class loading setter,\nand threadMXBean setters.','Line','java/org/apache/tomcat/util/Diagnostics.java',18,23,'None','None',NULL),(14788,'TODO: Review how to update the SocketWrapper\'s last accessed time','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',172,172,'org.apache.coyote.http11.InternalAprOutputBuffer','addToBB(byte[], int, int)','DESIGN'),(14789,'TODO: Review how to update the SocketWrapper\'s last accessed time','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',199,199,'org.apache.coyote.http11.InternalAprOutputBuffer','flushBuffer(boolean)','DESIGN'),(14790,'TODO Implement non-blocking writes','Line','java/org/apache/coyote/http11/InternalAprOutputBuffer.java',235,235,'org.apache.coyote.http11.InternalAprOutputBuffer','writeToSocket()','NOT_DESIGN'),(14791,'TODO','Line','java/org/apache/coyote/http11/InternalAprInputBuffer.java',628,628,'org.apache.coyote.http11.InternalAprInputBuffer','nbRead()','NOT_DESIGN'),(14792,'Set the current settings for this socket','Line','java/org/apache/coyote/http11/InternalAprInputBuffer.java',664,664,'org.apache.coyote.http11.InternalAprInputBuffer','doReadSocket(boolean)',NULL),(14793,'Downgrade the lock','Line','java/org/apache/coyote/http11/InternalAprInputBuffer.java',666,666,'org.apache.coyote.http11.InternalAprInputBuffer','doReadSocket(boolean)',NULL),(14794,'Should have been released above but may not have been on some\nexception paths','Line','java/org/apache/coyote/http11/InternalAprInputBuffer.java',675,676,'org.apache.coyote.http11.InternalAprInputBuffer','doReadSocket(boolean)',NULL),(14795,'TODO Non-blocking reads are not yet implemented for APR.','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',60,60,'org.apache.catalina.nonblocking.TestNonBlockingAPI','None','NOT_DESIGN'),(14796,'XXX TODO: Source code line length\nXXX TODO: More JavaDoc\nXXX Optional: Add support for com.sun.management specific mbean\n(http://docs.oracle.com/javase/7/docs/jre/api/management/extension/index.html)\nXXX Optional: Wire setters to the manager:\nlog level setter, verbose class loading setter,\nsetVerbose() and gc() in MemoryMXBean,\nresetPeakUsage(), setUsageThreshold() and\nsetCollectionUsageThreshold() in MemoryPoolMXBean,\nand threadMXBean setters, probably even for\ncom.sun.management like HotSpotDiagnosticMXBean.','Line','java/org/apache/tomcat/util/Diagnostics.java',18,28,'None','None',NULL),(14797,'TODO - Use these','Line','java/org/apache/tomcat/util/Diagnostics.java',85,85,'org.apache.tomcat.util.Diagnostics','isThreadContentionMonitoringEnabled()','NOT_DESIGN'),(14798,'None','None','java/org/apache/tomcat/util/Diagnostics.java',-1,-1,'None','None',NULL),(14799,'XXX TODO: Source code line length\nXXX TODO: More JavaDoc\nXXX Optional: Add support for com.sun.management specific mbean\n(http://docs.oracle.com/javase/7/docs/jre/api/management/extension/index.html)\nXXX Optional: Wire additional public static methods implemented here\nto the manager (think about manager access roles!)\nsetLoggerLevel(),\nsetVerboseClassLoading(),\nsetThreadContentionMonitoringEnabled(),\nsetThreadCpuTimeEnabled(),\nresetPeakThreadCount(),\nsetVerboseGarbageCollection()\ngc(),\nresetPeakUsage(),\nsetUsageThreshold(),\nsetCollectionUsageThreshold()','Line','java/org/apache/tomcat/util/Diagnostics.java',18,33,'None','None',NULL),(14800,'FIXME we have a lot of sends, but the trouble with one node stops the correct replication to other nodes!','Line','java/org/apache/catalina/ha/tcp/ReplicationValve.java',415,415,'org.apache.catalina.ha.tcp.ReplicationValve','sendReplicationMessage(Request, long, boolean, ClusterManager, CatalinaCluster)',NULL),(14801,'FIXME we have a lot of sends, but the trouble with one node stops the correct replication to other nodes!','Line','java/org/apache/catalina/ha/tcp/ReplicationValve.java',414,414,'org.apache.catalina.ha.tcp.ReplicationValve','sendReplicationMessage(Request, long, boolean, ClusterManager)',NULL),(14802,'FIXME this stats update are not cheap!!','Line','java/org/apache/catalina/ha/tcp/ReplicationValve.java',418,418,'org.apache.catalina.ha.tcp.ReplicationValve','sendReplicationMessage(Request, long, boolean, ClusterManager, CatalinaCluster)',NULL),(14803,'FIXME this stats update are not cheap!!','Line','java/org/apache/catalina/ha/tcp/ReplicationValve.java',417,417,'org.apache.catalina.ha.tcp.ReplicationValve','sendReplicationMessage(Request, long, boolean, ClusterManager)',NULL),(14804,'TODO log warning','Line','java/org/apache/catalina/startup/HostConfig.java',629,629,'org.apache.catalina.startup.HostConfig','getConfigClass()','NOT_DESIGN'),(14805,'None','None','java/org/apache/catalina/startup/HostConfig.java',-1,-1,'None','None',NULL),(14806,'This is a hack that won\'t work generally as servlets are expected to\nhandle more than one request.','Line','test/org/apache/catalina/connector/TestCoyoteAdapter.java',308,309,'org.apache.catalina.connector.TestCoyoteAdapter','testPathParmsRootNone()',NULL),(14807,'Bug 49779','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',50,50,'org.apache.catalina.authenticator.TestFormAuthenticator','testGet()',NULL),(14808,'Bug 49779','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',112,112,'org.apache.catalina.authenticator.TestFormAuthenticator','testGetWithCookies()',NULL),(14809,'Bug 53584','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',130,130,'org.apache.catalina.authenticator.TestFormAuthenticator','testGetWithCookies()',NULL),(14810,'variant of Bug 49779','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',149,149,'org.apache.catalina.authenticator.TestFormAuthenticator','testGetWithCookies()',NULL),(14811,'todo: forgot this change and making it up again!','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',370,370,'org.apache.catalina.authenticator.TestFormAuthenticator','testGetWithCookies()',NULL),(14812,'perhaps this does not work until tomcat has started?','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',393,393,'org.apache.catalina.authenticator.TestFormAuthenticator','doLoginRequest(String)',NULL),(14813,'Subsequent requests should return in the protected page.\nOur role parameter should be appear in the page.','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',521,522,'org.apache.catalina.authenticator.TestFormAuthenticator','isResponseBodyOK(int)',NULL),(14814,'TODO','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',821,821,'org.apache.coyote.http11.AbstractHttp11Processor','action(ActionCode, Object)',NULL),(14815,'TODO i18n','Line','java/org/apache/coyote/Response.java',581,581,'org.apache.coyote.Response','isReady()',NULL),(14816,'TODO','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',829,829,'org.apache.coyote.http11.AbstractHttp11Processor','action(ActionCode, Object)','NOT_DESIGN'),(14817,'If this finishes early, let the client think it is polling so the\nclient can complete','Line','test/org/apache/tomcat/jni/TestSocket.java',345,346,'org.apache.tomcat.jni.TestSocket','run()',NULL),(14818,'TODO SERVLET3\nthrow UnsupportedOperationException - if this context was passed to the','Line','java/org/apache/catalina/core/ApplicationContext.java',900,901,'org.apache.catalina.core.ApplicationContext','getAttribute(String)','DESIGN'),(14819,'Publish the ordered fragments. The app does not need to know\nabout container fragments','Line','java/org/apache/catalina/deploy/WebXml.java',2126,2127,'org.apache.catalina.deploy.WebXml','orderWebFragments(WebXml, Map<String, WebXml>, ServletContext)',NULL);
