INSERT INTO `SATDInFile` VALUES (14820,'TODO','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',824,824,'org.apache.coyote.http11.AbstractHttp11Processor','action(ActionCode, Object)','NOT_DESIGN'),(14821,'perhaps this does not work until tomcat has started?','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',427,427,'org.apache.catalina.authenticator.TestFormAuthenticator','doLoginRequest(String)','NOT_DESIGN'),(14822,'None','None','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',-1,-1,'None','None',NULL),(14823,'perhaps this does not work until tomcat has started?','Line','test/org/apache/catalina/authenticator/TestFormAuthenticator.java',661,661,'org.apache.catalina.authenticator.TestFormAuthenticator','testGetWithCookies()',NULL),(14824,'Special handling for form-based logins to deal with the case where\na resource is protected for some HTTP methods but not protected for\nGET which is used after authentication when redirecting to the\nprotected resource.\nTODO: This is similar to the FormAuthenticator.matchRequest() logic\nIs there a way to remove the duplication?','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',458,463,'org.apache.catalina.authenticator.AuthenticatorBase','invoke(Request, Response)',NULL),(14825,'TODO - Add an option to lower the log level of any uncovered method\nwarnings to debug\nTODO - Implement adding constraints to deny uncovered methods','Line','java/org/apache/catalina/core/StandardContext.java',5346,5348,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(14826,'TODO - Add an option to lower the log level of any uncovered method\nwarnings to debug','Line','java/org/apache/catalina/core/StandardContext.java',5362,5363,'org.apache.catalina.core.StandardContext','getSendRedirectBody()','NOT_DESIGN'),(14827,'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',217,226,'org.apache.catalina.authenticator.TestNonLoginAndBasicAuthenticator','testAcceptPublicNonLogin()','DESIGN'),(14828,'This is the same as testAcceptProtectedBasic (above), except\nusing white space around the username credential. The request\nis accepted.','Block','test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java',217,221,'org.apache.catalina.authenticator.TestNonLoginAndBasicAuthenticator','testAcceptPublicNonLogin()',NULL),(14829,'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',235,244,'org.apache.catalina.authenticator.TestNonLoginAndBasicAuthenticator','testAcceptPublicNonLogin()','DESIGN'),(14830,'This is the same as testAcceptProtectedBasic (above), except\nusing white space around the password credential. The request\nis accepted.','Block','test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java',230,234,'org.apache.catalina.authenticator.TestNonLoginAndBasicAuthenticator','testAcceptPublicNonLogin()',NULL),(14831,'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',5803,5805,'org.apache.catalina.core.StandardContext','getSendRedirectBody()','NOT_DESIGN'),(14832,'Need to overwrite constraint for this pattern','Line','java/org/apache/catalina/core/StandardContext.java',5801,5801,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(14833,'If the collection is now empty, remove it','Line','java/org/apache/catalina/core/StandardContext.java',5803,5803,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(14834,'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',5817,5821,'org.apache.catalina.core.StandardContext','getSendRedirectBody()','DESIGN'),(14835,'Note: For progammatically added Servlets this may not be the\ncomplete set of security constraints since additional\nURL patterns can be added after the application has called\nsetSecurity. For all programmatically added servilets, the\n#dynamicServletAdded() method sets a flag that ensures that\nthe constraints are re-evaluated before the servlet is\nfirst used','Line','java/org/apache/catalina/core/StandardContext.java',5823,5829,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(14836,'If the pattern did not conflict, add the new constraint(s).','Line','java/org/apache/catalina/core/StandardContext.java',5831,5831,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(14837,'None','None','java/org/apache/tomcat/websocket/server/UriTemplate.java',-1,-1,'None','None',NULL),(14838,'TODO: Remove this before release','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',189,189,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Object, URI)','DESIGN'),(14839,'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',190,194,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Object, URI)','DESIGN'),(14840,'End of TCK hack','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',200,200,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Object, URI)','DESIGN'),(14841,'None','None','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',-1,-1,'None','None',NULL),(14842,'Status.BUFFER_UNDERFLOW - only happens on unwrap\nStatus.CLOSED - unexpected','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',199,200,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer)',NULL),(14843,'Status.CLOSED - unexpected','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',296,296,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','read(ByteBuffer)',NULL),(14844,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',513,513,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','get()','NOT_DESIGN'),(14845,'TODO','Line','java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java',525,525,'org.apache.tomcat.websocket.AsyncChannelWrapperSecure','get(long, TimeUnit)','NOT_DESIGN'),(14846,'TODO Decoder handling','Line','java/org/apache/tomcat/websocket/Util.java',300,300,'org.apache.tomcat.websocket.Util','getMessageHandlers(MessageHandler)','NOT_DESIGN'),(14847,'TODO Handle wrapped listeners','Line','java/org/apache/tomcat/websocket/WsSession.java',234,234,'org.apache.tomcat.websocket.WsSession','removeMessageHandler(MessageHandler)',NULL),(14848,'More complex case - listener that requires a decoder','Line','java/org/apache/tomcat/websocket/Util.java',339,339,'org.apache.tomcat.websocket.Util','isControl(byte)',NULL),(14849,'TODO byte[], Reader, InputStream','Line','java/org/apache/tomcat/websocket/Util.java',337,337,'org.apache.tomcat.websocket.Util','isControl(byte)','DESIGN'),(14850,'None','None','java/org/apache/tomcat/websocket/Util.java',-1,-1,'None','None',NULL),(14851,'TODO Handle wrapped listeners','Line','java/org/apache/tomcat/websocket/WsSession.java',239,239,'org.apache.tomcat.websocket.WsSession','removeMessageHandler(MessageHandler)','NOT_DESIGN'),(14852,'TODO ExpressionFactory.getStreamELResolver()\nTODO javax.el.StaticFieldResolver','Line','java/org/apache/jasper/el/JasperELResolver.java',54,55,'org.apache.jasper.el.JasperELResolver','add(ELResolver)','NOT_DESIGN'),(14853,'TODO Review this once the additional resolvers have been implemented','Line','java/org/apache/jasper/el/JasperELResolver.java',85,85,'org.apache.jasper.el.JasperELResolver','getValue(ELContext, Object, Object)','DESIGN'),(14854,'TODO ExpressionFactory.getStreamELResolver()\nTODO javax.el.StaticFieldResolver','Line','java/org/apache/jasper/el/ELContextImpl.java',131,132,'org.apache.jasper.el.ELContextImpl','getDefaultResolver()',NULL),(14855,'Specification states behaviour is undefined\nJasper opts to reject any other verbs, partly as they are\nunlikely to make sense in a JSP context and partly to protect\nagainst verb tampering','Line','java/org/apache/jasper/servlet/JspServlet.java',288,291,'org.apache.jasper.servlet.JspServlet','service(HttpServletRequest, HttpServletResponse)',NULL),(14856,'TODO','Line','java/javax/el/LambdaExpression.java',44,44,'javax.el.LambdaExpression','invoke(ELContext, Object...)','NOT_DESIGN'),(14857,'Could do this in one go. Lots of casts so split out for clarity','Line','java/org/apache/catalina/deploy/NamingResources.java',282,282,'org.apache.catalina.deploy.NamingResources','getServer()',NULL),(14858,'Could do this in one go. Lots of casts so split out for clarity','Line','java/org/apache/catalina/deploy/NamingResourcesImpl.java',282,282,'org.apache.catalina.deploy.NamingResourcesImpl','getServer()',NULL),(14859,'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',915,916,'org.apache.catalina.deploy.NamingResources','initInternal()',NULL),(14860,'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/NamingResourcesImpl.java',915,916,'org.apache.catalina.deploy.NamingResourcesImpl','initInternal()',NULL),(14861,'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',1046,1047,'org.apache.catalina.deploy.NamingResources','destroyInternal()',NULL),(14862,'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/NamingResourcesImpl.java',1046,1047,'org.apache.catalina.deploy.NamingResourcesImpl','destroyInternal()',NULL),(14863,'Variation on bug 54068','Line','test/org/apache/tomcat/util/descriptor/web/TestWebXmlOrdering.java',322,322,'org.apache.tomcat.util.descriptor.web.TestWebXmlOrdering','testOrderWebFragmentsRelative9()',NULL),(14864,'Variation on bug 54068','Line','test/org/apache/tomcat/util/descriptor/web/TestWebXmlOrdering.java',328,328,'org.apache.tomcat.util.descriptor.web.TestWebXmlOrdering','testOrderWebFragmentsRelative10()',NULL),(14865,'web-app elements\nTODO: Ignored elements:\n- description\n- icon','Line','java/org/apache/catalina/deploy/WebXml.java',245,248,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14866,'web-app elements\nTODO: Ignored elements:\n- description\n- icon','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',245,248,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14867,'display-name - TODO should support multiple with language','Line','java/org/apache/catalina/deploy/WebXml.java',250,250,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14868,'display-name - TODO should support multiple with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',250,250,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14869,'context-param\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/deploy/WebXml.java',273,274,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14870,'context-param\nTODO: description (multiple with language) is ignored','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',273,274,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14871,'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',281,285,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14872,'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/tomcat/util/descriptor/web/WebXml.java',281,285,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14873,'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',307,310,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14874,'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/tomcat/util/descriptor/web/WebXml.java',307,310,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14875,'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',317,322,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14876,'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/tomcat/util/descriptor/web/WebXml.java',317,322,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14877,'Duplicate mapping. As per clarification from the Servlet EG,\ndeployment should fail.','Line','java/org/apache/catalina/deploy/WebXml.java',338,339,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14878,'Duplicate mapping. As per clarification from the Servlet EG,\ndeployment should fail.','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',338,339,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14879,'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',421,423,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14880,'security-constraint\nTODO: Should support multiple display-name elements with language\nTODO: Should support multiple description elements with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',421,423,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14881,'security-role\nTODO: description (multiple with language) is ignored','Line','java/org/apache/catalina/deploy/WebXml.java',440,441,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14882,'security-role\nTODO: description (multiple with language) is ignored','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',440,441,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14883,'env-entry\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',448,449,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14884,'env-entry\nTODO: Should support multiple description elements with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',448,449,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14885,'ejb-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',462,463,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14886,'ejb-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',462,463,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14887,'ejb-local-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',470,471,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14888,'ejb-local-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',470,471,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14889,'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',480,483,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14890,'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/tomcat/util/descriptor/web/WebXml.java',480,483,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14891,'resource-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',490,491,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14892,'resource-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',490,491,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14893,'resource-env-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',506,507,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14894,'resource-env-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',506,507,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14895,'message-destination-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/catalina/deploy/WebXml.java',522,523,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14896,'message-destination-ref\nTODO: Should support multiple description elements with language','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',522,523,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14897,'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',543,546,'org.apache.catalina.deploy.WebXml','isOverridable()',NULL),(14898,'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/tomcat/util/descriptor/web/WebXml.java',543,546,'org.apache.tomcat.util.descriptor.web.WebXml','isOverridable()',NULL),(14899,'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',643,644,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(14900,'TODO - Various, icon, description etc elements are skipped - mainly\nbecause they are ignored when web.xml is parsed - see above','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',643,644,'org.apache.tomcat.util.descriptor.web.WebXml','toXml()',NULL),(14901,'TODO mapped-name','Line','java/org/apache/catalina/deploy/WebXml.java',953,953,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(14902,'TODO mapped-name','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',953,953,'org.apache.tomcat.util.descriptor.web.WebXml','toXml()',NULL),(14903,'TODO lookup-name','Line','java/org/apache/catalina/deploy/WebXml.java',962,962,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(14904,'TODO lookup-name','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',962,962,'org.apache.tomcat.util.descriptor.web.WebXml','toXml()',NULL),(14905,'TODO handler-chains\nTODO mapped-name','Line','java/org/apache/catalina/deploy/WebXml.java',1053,1054,'org.apache.catalina.deploy.WebXml','toXml()',NULL),(14906,'TODO handler-chains\nTODO mapped-name','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',1053,1054,'org.apache.tomcat.util.descriptor.web.WebXml','toXml()',NULL),(14907,'Publish the ordered fragments. The app does not need to know\nabout container fragments','Line','java/org/apache/catalina/deploy/WebXml.java',2146,2147,'org.apache.catalina.deploy.WebXml','orderWebFragments(WebXml, Map<String, WebXml>, ServletContext)',NULL),(14908,'Publish the ordered fragments. The app does not need to know\nabout container fragments','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',2146,2147,'org.apache.tomcat.util.descriptor.web.WebXml','orderWebFragments(WebXml, Map<String, WebXml>, ServletContext)',NULL),(14909,'TODO: should we use the Ant Project\'s log?','Line','java/org/apache/jasper/JspC.java',1416,1416,'org.apache.jasper.JspC','initServletContext()',NULL),(14910,'Build the merged web.xml\nTODO - Process fragments\nTODO - Check to see if annotations can impact anything JspC\ncares about and if yes, process fragments too.','Line','java/org/apache/jasper/servlet/JspCServletContext.java',121,124,'org.apache.jasper.servlet.JspCServletContext','getAttribute(String)',NULL),(14911,'No stream resolver - TODO\nUse resolvers from context from this point on','Line','java/javax/el/StandardELContext.java',72,73,'javax.el.StandardELContext','None','NOT_DESIGN'),(14912,'Expression\nEL Expression Language Root, goes to Choice','Block','java/org/apache/el/parser/ELParser.java',170,173,'org.apache.el.parser.ELParser','parse(String)','DESIGN'),(14913,'Expression\nEL Expression Language Root','Block','java/org/apache/el/parser/ELParser.java',170,173,'org.apache.el.parser.ELParser','parse(String)',NULL),(14914,'None','None','java/javax/el/LambdaExpression.java',-1,-1,'None','None',NULL),(14915,'No formal parameters - should be able to simply invoke this','Line','java/org/apache/el/parser/AstLambdaExpression.java',47,47,'org.apache.el.parser.AstLambdaExpression','getValue(EvaluationContext)',NULL),(14916,'Use resolvers from context from this point on','Line','java/javax/el/StandardELContext.java',72,72,'javax.el.StandardELContext','None',NULL),(14917,'TODO Implement a streamELResolver','Line','java/org/apache/el/ExpressionFactoryImpl.java',83,83,'org.apache.el.ExpressionFactoryImpl','getStreamELResolver()','NOT_DESIGN'),(14918,'None','None','java/org/apache/el/ExpressionFactoryImpl.java',-1,-1,'None','None',NULL),(14919,'TODO handle array source','Line','java/org/apache/el/stream/StreamELResolverImpl.java',66,66,'org.apache.el.stream.StreamELResolverImpl','invoke(ELContext, Object, Object, Class<?>[], Object[])','NOT_DESIGN'),(14920,'None','None','java/org/apache/el/stream/StreamELResolverImpl.java',-1,-1,'None','None',NULL),(14921,'No formal parameters - should be able to simply invoke this','Line','java/org/apache/el/parser/AstLambdaExpression.java',57,57,'org.apache.el.parser.AstLambdaExpression','getValue(EvaluationContext)','DESIGN'),(14922,'No formal parameters - invoke the expression','Line','java/org/apache/el/parser/AstLambdaExpression.java',58,58,'org.apache.el.parser.AstLambdaExpression','getValue(EvaluationContext)',NULL),(14923,'None','None','java/org/apache/jasper/el/JasperELResolver.java',-1,-1,'None','None',NULL),(14924,'TODO ExpressionFactory.getStreamELResolver()\nTODO javax.el.StaticFieldResolver','Line','java/org/apache/jasper/el/ELContextImpl.java',135,136,'org.apache.jasper.el.ELContextImpl','getDefaultResolver()','NOT_DESIGN'),(14925,'None','None','java/org/apache/jasper/el/ELContextImpl.java',-1,-1,'None','None',NULL),(14926,'TODO Figure out why this doesn\'t work.','Line','test/org/apache/el/TestELInJsp.java',393,393,'org.apache.el.TestELInJsp','testELMisc()','NOT_DESIGN'),(14927,'Purely for debug purposes. May not be complete or correct. Certainly\nis not efficient. Be sure not to call this from \'real\' code.','Line','java/org/apache/el/parser/AstLambdaExpression.java',109,110,'org.apache.el.parser.AstLambdaExpression','toString()',NULL),(14928,'Purely for debug purposes. May not be complete or correct. Certainly\nis not efficient. Be sure not to call this from \'real\' code.','Line','java/org/apache/el/parser/AstLambdaParameters.java',28,29,'org.apache.el.parser.AstLambdaParameters','toString()',NULL),(14929,'Purely for debug purposes. May not be complete or correct. Certainly\nis not efficient. Be sure not to call this from \'real\' code.','Line','java/org/apache/el/parser/AstMethodParameters.java',43,44,'org.apache.el.parser.AstMethodParameters','toString()',NULL),(14930,'No formal parameters or method parameters so invoke the\nexpression. If this is a nested expression inform the outer\nexpression that an invocation has occurred so the correct set\nof method parameters are used for the next invocation.','Line','java/org/apache/el/parser/AstLambdaExpression.java',80,83,'org.apache.el.parser.AstLambdaExpression','getValue(EvaluationContext)','DESIGN'),(14931,'Build arguments\nTODO handle multiple sets of arguments','Line','java/org/apache/el/parser/AstFunction.java',99,100,'org.apache.el.parser.AstFunction','getValue(EvaluationContext)','DESIGN'),(14932,'Build arguments','Line','java/org/apache/el/parser/AstFunction.java',98,98,'org.apache.el.parser.AstFunction','getValue(EvaluationContext)',NULL),(14933,'No formal parameters or method parameters and not a nested\nexpression so invoke the expression.','Line','java/org/apache/el/parser/AstLambdaExpression.java',79,80,'org.apache.el.parser.AstLambdaExpression','getValue(EvaluationContext)',NULL),(14934,'Purely for debug purposes. May not be complete or correct. Certainly\nis not efficient. Be sure not to call this from \'real\' code.','Line','java/org/apache/el/parser/AstLambdaExpression.java',140,141,'org.apache.el.parser.AstLambdaExpression','toString()',NULL),(14935,'Purely for debug purposes. May not be complete or correct. Certainly\nis not efficient. Be sure not to call this from \'real\' code.','Line','java/org/apache/el/parser/AstLambdaExpression.java',150,151,'org.apache.el.parser.AstLambdaExpression','getValue(EvaluationContext)',NULL),(14936,'TODO: Do we need to think about precedence of the various ways\na lambda expression may be obtained from something that\nthe parser thinks is a function?','Line','java/org/apache/el/parser/AstFunction.java',95,97,'org.apache.el.parser.AstFunction','getValue(EvaluationContext)',NULL),(14937,'TODO - message','Line','java/org/apache/jasper/servlet/JspCServletContext.java',135,135,'org.apache.jasper.servlet.JspCServletContext','getAttribute(String)',NULL),(14938,'Build the merged web.xml\nTODO - Process fragments\nTODO - Check to see if annotations can impact anything JspC\ncares about and if yes, process fragments too.','Line','java/org/apache/jasper/servlet/JspCServletContext.java',114,117,'org.apache.jasper.servlet.JspCServletContext','getAttribute(String)','DESIGN'),(14939,'Use this class\'s classloader as Ant will have set the TCCL to its own','Line','java/org/apache/jasper/servlet/JspCServletContext.java',127,127,'org.apache.jasper.servlet.JspCServletContext','buildMergedWebXml()',NULL),(14940,'TODO - enabling this means initializing the classloader first in JspC','Line','java/org/apache/jasper/servlet/JspCServletContext.java',155,155,'org.apache.jasper.servlet.JspCServletContext','WebXml> scanForFragments(WebXmlParser)',NULL),(14941,'TODO - configure filter rules from Ant rather then system properties','Line','java/org/apache/jasper/servlet/JspCServletContext.java',157,157,'org.apache.jasper.servlet.JspCServletContext','WebXml> scanForFragments(WebXmlParser)',NULL),(14942,'TODO - message','Line','java/org/apache/jasper/servlet/JspCServletContext.java',163,163,'org.apache.jasper.servlet.JspCServletContext','WebXml> scanForFragments(WebXmlParser)','NOT_DESIGN'),(14943,'TODO - message','Line','java/org/apache/jasper/servlet/JspCServletContext.java',133,133,'org.apache.jasper.servlet.JspCServletContext','buildMergedWebXml()','NOT_DESIGN'),(14944,'TODO','Line','test/org/apache/catalina/core/TestAsyncContextImpl.java',491,491,'org.apache.catalina.core.TestAsyncContextImpl','testBug49528()','NOT_DESIGN'),(14945,'None','None','test/org/apache/catalina/core/TestAsyncContextImpl.java',-1,-1,'None','None',NULL),(14946,'FIXME','Line','java/org/apache/catalina/core/ApplicationContextFacade.java',686,686,'org.apache.catalina.core.ApplicationContextFacade','declareRoles(String...)','NOT_DESIGN'),(14947,'Hack - makes exception handling simpler','Line','java/org/apache/catalina/startup/TldConfig.java',506,506,'org.apache.catalina.startup.TldConfig','tldScanStream(InputStream)',NULL),(14948,'TODO: should this use the JarFactory abstraction?','Line','java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java',107,107,'org.apache.tomcat.util.descriptor.tld.TldResourcePath','openStream()','DESIGN'),(14949,'TODO: should we use the Ant Project\'s log?','Line','java/org/apache/jasper/JspC.java',1417,1417,'org.apache.jasper.JspC','initServletContext(ClassLoader)',NULL),(14950,'Not entirely thread-safe but a few duplicate log messages are\nnot a huge issue','Line','java/org/apache/jasper/compiler/TldLocationsCache.java',414,415,'org.apache.jasper.compiler.TldLocationsCache','tldScanJar(JarURLConnection)','NOT_DESIGN'),(14951,'Hack - makes exception handling simpler','Line','java/org/apache/jasper/compiler/TldLocationsCache.java',459,459,'org.apache.jasper.compiler.TldLocationsCache','tldScanStream(String, String, InputStream)','DESIGN'),(14952,'TODO: this matches the current implementation but the URL logic looks fishy\nmap URI to location per JSP 7.3.6.2','Line','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',308,309,'org.apache.jasper.compiler.TagLibraryInfoImpl','print(String, String, PrintWriter)',NULL),(14953,'FIXME BUFFER IS BROKEN, 0 doesn\'t work','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',269,269,'org.apache.catalina.nonblocking.TestNonBlockingAPI','testNonBlockingRead()','NOT_DESIGN'),(14954,'FIXME At sender ack mode this method check only the state transfer and resend is a problem!','Line','java/org/apache/catalina/ha/session/DeltaManager.java',836,836,'org.apache.catalina.ha.session.DeltaManager','getAllClusterSessions()',NULL),(14955,'FIXME At sender ack mode this method check only the state\ntransfer and resend is a problem!','Line','java/org/apache/catalina/ha/session/DeltaManager.java',853,854,'org.apache.catalina.ha.session.DeltaManager','getAllClusterSessions()',NULL),(14956,'TODO Figure out why non-blocking writes with the NIO connector appear\nto be slower on Linux','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',329,330,'org.apache.catalina.nonblocking.TestNonBlockingAPI','testNonBlockingRead()',NULL),(14957,'Bug 55453','Block','test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java',145,147,'org.apache.coyote.ajp.TestAbstractAjpProcessor','getProtocol()',NULL),(14958,'TODO: This isn\'t pretty but it works. Significant refactoring would\nbe required to avoid the exception.','Line','java/javax/el/Util.java',464,465,'javax.el.Util','isCoercibleFrom(Object, Class<?>)',NULL),(14959,'Should probably log the throwable','Line','webapps/examples/WEB-INF/classes/nonblocking/ByteCounter.java',138,138,'nonblocking.ByteCounter','onError(Throwable)',NULL),(14960,'NO-OP\nTODO Check if this is really a NO-OP for AJP or if something\nneeds to be done here','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',381,383,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14961,'TODO','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',526,526,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14962,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',525,526,'org.apache.coyote.ajp.AjpAprProcessor','readMessage(AjpMessage, boolean, boolean)',NULL),(14963,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',483,484,'org.apache.coyote.ajp.AjpAprProcessor','readMessage(AjpMessage, boolean)',NULL),(14964,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpProcessor.java',361,362,'org.apache.coyote.ajp.AjpProcessor','readMessage(AjpMessage)','NOT_DESIGN'),(14965,'Invalid AJP header signature','Line','java/org/apache/coyote/ajp/AjpProcessor.java',363,363,'org.apache.coyote.ajp.AjpProcessor','readMessage(AjpMessage, boolean)',NULL),(14966,'Invalid AJP header signature\nTODO: Throw some exception and close the connection to frontend.','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',299,300,'org.apache.coyote.ajp.AjpAprProcessor','readMessage(AjpMessage, boolean)','NOT_DESIGN'),(14967,'Invalid AJP header signature','Line','java/org/apache/coyote/ajp/AjpAprProcessor.java',290,290,'org.apache.coyote.ajp.AjpAprProcessor','readMessage(AjpMessage, boolean)',NULL),(14968,'NO-OP\nTODO Check if this is really a NO-OP for AJP or if something\nneeds to be done here','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',382,384,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','DESIGN'),(14969,'NO-OP','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',382,382,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14970,'NO-OP\nTODO Check if this is really a NO-OP for AJP or if something\nneeds to be done here','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',444,446,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','DESIGN'),(14971,'NO-OP\nAutomatically populated during prepareRequest()','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',441,442,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14972,'NO-OP\nTODO Check if this is really a NO-OP for AJP or if something\nneeds to be done here','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',458,460,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','DESIGN'),(14973,'NO-OP\nThis information is not available when using the AJP protocol','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',453,454,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14974,'TODO','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',520,520,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14975,'Assume it is always possible write data.\nTODO Investigate \'true\' non-blocking IO for AJP.','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',528,529,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','DESIGN'),(14976,'TODO','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',524,524,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','NOT_DESIGN'),(14977,'None','None','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',-1,-1,'None','None',NULL),(14978,'Web Server only sends data when asked so unless end of stream has\nbeen reached, there should be data available.\nTODO Figure out if a \'true\' non-blocking approach is possible\nfor AJP and what changes would be required to support it.','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',519,522,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14979,'Should probably log the throwable','Line','webapps/examples/WEB-INF/classes/nonblocking/NumberWriter.java',144,144,'nonblocking.NumberWriter','onError(Throwable)',NULL),(14980,'Until \'true\' non-blocking IO is implemented, assume it is always\npossible write data.','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',528,529,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14981,'TODO','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',534,534,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','NOT_DESIGN'),(14982,'NO-OP. Not required until \'true\' non-blocking IO is implemented.','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',534,534,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14983,'TODO Investigate options to get this test to pass with the HTTP BIO\nconnector.','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',92,93,'org.apache.catalina.nonblocking.TestNonBlockingAPI','testNonBlockingRead()',NULL),(14984,'Web Server only sends data when asked so unless end of stream has\nbeen reached, there should be data available.\nTODO Figure out if a \'true\' non-blocking approach is possible\nfor AJP and what changes would be required to support it.','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',545,548,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','NOT_DESIGN'),(14985,'TODO\nUntil \'true\' non-blocking IO is implemented, assume it is always\npossible write data.','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',574,576,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(14986,'4 - hardcoded, byte[] marshaling overhead\nAdjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',1511,1512,'org.apache.coyote.ajp.AbstractAjpProcessor','doWrite(ByteChunk, Response)',NULL),(14987,'4 - hardcoded, byte[] marshaling overhead','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',1514,1514,'org.apache.coyote.ajp.AbstractAjpProcessor','doWrite(ByteChunk, Response)',NULL),(14988,'Calling code should ensure that there is no data in the buffers for\nnon-blocking writes.\nTODO Validate the assertion above','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',1411,1413,'org.apache.coyote.ajp.AbstractAjpProcessor','flush(boolean)',NULL),(14989,'4 - hardcoded, byte[] marshaling overhead','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',1555,1555,'org.apache.coyote.ajp.AbstractAjpProcessor','doWrite(ByteChunk, Response)','NOT_DESIGN'),(14990,'TODO\nUntil \'true\' non-blocking IO is implemented, assume it is always\npossible write data.','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',612,614,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','DESIGN'),(14991,'set the query timeout to 2 sec\nthis keeps this test from slowing things down too much','Line','modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidationQueryTimeout.java',144,145,'org.apache.tomcat.jdbc.test.TestValidationQueryTimeout','setUp()',NULL),(14992,'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',751,752,'org.apache.catalina.loader.WebappClassLoader','setRepository(String, File)','DESIGN'),(14993,'None','None','java/org/apache/catalina/loader/WebappClassLoader.java',-1,-1,'None','None',NULL),(14994,'probably a resource not in the filesystem (e.g. in a\npackaged war)','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2711,2712,'org.apache.catalina.loader.WebappClassLoader','findResourceInternal(String, String)','NOT_DESIGN'),(14995,'Setting up the JAR repository (/WEB-INF/lib), if it exists\nTODO Simplify this in a similar manner to WEB-INF/classes','Line','java/org/apache/catalina/loader/WebappLoader.java',703,704,'org.apache.catalina.loader.WebappLoader','getClassLoader()',NULL),(14996,'TODO Add hook to enable user registered factories to be unloaded on web\napplication stop.','Line','java/org/apache/catalina/webresources/TomcatURLStreamHandlerFactory.java',26,27,'None','None','NOT_DESIGN'),(14997,'TODO: This isn\'t pretty but it works. Significant refactoring would\nbe required to avoid the exception.','Line','java/javax/el/Util.java',480,481,'javax.el.Util','handleThrowable(Throwable)','DESIGN'),(14998,'None','None','java/javax/el/Util.java',-1,-1,'None','None',NULL),(14999,'None','None','java/org/apache/catalina/webresources/Cache.java',-1,-1,'None','None',NULL),(15000,'Client thread might move faster than server. Wait for upto 5s for the\nsubProtocols to be set','Line','test/org/apache/tomcat/websocket/TestWsSubprotocols.java',89,90,'org.apache.tomcat.websocket.TestWsSubprotocols','None',NULL),(15001,'None','None','java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java',-1,-1,'None','None',NULL),(15002,'if the same instance of this transformer was already added, bail out','Line','java/org/apache/catalina/loader/WebappClassLoader.java',772,772,'org.apache.catalina.loader.WebappClassLoader','addTransformer(ClassFileTransformer)',NULL),(15003,'Skipping an empty poll set means skipping a wait\ntime of pollerTime microseconds. If most of the\npoll sets are skipped then this loop will be\ntighter than expected which could lead to higher\nthan expected CPU usage. Extending the\nnextPollerTime ensures that this loop always\ntakes about the same time to execute.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',1758,1764,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(15004,'TODO gotta catch RejectedExecutionException and properly handle it','Line','java/org/apache/tomcat/util/net/JIoEndpoint.java',584,584,'org.apache.tomcat.util.net.JIoEndpoint','setHandler(Handler)','NOT_DESIGN'),(15005,'Note: Logic in AbstractProtocol depends on this method only returning\na non-null value if the iterator is non-empty. i.e. it should never\nreturn an empty iterator.','Line','java/org/apache/tomcat/util/net/SocketWrapper.java',122,124,'org.apache.tomcat.util.net.SocketWrapper','getIteratorAndClearDispatches()',NULL),(15006,'None','None','java/org/apache/catalina/webresources/TomcatURLStreamHandlerFactory.java',-1,-1,'None','None',NULL),(15007,'later on, improve latch behavior','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1178,1178,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)','NOT_DESIGN'),(15008,'TODO SERVLET3 - async','Line','java/org/apache/catalina/core/StandardWrapperValve.java',200,200,'org.apache.catalina.core.StandardWrapperValve','invoke(Request, Response)','NOT_DESIGN'),(15009,'None','None','java/org/apache/catalina/core/StandardWrapperValve.java',-1,-1,'None','None',NULL),(15010,'This method is deprecated and for good reason. This\nis very risky code but is the only option at this\npoint. A *very* good reason for apps to do this\nclean-up themselves.','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2201,2204,'org.apache.catalina.loader.WebappClassLoader','clearReferencesThreads()',NULL),(15011,'TODO','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Room.java',158,158,'websocket.drawboard.Room','run()','NOT_DESIGN'),(15012,'Don\'t ingore RuntimeExceptions thrown by\nthis method\nTODO: Find a better solution than this variable','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardEndpoint.java',179,181,'websocket.drawboard.DrawboardEndpoint','getRoom()',NULL),(15013,'Client sent invalid data.\nIgnore, TODO: maybe close connection','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardEndpoint.java',192,193,'websocket.drawboard.DrawboardEndpoint','getRoom()',NULL),(15014,'TODO: Check if the buffered messages exceed\na specific amount - in that case, disconnect the client\nto prevent DoS.','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',63,65,'websocket.drawboard.Client','None','DESIGN'),(15015,'TODO: Check if the last message is a\nString message - in that case we should concatenate them','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',67,68,'websocket.drawboard.Client','None','NOT_DESIGN'),(15016,'Check if we have a Close message','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',88,88,'websocket.drawboard.Client','close()',NULL),(15017,'Check if the buffered messages exceed\na specific amount - in that case, disconnect the client\nto prevent DoS.\nIn this case we check if there are >= 1000 messages\nor length(of all messages) >= 1000000 bytes.','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',94,98,'websocket.drawboard.Client','close()',NULL),(15018,'Discard the new message and close the session immediately.','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',103,103,'websocket.drawboard.Client','close()',NULL),(15019,'Ignore','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',110,110,'websocket.drawboard.Client','close()',NULL),(15020,'Check if the last message and the new message are\nString messages - in that case we concatenate them','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',115,116,'websocket.drawboard.Client','close()',NULL),(15021,'None','None','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',-1,-1,'None','None',NULL),(15022,'TODO: If (x1 == x2 || y1 == y2) draw as line.','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawMessage.java',179,179,'websocket.drawboard.DrawMessage','getType()',NULL),(15023,'TODO: Dispose of BufferedImage and Graphics2D','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Room.java',332,332,'websocket.drawboard.Room','run()','NOT_DESIGN'),(15024,'None','None','webapps/examples/WEB-INF/classes/websocket/drawboard/Room.java',-1,-1,'None','None',NULL),(15025,'Don\'t ingore RuntimeExceptions thrown by\nthis method\nTODO: Find a better solution than this variable','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardEndpoint.java',182,184,'websocket.drawboard.DrawboardEndpoint','getRoom()',NULL),(15026,'Don\'t ingore RuntimeExceptions thrown by\nthis method\nTODO: Find a better solution than this variable','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardEndpoint.java',197,199,'websocket.drawboard.DrawboardEndpoint','getRoom(boolean)',NULL),(15027,'Client sent invalid data.\nIgnore, TODO: maybe close connection','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardEndpoint.java',195,196,'websocket.drawboard.DrawboardEndpoint','getRoom()',NULL),(15028,'Client sent invalid data.\nIgnore, TODO: maybe close connection','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardEndpoint.java',210,211,'websocket.drawboard.DrawboardEndpoint','getRoom(boolean)',NULL),(15029,'Not entirely sure why this is necessary. Testing to date has not\nidentified any issues with this but log it so it can be tracked\nif it is suspected of causing issues in the future.','Line','java/org/apache/coyote/http11/upgrade/AprServletInputStream.java',100,102,'org.apache.coyote.http11.upgrade.AprServletInputStream','doRead(boolean, byte[], int, int)',NULL),(15030,'TODO: close() may block if the remote endpoint doesn\'t read the data\n(eventually there will be a TimeoutException). However, this method\n(sendMessage) is intended to run asynchronous code and shouldn\'t\nblock. Otherwise it would temporarily stop processing of messages\nfrom other clients.\nMaybe call this method on another thread.\nNote that when this method is called, the RemoteEndpoint.Async\nis still in the process of sending data, so there probably should\nbe another way to abort the Websocket connection.\nIdeally, there should be some abort() method that cancels the\nconnection immediately...','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/Client.java',108,118,'websocket.drawboard.Client','close()',NULL),(15031,'Looking at the repository\nTODO Add support to WebResourceRoot for looking up class loader\nresoucres','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1198,1200,'org.apache.catalina.loader.WebappClassLoader','findResources(String)',NULL),(15032,'Special case UTF-8 files with BOM created by Microsoft\ntools. It\'s more efficient to consume the BOM than make\nthe reader perform extra checks. -Ac','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',158,160,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, JarFile, JspCompilationContext, ErrorDispatcher)',NULL),(15033,'Special case UTF-8 files with BOM created by Microsoft\ntools. It\'s more efficient to consume the BOM than make\nthe reader perform extra checks. -Ac','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',157,159,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, Jar, JspCompilationContext, ErrorDispatcher)',NULL),(15034,'UCS-4, unusual octet order (2143)\nREVISIT: What should this be?','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',330,331,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, JarFile, JspCompilationContext, ErrorDispatcher)',NULL),(15035,'UCS-4, unusual octet order (2143)\nREVISIT: What should this be?','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',329,330,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, Jar, JspCompilationContext, ErrorDispatcher)',NULL),(15036,'UCS-4, unusual octect order (3412)\nREVISIT: What should this be?','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',335,336,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, JarFile, JspCompilationContext, ErrorDispatcher)',NULL),(15037,'UCS-4, unusual octect order (3412)\nREVISIT: What should this be?','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',334,335,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, Jar, JspCompilationContext, ErrorDispatcher)',NULL),(15038,'UTF-16, big-endian, no BOM\n(or could turn out to be UCS-2...\nREVISIT: What should this be?','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',340,342,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, JarFile, JspCompilationContext, ErrorDispatcher)',NULL),(15039,'UTF-16, big-endian, no BOM\n(or could turn out to be UCS-2...\nREVISIT: What should this be?','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',339,341,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, Jar, JspCompilationContext, ErrorDispatcher)',NULL),(15040,'REVISIT: Does this need to be updated to fix the\n#x0D ^#x0A newline normalization problem? -Ac','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',870,871,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, JarFile, JspCompilationContext, ErrorDispatcher)',NULL),(15041,'REVISIT: Does this need to be updated to fix the\n#x0D ^#x0A newline normalization problem? -Ac','Line','java/org/apache/jasper/xmlparser/XMLEncodingDetector.java',869,870,'org.apache.jasper.xmlparser.XMLEncodingDetector','getEncoding(String, Jar, JspCompilationContext, ErrorDispatcher)',NULL),(15042,'At this point, \'isExternal\' or \'isXml\' is FALSE.\nSearch for jsp:root action, in order to determine if we\'re dealing\nwith XML or standard syntax (unless we already know what we\'re\ndealing with, i.e., when \'isExternal\' is TRUE and \'isXml\' is FALSE).\nNo check for XML prolog, since nothing prevents a page from\noutputting XML and still using JSP syntax (in this case, the\nXML prolog is treated as template text).','Block','java/org/apache/jasper/compiler/ParserController.java',376,384,'org.apache.jasper.compiler.ParserController','determineSyntaxAndEncoding(String, JarFile, String)',NULL),(15043,'At this point, \'isExternal\' or \'isXml\' is FALSE.\nSearch for jsp:root action, in order to determine if we\'re dealing\nwith XML or standard syntax (unless we already know what we\'re\ndealing with, i.e., when \'isExternal\' is TRUE and \'isXml\' is FALSE).\nNo check for XML prolog, since nothing prevents a page from\noutputting XML and still using JSP syntax (in this case, the\nXML prolog is treated as template text).','Block','java/org/apache/jasper/compiler/ParserController.java',362,370,'org.apache.jasper.compiler.ParserController','determineSyntaxAndEncoding(String, Jar, String)',NULL),(15044,'XXX','Line','java/org/apache/jasper/compiler/JspDocumentParser.java',232,232,'org.apache.jasper.compiler.JspDocumentParser','parse(ParserController, String, JarFile, Node, boolean, boolean, String, String, boolean, boolean)',NULL),(15045,'XXX','Line','java/org/apache/jasper/compiler/JspDocumentParser.java',230,230,'org.apache.jasper.compiler.JspDocumentParser','parse(ParserController, String, Jar, Node, boolean, boolean, String, String, boolean, boolean)',NULL),(15046,'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',95,98,'org.apache.catalina.webresources.Cache','getResource(String)',NULL),(15047,'Don\'t cache resources used by the class loader (it has its own cache)\nTODO. Review these exclusions once class loader resource handling is\ncomplete','Line','java/org/apache/catalina/webresources/Cache.java',143,145,'org.apache.catalina.webresources.Cache','noCache(String)',NULL),(15048,'The certificates are only available after the JarEntry\nassociated input stream has been fully read\nTODO','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2892,2894,'org.apache.catalina.loader.WebappClassLoader','findResourceInternal(String, String)',NULL),(15049,'Looking at the repository\nTODO Add support to WebResourceRoot for looking up class loader\nresoucres','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1168,1170,'org.apache.catalina.loader.WebappClassLoader','findResources(String)','NOT_DESIGN'),(15050,'FIXME - findLoadedResource()','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2964,2964,'org.apache.catalina.loader.WebappClassLoader','findLoadedClass0(String)','NOT_DESIGN'),(15051,'Setting up the JAR repository (/WEB-INF/lib), if it exists\nTODO Simplify this in a similar manner to WEB-INF/classes','Line','java/org/apache/catalina/loader/WebappLoader.java',638,639,'org.apache.catalina.loader.WebappLoader','getClassLoader()','DESIGN'),(15052,'Bug 45403 - Check that the resource is readable','Line','java/org/apache/catalina/loader/WebappLoader.java',685,685,'org.apache.catalina.loader.WebappLoader','getClassLoader()','NOT_DESIGN'),(15053,'The certificates are only available after the JarEntry\nassociated input stream has been fully read\nTODO','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2507,2509,'org.apache.catalina.loader.WebappClassLoader','findResourceInternal(String, String)','DESIGN'),(15054,'The certificates and manifest are made available as a side\neffect of reading the binary content','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2480,2481,'org.apache.catalina.loader.WebappClassLoader','findResourceInternal(String, String)',NULL),(15055,'TODO - get content first','Line','java/org/apache/catalina/webresources/AbstractArchiveResource.java',186,186,'org.apache.catalina.webresources.AbstractArchiveResource','getBase()',NULL),(15056,'ToDo: Why doesn\'t remove repositories?','Line','test/org/apache/catalina/loader/TestVirtualWebappLoader.java',68,68,'org.apache.catalina.loader.TestVirtualWebappLoader','testStartInternal()','DESIGN'),(15057,'None','None','test/org/apache/catalina/loader/TestVirtualWebappLoader.java',-1,-1,'None','None',NULL),(15058,'Set because we don\'t want duplicates\nLinkedHashSet to retain the order (shouldn\'t matter but Jira is\nsensitive to the order the JARs are returned in).\nTODO - Revert to HashSet','Line','java/org/apache/catalina/webresources/StandardRoot.java',114,117,'org.apache.catalina.webresources.StandardRoot','list(String)','DESIGN'),(15059,'Set because we don\'t want duplicates\nLinkedHashSet to retain the order. It is the order of the\nWebResourceSet that matters but it is simpler to retain the order\nover all of the JARs.','Line','java/org/apache/catalina/webresources/StandardRoot.java',114,117,'org.apache.catalina.webresources.StandardRoot','list(String)',NULL),(15060,'XXX - We use a proprietary call to the interpreter for now\nas the current standard machinery is inefficient and requires\nlots of wrappers and adapters. This should all clear up once\nthe EL interpreter moves out of JSTL and into its own project.\nIn the future, this should be replaced by code that calls\nExpressionEvaluator.parseExpression() and then cache the resulting\nexpression objects. The interpreterCall would simply select\none of the pre-cached expressions and evaluate it.\nNote that PageContextImpl implements VariableResolver and\nthe generated Servlet/SimpleTag implements FunctionMapper, so\nthat machinery is already in place (mroth).','Line','java/org/apache/jasper/compiler/JspUtil.java',396,406,'org.apache.jasper.compiler.JspUtil','interpreterCall(boolean, String, Class<?>, String, boolean)',NULL),(15061,'XXX - We use a proprietary call to the interpreter for now\nas the current standard machinery is inefficient and requires\nlots of wrappers and adapters. This should all clear up once\nthe EL interpreter moves out of JSTL and into its own project.\nIn the future, this should be replaced by code that calls\nExpressionEvaluator.parseExpression() and then cache the resulting\nexpression objects. The interpreterCall would simply select\none of the pre-cached expressions and evaluate it.\nNote that PageContextImpl implements VariableResolver and\nthe generated Servlet/SimpleTag implements FunctionMapper, so\nthat machinery is already in place (mroth).','Line','java/org/apache/jasper/compiler/JspUtil.java',390,400,'org.apache.jasper.compiler.JspUtil','interpreterCall(boolean, String, Class<?>, String)',NULL),(15062,'Client sent Expect: 100-continue but received a\nnon-2xx response. Disable keep-alive (if enabled) to\nensure the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1058,1063,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapper<S>)',NULL),(15063,'XXX FIXME\nresolveRelativeUri and/or getResourceAsStream don\'t seem to properly\nhandle relative paths when dealing when home and getDocBase are set\nthe following is a workaround until these problems are resolved.','Line','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',111,114,'org.apache.jasper.compiler.TagLibraryInfoImpl','print(String, String, PrintWriter)','DESIGN'),(15064,'None','None','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',-1,-1,'None','None',NULL),(15065,'@param ctxt The JSP compilation context @param uri The TLD\'s uri @param\nin The TLD\'s input stream @param jarFileUrl The JAR file containing the\nTLD, or null if the tag library is not packaged in a JAR','Block','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',191,195,'org.apache.jasper.compiler.TagLibraryInfoImpl','print(String, String, PrintWriter)','DESIGN'),(15066,'Get the representation of the TLD','Line','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',155,155,'org.apache.jasper.compiler.TagLibraryInfoImpl','print(String, String, PrintWriter)',NULL),(15067,'Populate the TagLibraryInfo attributes','Line','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',159,159,'org.apache.jasper.compiler.TagLibraryInfoImpl','print(String, String, PrintWriter)',NULL),(15068,'TODO Move this validation to the parsing stage','Line','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',180,180,'org.apache.jasper.compiler.TagLibraryInfoImpl','print(String, String, PrintWriter)',NULL),(15069,'TODO enable validation','Line','java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java',121,121,'org.apache.jasper.compiler.ImplicitTagLibraryInfo','getTagFile(String)','NOT_DESIGN'),(15070,'quick hack','Line','java/org/apache/jasper/EmbeddedServletOptions.java',460,460,'org.apache.jasper.EmbeddedServletOptions','None','DESIGN'),(15071,'None','None','java/org/apache/jasper/EmbeddedServletOptions.java',-1,-1,'None','None',NULL),(15072,'TODO we should play nice and only set this if it\'s null','Line','java/org/apache/jasper/servlet/JasperInitializer.java',74,74,'org.apache.jasper.servlet.JasperInitializer','onStartup(Set<Class<?>>, ServletContext)',NULL),(15073,'Client sent invalid data\nIgnore, TODO: maybe close connection','Line','webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardEndpoint.java',212,213,'websocket.drawboard.DrawboardEndpoint','getRoom(boolean)',NULL),(15074,'TODO Add 2.4, 2.5, 3.0','Line','java/org/apache/jasper/Constants.java',154,154,'org.apache.jasper.Constants','None','NOT_DESIGN'),(15075,'None','None','java/org/apache/jasper/Constants.java',-1,-1,'None','None',NULL),(15076,'Should never happen\nTODO Better message','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',1005,1006,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15077,'TODO Better (well, any) message','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',1018,1018,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15078,'This must be a Control message else the state machine would\nhave thrown an IllegalStateException.\nLeave the check in place for now.\nTODO Remove this check if there are no reports of problems','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',267,270,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15079,'Should never happen\nTODO Better message','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',994,995,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15080,'Should never happen\nThe if ... else ... blocks above should cover all states\npermitted by the preceding checkState() call','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',994,996,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15081,'TODO Better (well, any) message','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',1007,1007,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()','NOT_DESIGN'),(15082,'None','None','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',-1,-1,'None','None',NULL),(15083,'This must be a Control message else the state machine would\nhave thrown an IllegalStateException.\nLeave the check in place for now.\nTODO Remove this check if there are no reports of problems','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',261,264,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()','DESIGN'),(15084,'When a control message is sent while another message is being\nthe control message is queued. Chances are the subsequent\ndata message part will end up queued while the control\nmessage is sent. The logic in this class (state machine,\nEndMessageHanlder, TextMessageSendHandler) ensures that there\nwill only ever be one data message part in the queue. There\ncould be multiple control messages in the queue.','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',261,267,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15085,'Add it to the queue','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',269,269,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15086,'None','None','java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java',-1,-1,'None','None',NULL),(15087,'No digests, compare directly','Line','java/org/apache/catalina/realm/RealmBase.java',558,558,'org.apache.catalina.realm.RealmBase','getContainer()',NULL),(15088,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupport.java',49,49,'org.apache.tomcat.util.http.TestSetCookieSupport','v0ValueContainsSemicolon()','DESIGN'),(15089,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupport.java',56,56,'org.apache.tomcat.util.http.TestSetCookieSupport','v0ValueContainsComma()','DESIGN'),(15090,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupport.java',63,63,'org.apache.tomcat.util.http.TestSetCookieSupport','v0ValueContainsSpace()','DESIGN'),(15091,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java',52,52,'org.apache.tomcat.util.http.TestSetCookieSupportSeparatorsAllowed','v0ValueContainsSemicolon()',NULL),(15092,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java',59,59,'org.apache.tomcat.util.http.TestSetCookieSupportSeparatorsAllowed','v0ValueContainsComma()',NULL),(15093,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java',66,66,'org.apache.tomcat.util.http.TestSetCookieSupportSeparatorsAllowed','v0ValueContainsSpace()',NULL),(15094,'We\'re included\nSpec doesn\'t say what to do in this case but a FNFE seems\nreasonable','Line','java/org/apache/catalina/servlets/DefaultServlet.java',735,737,'org.apache.catalina.servlets.DefaultServlet','destroy()',NULL),(15095,'Bug 49000','Line','test/org/apache/tomcat/util/http/TestCookies.java',105,105,'org.apache.tomcat.util.http.TestCookies','testNameOnlyCookies()','NOT_DESIGN'),(15096,'None','None','test/org/apache/tomcat/util/http/TestCookies.java',-1,-1,'None','None',NULL),(15097,'Bug 49000','Line','test/org/apache/tomcat/util/http/TestCookies.java',50,50,'org.apache.tomcat.util.http.TestCookies','testNameOnlyAreDropped()',NULL),(15098,'FIXME - add instance if already started?','Line','java/org/apache/catalina/core/StandardContext.java',2613,2613,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(15099,'FIXME - add instance if already started?','Line','java/org/apache/catalina/core/StandardContext.java',2627,2627,'org.apache.catalina.core.StandardContext','setContainerSciFilter(String)',NULL),(15100,'FIXME: Older spec revisions may still check this','Line','java/org/apache/catalina/core/StandardContext.java',2839,2839,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(15101,'FIXME: Older spec revisions may still check this','Line','java/org/apache/catalina/core/StandardContext.java',2853,2853,'org.apache.catalina.core.StandardContext','setContainerSciFilter(String)',NULL),(15102,'FIXME - behavior if already started?','Line','java/org/apache/catalina/core/StandardContext.java',3768,3768,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(15103,'FIXME - behavior if already started?','Line','java/org/apache/catalina/core/StandardContext.java',3782,3782,'org.apache.catalina.core.StandardContext','setContainerSciFilter(String)',NULL),(15104,'FIXME: i18n','Line','java/org/apache/catalina/core/StandardContext.java',6182,6182,'org.apache.catalina.core.StandardContext','getSendRedirectBody()',NULL),(15105,'FIXME: i18n','Line','java/org/apache/catalina/core/StandardContext.java',6196,6196,'org.apache.catalina.core.StandardContext','setContainerSciFilter(String)',NULL),(15106,'PROTOCOL_ERROR is probably better than GOING_AWAY here','Line','java/org/apache/tomcat/websocket/WsSession.java',470,470,'org.apache.tomcat.websocket.WsSession','sendCloseMessage(CloseReason)',NULL),(15107,'Wait up to another 10 seconds for the connection to be closed -\nshould be a lot faster.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java',141,142,'org.apache.tomcat.websocket.TestWebSocketFrameClient','testBug56032()',NULL),(15108,'TODO Investigate options to get this test to pass with the HTTP BIO\nconnector.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java',95,96,'org.apache.tomcat.websocket.TestWebSocketFrameClient','testBug56032()',NULL),(15109,'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',130,131,'org.apache.catalina.core.StandardHostValve','None','NOT_DESIGN'),(15110,'None','None','java/org/apache/catalina/core/StandardHostValve.java',-1,-1,'None','None',NULL),(15111,'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',237,238,'org.apache.catalina.core.StandardHostValve','invoke(Request, Response)','NOT_DESIGN'),(15112,'If really fatal - re-throw','Line','java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java',87,87,'org.apache.tomcat.websocket.pojo.PojoEndpointBase','handleOnOpenError(Session, Throwable)',NULL),(15113,'It is better to make sure the method is accessible, but\nignore exceptions and hope for the best','Line','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java',55,56,'org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase','processResult(Object)',NULL),(15114,'TODO: The method should already accessible here but the following\ncode seems to be necessary in some as yet not fully understood cases.','Line','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java',52,53,'org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase','processResult(Object)',NULL),(15115,'If this is a non-container thread, need to trigger a read\nwhich will eventually lead to a call to onAllDataRead() via a\ncontainer thread.','Line','java/org/apache/catalina/connector/InputBuffer.java',280,282,'org.apache.catalina.connector.InputBuffer','isReady()',NULL),(15116,'When a control message is sent while another message is being\nthe control message is queued. Chances are the subsequent\ndata message part will end up queued while the control\nmessage is sent. The logic in this class (state machine,\nEndMessageHanlder, TextMessageSendHandler) ensures that there\nwill only ever be one data message part in the queue. There\ncould be multiple control messages in the queue.','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',262,268,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()','DESIGN'),(15117,'When a control message is sent while another message is being\nsent, the control message is queued. Chances are the\nsubsequent data message part will end up queued while the\ncontrol message is sent. The logic in this class (state\nmachine, EndMessageHandler, TextMessageSendHandler) ensures\nthat there will only ever be one data message part in the\nqueue. There could be multiple control messages in the queue.','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',263,269,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15118,'Add it to the queue','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',271,271,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','getSendTimeout()',NULL),(15119,'Manually add some version specific features to ensure that these do\nnot cause problems for the merged web.xml','Line','test/org/apache/tomcat/util/descriptor/web/TestWebXml.java',224,225,'org.apache.tomcat.util.descriptor.web.TestWebXml','getDefaultWebXmlFragment()',NULL),(15120,'Don\'t cache resources used by the class loader (it has its own cache)\nTODO. Review these exclusions once class loader resource handling is\ncomplete','Line','java/org/apache/catalina/webresources/Cache.java',147,149,'org.apache.catalina.webresources.Cache','noCache(String)','DESIGN'),(15121,'Don\'t cache resources used by the class loader (it has its own cache)','Line','java/org/apache/catalina/webresources/Cache.java',147,147,'org.apache.catalina.webresources.Cache','noCache(String)',NULL),(15122,'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/Http11Nio2Processor.java',493,495,'org.apache.coyote.http11.Http11Nio2Processor','actionInternal(ActionCode, Object)',NULL),(15123,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java',155,155,'org.apache.coyote.http11.upgrade.Nio2ServletInputStream','doRead(boolean, byte[], int, int)',NULL),(15124,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java',182,182,'org.apache.coyote.http11.upgrade.Nio2ServletInputStream','doRead(boolean, byte[], int, int)',NULL),(15125,'allocate network buffers - TODO, add in optional direct non-direct buffers','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',67,67,'org.apache.tomcat.util.net.SecureNio2Channel','None',NULL),(15126,'ensure that the application has a large enough read/write buffers\nby doing this, we should not encounter any buffer overflow errors\nFIXME: this does nothing, so it is in the NIO2 endpoint','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',100,102,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapper<Nio2Channel>)',NULL),(15127,'if we need more network data, then bail out for now.','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',503,503,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapper<Nio2Channel>)',NULL),(15128,'FIXME: would need some specific statistics gathering','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',274,274,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15129,'FIXME: remove when more stable','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',352,352,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15130,'FIXME: In theory, awaitBytes is better, but the SSL handshake is done by processSocket','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',495,495,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15131,'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/Nio2Endpoint.java',1142,1148,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15132,'Work-around for XML documents that use just the file name for the\nlocation to refer to a JavaEE schema','Line','java/org/apache/tomcat/util/descriptor/LocalResolver.java',103,104,'org.apache.tomcat.util.descriptor.LocalResolver','resolveEntity(String, String, String, String)',NULL),(15133,'TODO Investigate options to get this test to pass with the HTTP BIO\nconnector.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java',142,143,'org.apache.tomcat.websocket.TestWebSocketFrameClient','testBug56032()',NULL),(15134,'TODO Investigate options to get this test to pass with the HTTP BIO\nconnector.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',98,99,'org.apache.tomcat.websocket.TestWebSocketFrameClientSSL','testBug56032()',NULL),(15135,'Wait up to another 10 seconds for the connection to be closed -\nshould be a lot faster.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java',194,195,'org.apache.tomcat.websocket.TestWebSocketFrameClient','testBug56032()',NULL),(15136,'Wait up to another 10 seconds for the connection to be closed -\nshould be a lot faster.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',150,151,'org.apache.tomcat.websocket.TestWebSocketFrameClientSSL','testBug56032()',NULL),(15137,'TODO Skip NIO2 since its CPU use on non blocking writes to\ndo the encryption inline apparently messes up\nthe websockets writes, which deadlock until timedout.\nCan be reproduced in NIO by adding a Thread.sleep in\nwrites. Reenable later when investigated and fixed.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',48,52,'org.apache.tomcat.websocket.TestWebSocketFrameClientSSL','testConnectToServerEndpoint()',NULL),(15138,'allocate network buffers - TODO, add in optional direct non-direct buffers','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',66,66,'org.apache.tomcat.util.net.SecureNio2Channel','None','NOT_DESIGN'),(15139,'None','None','java/org/apache/tomcat/util/net/SecureNio2Channel.java',-1,-1,'None','None',NULL),(15140,'ensure that the application has a large enough read/write buffers\nby doing this, we should not encounter any buffer overflow errors\nFIXME: this does nothing, so it is in the NIO2 endpoint','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',99,101,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapper<Nio2Channel>)','DESIGN'),(15141,'FIXME Skip NIO2 since its CPU use on non blocking writes to\ndo the encryption inline apparently messes up\nthe websockets writes, which deadlock until timedout.\nReenable later when investigated and fixed.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',48,51,'org.apache.tomcat.websocket.TestWebSocketFrameClientSSL','testConnectToServerEndpoint()',NULL),(15142,'For this connector, only the overall connection count is relevant','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',273,273,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15143,'FIXME: In theory, awaitBytes is better, but the SSL handshake is done by processSocket','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',497,497,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','DESIGN'),(15144,'Use the regular processing, as the first handshake needs to be done there','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',497,497,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15145,'Wait until some bytes are available to start the real processing','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',500,500,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15146,'Socket was probably closed before client had a chance to read\nresponse','Line','test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java',410,411,'org.apache.coyote.http11.filters.TestChunkedInputFilter','testChunkHeaderCRLF()',NULL),(15147,'FIXME Skip NIO2 since its CPU use on non blocking writes to\ndo the encryption inline apparently messes up\nthe websockets writes, which deadlock until timedout.\nReenable later when investigated and fixed.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',49,52,'org.apache.tomcat.websocket.TestWebSocketFrameClientSSL','testConnectToServerEndpoint()','NOT_DESIGN'),(15148,'Must have a real docBase - just use temp','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',51,51,'org.apache.tomcat.websocket.TestWebSocketFrameClientSSL','testConnectToServerEndpoint()',NULL),(15149,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java',186,186,'org.apache.coyote.http11.upgrade.Nio2ServletInputStream','doRead(boolean, byte[], int, int)','NOT_DESIGN'),(15150,'None','None','java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java',-1,-1,'None','None',NULL),(15151,'TODO Identify a class to test for Java 9','Line','test/org/apache/tomcat/util/buf/TestUtf8.java',72,72,'org.apache.tomcat.util.buf.TestUtf8','None','DESIGN'),(15152,'N.B. this is eventually closed in MultipartStream processing','Line','java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java',808,808,'org.apache.tomcat.util.http.fileupload.FileUploadBase','isMultipartContent(RequestContext)',NULL),(15153,'kind of backwards on naming.  In the map, each key is the\nPooledObject because it has the ordering with the timestamp\nvalue.  Each value that the key references is the key of the\nlist it belongs to.','Line','java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java',758,761,'org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool','getMaxTotalPerKey()',NULL),(15154,'TODO - May need to add code here once additional\nstates are used','Line','java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java',961,962,'org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool','getMaxTotalPerKey()',NULL),(15155,'The map is keyed on pooled instances.  Note: pooled instances\n<em>must</em> be distinguishable by equals for this structure to\nwork properly.','Block','java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java',1413,1417,'org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool','getMaxTotalPerKey()',NULL),(15156,'XXX: Pool 3: move test\nout of sync block','Line','java/org/apache/tomcat/dbcp/pool2/PoolUtils.java',1453,1454,'org.apache.tomcat.dbcp.pool2.PoolUtils','checkRethrow(Throwable)',NULL),(15157,'TODO add other attributes','Line','java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java',152,152,'org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject','getObject()',NULL),(15158,'TODO - Should never happen','Line','java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java',174,174,'org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject','getObject()',NULL),(15159,'TODO Allocate anyway and ignore eviction test','Line','java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java',198,198,'org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject','getObject()',NULL),(15160,'TODO if validating and testOnBorrow == true then pre-allocate for\nperformance','Line','java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java',202,203,'org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject','getObject()',NULL),(15161,'TODO Simplify this once getBorrowedCount has been added to PooledObject','Line','java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObjectInfo.java',96,96,'org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObjectInfo','getBorrowedCount()',NULL),(15162,'TODO add other attributes\nTODO encapsulate state and other attribute display in parent','Line','java/org/apache/tomcat/dbcp/pool2/impl/PooledSoftReference.java',74,75,'org.apache.tomcat.dbcp.pool2.impl.PooledSoftReference','toString()',NULL),(15163,'The JDBC spec requires that a statment close any open\nResultSet\'s when it is closed.\nFIXME The PreparedStatement we\'re wrapping should handle this for us.\nSee bug 17301 for what could happen when ResultSets are closed twice.','Line','java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java',142,145,'org.apache.tomcat.dbcp.dbcp2.DelegatingStatement','close()',NULL),(15164,'TODO - May need to add code here once additional\nstates are used','Line','java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java',803,804,'org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool','getMaxIdle()',NULL),(15165,'Can\'t create objects, no reason to think another call to\ncreate will work. Give up.','Line','java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java',898,899,'org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool','getMaxIdle()',NULL),(15166,'Related to DBCP-212\nDriver manager does not sync loading of drivers that use the service\nprovider interface. This will cause issues is multi-threaded\nenvironments. This hack makes sure the drivers are loaded before\nDBCP tries to use them.','Line','java/org/apache/tomcat/dbcp/dbcp2/DriverManagerConnectionFactory.java',36,40,'org.apache.tomcat.dbcp.dbcp2.DriverManagerConnectionFactory','None',NULL),(15167,'The JDBC spec requires that a statment close any open\nResultSet\'s when it is closed.\nFIXME The PreparedStatement we\'re wrapping should handle this for us.\nSee DBCP-10 for what could happen when ResultSets are closed twice.','Line','java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java',115,118,'org.apache.tomcat.dbcp.dbcp2.PoolableCallableStatement','passivate()',NULL),(15168,'The JDBC spec requires that a statement closes any open\nResultSet\'s when it is closed.\nFIXME The PreparedStatement we\'re wrapping should handle this for us.\nSee bug 17301 for what could happen when ResultSets are closed twice.','Line','java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java',135,138,'org.apache.tomcat.dbcp.dbcp2.PoolablePreparedStatement','passivate()',NULL),(15169,'should notify pool of error so the pooled connection can\nbe removed !FIXME!','Line','java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/PooledConnectionImpl.java',181,182,'org.apache.tomcat.dbcp.dbcp2.cpdsadapter.PooledConnectionImpl','getConnection()',NULL),(15170,'TODO: possible enhancement, cache these preparedStatements as well','Line','java/org/apache/tomcat/dbcp/dbcp2/PoolingConnection.java',205,205,'org.apache.tomcat.dbcp.dbcp2.PoolingConnection','createKey(String, int)',NULL),(15171,'Implemented as a simple doubly-linked list protected by a\nsingle lock and using conditions to manage blocking.\n\nTo implement weakly consistent iterators, it appears we need to\nkeep all Nodes GC-reachable from a predecessor dequeued Node.\nThat would cause two problems:\n- allow a rogue Iterator to cause unbounded memory retention\n- cause cross-generational linking of old Nodes to new Nodes if\na Node was tenured while live, which generational GCs have a\nhard time dealing with, causing repeated major collections.\nHowever, only non-deleted Nodes need to be reachable from\ndequeued Nodes, and reachability does not necessarily have to\nbe of the kind understood by the GC.  We use the trick of\nlinking a Node that has just been dequeued to itself.  Such a\nself-link implicitly means to jump to \\\"first\\\" (for next links)\nor \\\"last\\\" (for prev links).','Block','java/org/apache/tomcat/dbcp/pool2/impl/LinkedBlockingDeque.java',63,80,'org.apache.tomcat.dbcp.pool2.impl.LinkedBlockingDeque','None',NULL),(15172,'We have \\\"diamond\\\" multiple interface/abstract class inheritance\nhere, and that introduces ambiguities. Often we want the\nBlockingDeque javadoc combined with the AbstractQueue\nimplementation, so a lot of method specs are duplicated here.','Block','java/org/apache/tomcat/dbcp/pool2/impl/LinkedBlockingDeque.java',82,87,'org.apache.tomcat.dbcp.pool2.impl.LinkedBlockingDeque','None',NULL),(15173,'TODO: Add support for more efficient bulk operations.\n\nWe don\'t want to acquire the lock for every iteration, but we\nalso want other threads a chance to interact with the\ncollection, especially when count is close to capacity.','Block','java/org/apache/tomcat/dbcp/pool2/impl/LinkedBlockingDeque.java',945,951,'org.apache.tomcat.dbcp.pool2.impl.LinkedBlockingDeque','linkFirst(E)',NULL),(15174,'TODO Consider changing this to a single property for 3.x','Line','java/org/apache/tomcat/dbcp/pool2/impl/BaseObjectPoolConfig.java',180,180,'org.apache.tomcat.dbcp.pool2.impl.BaseObjectPoolConfig','None',NULL),(15175,'Workaround for buggy WebLogic 5.1 classloader - ignore the\nexception upon first invocation.','Line','java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java',171,172,'org.apache.tomcat.dbcp.dbcp2.cpdsadapter.DriverAdapterCPDS','getPooledConnection(String, String)',NULL),(15176,'TODO: - Reuse the buffer\n- Only reallocate if it gets too big (>8k?)','Line','java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java',160,161,'org.apache.coyote.http11.upgrade.AbstractServletOutputStream','writeInternal(byte[], int, int)','DESIGN'),(15177,'This is a partial write of the existing buffer. Just\nincrement the current position','Line','java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java',166,167,'org.apache.coyote.http11.upgrade.AbstractServletOutputStream','writeInternal(byte[], int, int)',NULL),(15178,'This is a new partial write','Line','java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java',170,170,'org.apache.coyote.http11.upgrade.AbstractServletOutputStream','writeInternal(byte[], int, int)',NULL),(15179,'TODO: bug55975: this checks for \'\\\"\' but not for \'\\\' which also needs escaping','Line','java/org/apache/tomcat/util/http/SetCookieSupport.java',221,221,'org.apache.tomcat.util.http.SetCookieSupport','escapeDoubleQuotes(StringBuffer, String, int, int)','DESIGN'),(15180,'Unused due to buggy client implementations','Line','java/org/apache/tomcat/util/http/parser/Authorization.java',30,30,'org.apache.tomcat.util.http.parser.Authorization','None',NULL),(15181,'None','None','java/org/apache/tomcat/util/http/SetCookieSupport.java',-1,-1,'None','None',NULL),(15182,'TODO we should play nice and only set this if it\'s null','Line','java/org/apache/jasper/servlet/JasperInitializer.java',71,71,'org.apache.jasper.servlet.JasperInitializer','onStartup(Set<Class<?>>, ServletContext)','DESIGN'),(15183,'None','None','java/org/apache/jasper/servlet/JasperInitializer.java',-1,-1,'None','None',NULL),(15184,'FIXME: Why this ActionCode is not implemented for AJP?','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',653,653,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(15185,'Client sent Expect: 100-continue but received a\nnon-2xx response. Disable keep-alive (if enabled) to\nensure the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1121,1126,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapper<S>)',NULL),(15186,'Client sent Expect: 100-continue but received a\nnon-2xx final response. Disable keep-alive (if enabled)\nto ensure that the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1121,1126,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapper<S>)',NULL),(15187,'FIXME: Why this ActionCode is not implemented for AJP?','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',647,647,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)','DESIGN'),(15188,'TODO: Remove','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1104,1104,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapper<S>)',NULL),(15189,'500 - Internal Server Error\nTODO Log this properly','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',164,165,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(15190,'Work around java.net.URL bug','Line','java/org/apache/tomcat/websocket/server/WsHandshakeRequest.java',66,66,'org.apache.tomcat.websocket.server.WsHandshakeRequest','getRequestURI()','NOT_DESIGN'),(15191,'Ugly but the easiest way to test of the session is valid or not','Line','test/org/apache/catalina/session/TestStandardSession.java',87,87,'org.apache.catalina.session.TestStandardSession','doGet(HttpServletRequest, HttpServletResponse)',NULL),(15192,'FIXME: remove when more stable','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',356,356,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15193,'None','None','java/org/apache/tomcat/util/net/Nio2Endpoint.java',-1,-1,'None','None',NULL),(15194,'URI','Line','java/org/apache/tomcat/websocket/server/WsHandshakeRequest.java',56,56,'org.apache.tomcat.websocket.server.WsHandshakeRequest','getRequestURI()',NULL),(15195,'Bug 56612','Line','test/org/apache/jasper/compiler/TestELParser.java',271,271,'org.apache.jasper.compiler.TestELParser','testEscape11()',NULL),(15196,'XXX could move this logic to JspReader\nXXX somewhat wasteful','Line','java/org/apache/jasper/compiler/Parser.java',751,752,'org.apache.jasper.compiler.Parser','parseELExpression(Node, char)','NOT_DESIGN'),(15197,'Smarter than the typical client. Attempts to read the response\neven if the request is not fully written.','Line','test/org/apache/catalina/core/TestSwallowAbortedUploads.java',447,448,'org.apache.catalina.core.TestSwallowAbortedUploads','doTestChunkedPUT(boolean)',NULL),(15198,'Try to add duplicates\nDuplicate Host name','Line','test/org/apache/catalina/mapper/TestMapper.java',123,124,'org.apache.catalina.mapper.TestMapper','testAddHost()',NULL),(15199,'TODO i18n','Line','java/org/apache/tomcat/websocket/TransformationFactory.java',37,37,'org.apache.tomcat.websocket.TransformationFactory','create(Extension)',NULL),(15200,'TODO i18n','Line','java/org/apache/tomcat/websocket/server/UpgradeUtil.java',155,155,'org.apache.tomcat.websocket.server.UpgradeUtil','doUpgrade(WsServerContainer, HttpServletRequest, HttpServletResponse, ServerEndpointConfig, Map<String, String>)',NULL),(15201,'TODO Add support for extensions to the client side code','Line','java/org/apache/tomcat/websocket/WsFrameClient.java',35,35,'org.apache.tomcat.websocket.WsFrameClient','processSocketRead()','DESIGN'),(15202,'A duplicate Alias for the same Host.\nA harmless redundancy. E.g.\n<Host name=\\\"localhost\\\"><Alias>localhost</Alias></Host>','Line','java/org/apache/catalina/mapper/Mapper.java',159,161,'org.apache.catalina.mapper.Mapper','setDefaultHostName(String)',NULL),(15203,'Redundancy. Duplicate Alias for the same Host name. No error here.','Line','test/org/apache/catalina/mapper/TestMapper.java',132,132,'org.apache.catalina.mapper.TestMapper','testAddHost()',NULL),(15204,'TODO i18n','Line','java/org/apache/tomcat/websocket/TransformationFactory.java',39,39,'org.apache.tomcat.websocket.TransformationFactory','create(String, List<List<Extension.Parameter>>)','NOT_DESIGN'),(15205,'Java SE API (as of Java 8) does not expose the API to\ncontrol the Window size. It is effectively hard-coded\nto 15','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',93,95,'org.apache.tomcat.websocket.PerMessageDeflate','negotiate(List<List<Parameter>>)',NULL),(15206,'Hint to server that the client supports this\noption. Java SE API (as of Java 8) does not\nexpose the API to control the Window size. It is\neffectively hard-coded to 15','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',109,112,'org.apache.tomcat.websocket.PerMessageDeflate','negotiate(List<List<Parameter>>)',NULL),(15207,'None','None','java/org/apache/tomcat/websocket/TransformationFactory.java',-1,-1,'None','None',NULL),(15208,'TODO: The method should already accessible here but the following\ncode seems to be necessary in some as yet not fully understood cases.','Line','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java',53,54,'org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase','processResult(Object)',NULL),(15209,'TODO: The method should already be accessible here but the following\ncode seems to be necessary in some as yet not fully understood cases.','Line','java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java',53,54,'org.apache.tomcat.websocket.pojo.PojoMessageHandlerBase','processResult(Object)',NULL),(15210,'TODO Add extension/transformation support to the client','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',319,319,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Endpoint, ClientEndpointConfig, URI)','DESIGN'),(15211,'TODO Masking should move to this method\nNO-OP send so simply return the message unchanged.','Line','java/org/apache/tomcat/websocket/WsFrameBase.java',770,771,'org.apache.tomcat.websocket.WsFrameBase','sendMessagePart(List<MessagePart>)',NULL),(15212,'TODO: Implement compression of sent messages','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',290,290,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15213,'RSA auth\nDSS auth\nno auth (i.e. use ADH or AECDH)\nFixed DH auth (kDHd or kDHr)\nFixed ECDH auth (kECDHe or kECDHr)\nKRB5 auth\nECDSA auth\nPSK auth\nGOST R 34.10-94 signature auth\nGOST R 34.10-2001\nFortezza','Block','java/org/apache/tomcat/util/net/jsse/openssl/Authentication.java',21,31,'None','None',NULL),(15214,'RC4 is sort-of broken -- move the the end','Block','java/org/apache/tomcat/util/net/jsse/openssl/OpenSSLCipherConfigurationParser.java',536,536,'org.apache.tomcat.util.net.jsse.openssl.OpenSSLCipherConfigurationParser','defaultSort(LinkedHashSet<Ciphers>)',NULL),(15215,'This should never happen but bug 56684 suggests that\nit does.','Line','java/org/apache/catalina/core/StandardServer.java',451,452,'org.apache.catalina.core.StandardServer','getNamingToken()',NULL),(15216,'FIXME: temporary, investigate apparent sendfile issue','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',318,318,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15217,'TODO The path to OpenSSL needs to be made configurable','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestCipher.java',44,44,'org.apache.tomcat.util.net.jsse.openssl.TestCipher','getOpenSSLCiphersAsExpression(String)',NULL),(15218,'TODO The path to OpenSSL needs to be made configurable','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestCipher.java',64,64,'org.apache.tomcat.util.net.jsse.openssl.TestCipher','testAllOpenSSlCiphersMapped()',NULL),(15219,'FIXME: enable the test','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestCipher.java',41,41,'org.apache.tomcat.util.net.jsse.openssl.TestCipher','None','NOT_DESIGN'),(15220,'None','None','test/org/apache/tomcat/util/net/jsse/openssl/TestCipher.java',-1,-1,'None','None',NULL),(15221,'TODO The path to OpenSSL needs to be made configurable','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestCipher.java',84,84,'org.apache.tomcat.util.net.jsse.openssl.TestCipher','testAllOpenSSlCiphersMapped()','DESIGN'),(15222,'Mapping code currently defines 48 extra cipher suites. Figure out\nwhy.','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestCipher.java',76,77,'org.apache.tomcat.util.net.jsse.openssl.TestCipher','testAllOpenSSLCiphersMapped()',NULL),(15223,'Mapping code currently defines 48 extra cipher suites. Figure out\nwhy.','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestCipher.java',77,78,'org.apache.tomcat.util.net.jsse.openssl.TestCipher','testAllOpenSSLCiphersMapped()','DESIGN'),(15224,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',161,161,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testECDH()',NULL),(15225,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',169,169,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testkECDHE()',NULL),(15226,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',168,168,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testECDH()','NOT_DESIGN'),(15227,'None','None','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',-1,-1,'None','None',NULL),(15228,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',174,174,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testkECDHE()','NOT_DESIGN'),(15229,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',35,35,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testDEFAULT()','NOT_DESIGN'),(15230,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',43,43,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testCOMPLEMENTOFDEFAULT()',NULL),(15231,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',278,278,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testTLSv1_2()',NULL),(15232,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',286,286,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testTLSv1()',NULL),(15233,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',294,294,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testSSLv2()',NULL),(15234,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',302,302,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testSSLv3()',NULL),(15235,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',276,276,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testTLSv1_2()','NOT_DESIGN'),(15236,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',282,282,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testTLSv1()','NOT_DESIGN'),(15237,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',298,298,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testSSLv3()','NOT_DESIGN'),(15238,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',288,288,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testSSLv2()','NOT_DESIGN'),(15239,'TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',41,41,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testCOMPLEMENTOFDEFAULT()','NOT_DESIGN'),(15240,'TODO: Add tests for the individual operators','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',466,466,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testSpecification01()',NULL),(15241,'Bug 54395','Line','modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestJdbcInterceptorConfigParsing.java',92,92,'org.apache.tomcat.jdbc.test.TestJdbcInterceptorConfigParsing','testWhitespace()',NULL),(15242,'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',157,160,'org.apache.catalina.webresources.Cache','getResources(String, boolean)',NULL),(15243,'FIXME - \\\"*\\\" entries are not handled','Line','java/org/apache/catalina/connector/Request.java',3173,3173,'org.apache.catalina.connector.Request','setCoyoteRequest(org.apache.coyote.Request)','NOT_DESIGN'),(15244,'TODO: Implement compression of sent messages','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',301,301,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)','NOT_DESIGN'),(15245,'Need to reset the deflater at the start of every message','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',313,313,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15246,'This message part has been fully processed by the\ndeflater. Fire the send handler for this message part\nand move on to the next message part.','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',336,338,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15247,'If this point is reached, a new compressed message part\nwill be created...','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',342,343,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15248,'.. and a new writeBuffer will be required.','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',346,346,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15249,'Flip the compressed payload ready for writing','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',349,349,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15250,'End of compressed message. Drop EOM bytes and output.','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',357,357,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15251,'Write buffer full and input message not fully read.\nOutput and start new compressed part.','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',365,366,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15252,'Write buffer full and input message not fully read.\nOutput and get more data.','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',371,372,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15253,'Write buffer full. Input fully read. Deflater may be\nin one of four states:\n- output complete (just happened to align with end of\nbuffer\n- in middle of EOM bytes\n- about to write EOM bytes\n- more data to write','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',378,384,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15254,'EOM has just been completed','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',387,387,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15255,'More data to write\nCopy bytes to new write buffer','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',395,396,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15256,'Add the newly created compressed part to the set of parts\nto pass on to the next transformation.','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',406,407,'org.apache.tomcat.websocket.PerMessageDeflate','sendMessagePart(List<MessagePart>)',NULL),(15257,'Specification states behaviour is undefined\nJasper opts to reject any other verbs, partly as they are\nunlikely to make sense in a JSP context and partly to protect\nagainst verb tampering','Line','java/org/apache/jasper/servlet/JspServlet.java',289,292,'org.apache.jasper.servlet.JspServlet','service(HttpServletRequest, HttpServletResponse)','DESIGN'),(15258,'jspFile may be configured as an init-param for this servlet instance','Line','java/org/apache/jasper/servlet/JspServlet.java',284,284,'org.apache.jasper.servlet.JspServlet','service(HttpServletRequest, HttpServletResponse)',NULL),(15259,'Specification states behaviour is undefined\nJasper opts to reject any other verbs, partly as they are\nunlikely to make sense in a JSP context and partly to protect\nagainst verb tampering','Line','java/org/apache/jasper/servlet/JspServletWrapper.java',429,432,'org.apache.jasper.servlet.JspServletWrapper','service(HttpServletRequest, HttpServletResponse, boolean)','DESIGN'),(15260,'(4) Service request','Block','java/org/apache/jasper/servlet/JspServletWrapper.java',422,424,'org.apache.jasper.servlet.JspServletWrapper','service(HttpServletRequest, HttpServletResponse, boolean)',NULL),(15261,'TODO: Invert the call semantics between between breakdown() and finalize()','Line','java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java',332,332,'org.apache.catalina.tribes.tipis.AbstractReplicatedMap','getStateMessageType()','NOT_DESIGN'),(15262,'TODO','Line','java/org/apache/tomcat/util/http/parser/Cookie.java',184,184,'org.apache.tomcat.util.http.parser.Cookie','parseCookie(byte[], int, int, ServerCookies)',NULL),(15263,'TODO','Line','java/org/apache/tomcat/util/http/parser/Cookie.java',191,191,'org.apache.tomcat.util.http.parser.Cookie','parseCookie(byte[], int, int, ServerCookies)','NOT_DESIGN'),(15264,'Invalid cookie value. Skip to the next semi-colon','Line','java/org/apache/tomcat/util/http/parser/Cookie.java',256,256,'org.apache.tomcat.util.http.parser.Cookie','parseCookie(byte[], int, int, ServerCookies)',NULL),(15265,'Invalid cookie value. Skip to the next semi-colon\nTODO Could be a comma','Line','java/org/apache/tomcat/util/http/parser/Cookie.java',273,274,'org.apache.tomcat.util.http.parser.Cookie','parseCookie(byte[], int, int, ServerCookies)',NULL),(15266,'Bug 49000','Line','test/org/apache/tomcat/util/http/TestCookies.java',52,52,'org.apache.tomcat.util.http.TestCookies','testNameOnlyAreDropped()',NULL),(15267,'Bug 49000','Line','test/org/apache/tomcat/util/http/TestCookies.java',65,65,'org.apache.tomcat.util.http.TestCookies','testNameOnlyAreDroppedOld()',NULL),(15268,'Bug 49000','Line','test/org/apache/tomcat/util/http/TestCookies.java',85,85,'org.apache.tomcat.util.http.TestCookies','testNameOnlyAreDroppedNew()',NULL),(15269,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',393,393,'org.apache.tomcat.util.http.TestCookies','disallow8bitInName()',NULL),(15270,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',399,399,'org.apache.tomcat.util.http.TestCookies','disallowControlInName()',NULL),(15271,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',405,405,'org.apache.tomcat.util.http.TestCookies','disallow8BitControlInName()',NULL),(15272,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',411,411,'org.apache.tomcat.util.http.TestCookies','allow8BitInV0Value()',NULL),(15273,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',417,417,'org.apache.tomcat.util.http.TestCookies','disallow8bitInV1UnquotedValue()',NULL),(15274,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',423,423,'org.apache.tomcat.util.http.TestCookies','allow8bitInV1QuotedValue()',NULL),(15275,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',430,430,'org.apache.tomcat.util.http.TestCookies','disallowControlInV0Value()',NULL),(15276,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',436,436,'org.apache.tomcat.util.http.TestCookies','disallowControlInV1UnquotedValue()',NULL),(15277,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',442,442,'org.apache.tomcat.util.http.TestCookies','disallowControlInV1QuotedValue()',NULL),(15278,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',442,442,'org.apache.tomcat.util.http.TestCookies','disallowControlInV1QuotedValue()',NULL),(15279,'Bug 55917 / Bug 55918','Line','test/org/apache/tomcat/util/http/TestCookies.java',442,442,'org.apache.tomcat.util.http.TestCookies','disallowControlInV1QuotedValue()',NULL),(15280,'Bug 55917','Line','test/org/apache/tomcat/util/http/TestCookies.java',448,448,'org.apache.tomcat.util.http.TestCookies','disallow8BitControlInV1UnquotedValue()',NULL),(15281,'Bug 55921','Line','test/org/apache/tomcat/util/http/TestCookies.java',454,454,'org.apache.tomcat.util.http.TestCookies','testJsonInV0()',NULL),(15282,'Bug 55921','Line','test/org/apache/tomcat/util/http/TestCookies.java',460,460,'org.apache.tomcat.util.http.TestCookies','testJsonInV1()',NULL),(15283,'Invalid cookie value. Skip to the next semi-colon\nTODO Could be a comma','Line','java/org/apache/tomcat/util/http/parser/Cookie.java',297,298,'org.apache.tomcat.util.http.parser.Cookie','parseCookie(byte[], int, int, ServerCookies)','DESIGN'),(15284,'None','None','java/org/apache/tomcat/util/http/parser/Cookie.java',-1,-1,'None','None',NULL),(15285,'Invalid cookie value. Skip to the next semi-colon\nTODO Could be a comma','Line','java/org/apache/tomcat/util/http/parser/Cookie.java',364,365,'org.apache.tomcat.util.http.parser.Cookie','parseCookie(byte[], int, int, ServerCookies)','DESIGN'),(15286,'Invalid cookie value. Skip to the next semi-colon','Line','java/org/apache/tomcat/util/http/parser/Cookie.java',364,364,'org.apache.tomcat.util.http.parser.Cookie','parseCookie(byte[], int, int, ServerCookies)',NULL),(15287,'if the same instance of this transformer was already added, bail out','Line','java/org/apache/catalina/loader/WebappClassLoader.java',666,666,'org.apache.catalina.loader.WebappClassLoader','addTransformer(ClassFileTransformer)',NULL),(15288,'if the same instance of this transformer was already added, bail out','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',667,667,'org.apache.catalina.loader.WebappClassLoaderBase','addTransformer(ClassFileTransformer)',NULL),(15289,'FIXME - cache???','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1114,1114,'org.apache.catalina.loader.WebappClassLoader','getResourceAsStream(String)',NULL),(15290,'FIXME - cache???','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',1086,1086,'org.apache.catalina.loader.WebappClassLoaderBase','getResourceAsStream(String)',NULL),(15291,'Null out any static or final fields from loaded classes,\nas a workaround for apparent garbage collection bugs','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1559,1560,'org.apache.catalina.loader.WebappClassLoader','clearReferences()',NULL),(15292,'Null out any static or final fields from loaded classes,\nas a workaround for apparent garbage collection bugs','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',1532,1533,'org.apache.catalina.loader.WebappClassLoaderBase','clearReferences()',NULL),(15293,'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',1573,1577,'org.apache.catalina.loader.WebappClassLoader','clearReferences()',NULL),(15294,'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/WebappClassLoaderBase.java',1546,1550,'org.apache.catalina.loader.WebappClassLoaderBase','clearReferences()',NULL),(15295,'This method is deprecated and for good reason. This\nis very risky code but is the only option at this\npoint. A *very* good reason for apps to do this\nclean-up themselves.','Line','java/org/apache/catalina/loader/WebappClassLoader.java',1894,1897,'org.apache.catalina.loader.WebappClassLoader','clearReferencesThreads()',NULL),(15296,'This method is deprecated and for good reason. This\nis very risky code but is the only option at this\npoint. A *very* good reason for apps to do this\nclean-up themselves.','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',1867,1870,'org.apache.catalina.loader.WebappClassLoaderBase','clearReferencesThreads()',NULL),(15297,'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',1921,1924,'org.apache.catalina.loader.WebappClassLoader','clearReferencesThreads()',NULL),(15298,'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/WebappClassLoaderBase.java',1894,1897,'org.apache.catalina.loader.WebappClassLoaderBase','clearReferencesThreads()',NULL),(15299,'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',2590,2593,'org.apache.catalina.loader.WebappClassLoader','findResourceInternal(String, String)',NULL),(15300,'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/WebappClassLoaderBase.java',2563,2566,'org.apache.catalina.loader.WebappClassLoaderBase','findResourceInternal(String, String)',NULL),(15301,'Some policy files may restrict this, even for the core,\nso this exception is ignored','Line','java/org/apache/catalina/loader/WebappClassLoader.java',2730,2731,'org.apache.catalina.loader.WebappClassLoader','refreshPolicy()',NULL),(15302,'Some policy files may restrict this, even for the core,\nso this exception is ignored','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',2703,2704,'org.apache.catalina.loader.WebappClassLoaderBase','refreshPolicy()',NULL),(15303,'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',81,84,'org.apache.tomcat.util.bcel.classfile.Code','getInternalLength()',NULL),(15304,'TODO return List','Line','java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java',77,77,'org.apache.tomcat.util.bcel.classfile.AnnotationEntry','getElementValuePairs()','NOT_DESIGN'),(15305,'None','None','java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java',-1,-1,'None','None',NULL),(15306,'TOFO: FIXXXXX','Line','java/org/apache/tomcat/util/bcel/Constants.java',104,104,'org.apache.tomcat.util.bcel.Constants','None','NOT_DESIGN'),(15307,'FIXME: add \'final\'','Line','java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java',38,38,'org.apache.tomcat.util.bcel.classfile.AnnotationEntry','None','NOT_DESIGN'),(15308,'Annotation\nTODO isRuntimeVisible','Line','java/org/apache/tomcat/util/bcel/classfile/ElementValue.java',106,107,'org.apache.tomcat.util.bcel.classfile.ElementValue','readElementValue(DataInputStream, ConstantPool)','NOT_DESIGN'),(15309,'User provided eviction policy could throw all sorts of crazy\nexceptions. Protect against such an exception killing the\neviction thread.','Line','java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java',937,939,'org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool','getMaxTotalPerKey()',NULL),(15310,'User provided eviction policy could throw all sorts of crazy\nexceptions. Protect against such an exception killing the\neviction thread.','Line','java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java',782,784,'org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool','getMaxIdle()',NULL),(15311,'No digests, compare directly','Line','java/org/apache/catalina/realm/MessageDigestCredentialHandler.java',87,87,'org.apache.catalina.realm.MessageDigestCredentialHandler','matches(String, String)',NULL),(15312,'TODO Log a warning','Line','java/org/apache/catalina/realm/PBECredentialHandler.java',93,93,'org.apache.catalina.realm.PBECredentialHandler','mutate(String, byte[], int)',NULL),(15313,'TODO Log a warning','Line','java/org/apache/catalina/realm/PBECredentialHandler.java',80,80,'org.apache.catalina.realm.PBECredentialHandler','mutate(String, byte[], int)','DESIGN'),(15314,'None','None','java/org/apache/catalina/realm/PBECredentialHandler.java',-1,-1,'None','None',NULL),(15315,'Logging credentials could be a security concern but they are\ninvalid and that is probably a bigger problem','Line','java/org/apache/catalina/realm/DigestCredentialHandlerBase.java',154,155,'org.apache.catalina.realm.DigestCredentialHandlerBase','matchesSaltIterationsEncoded(String, String)','NOT_DESIGN'),(15316,'XXX will be refactored soon!','Line','java/org/apache/tomcat/util/http/Cookies.java',156,156,'org.apache.tomcat.util.http.Cookies','equals(String, byte[], int, int)','DESIGN'),(15317,'Stored credentials are invalid\nThis may be expected if nested credential handlers are being used','Line','java/org/apache/catalina/realm/DigestCredentialHandlerBase.java',151,152,'org.apache.catalina.realm.DigestCredentialHandlerBase','matchesSaltIterationsEncoded(String, String)',NULL),(15318,'Logging credentials could be a security concern but they are\ninvalid and that is probably a bigger problem','Line','java/org/apache/catalina/realm/DigestCredentialHandlerBase.java',178,179,'org.apache.catalina.realm.DigestCredentialHandlerBase','logInvalidStoredCredentials(String)',NULL),(15319,'TODO: Name validation takes place in Cookie and can not be configured\nper Context. Moving it to here would allow per Context config\nbut delay validation until the header is generated. However,\nthe spec requires an IllegalArgumentException on Cookie\ngeneration.','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',77,81,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)',NULL),(15320,'TODO: Value also needs validation that varies depending on the spec\nbeing used. This is currently delayed until the header is\ngenerated.','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',84,86,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)',NULL),(15321,'TODO add support for the attributes.','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',89,89,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)',NULL),(15322,'TODO add support for the attributes.','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',90,90,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)','NOT_DESIGN'),(15323,'TODO i18n','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',112,112,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','validateCookieValue(String)',NULL),(15324,'None','None','test/org/apache/tomcat/util/http/TestSetCookieSupport.java',-1,-1,'None','None',NULL),(15325,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java',53,53,'org.apache.tomcat.util.http.TestSetCookieSupportSeparatorsAllowed','v0ValueContainsSemicolon()',NULL),(15326,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java',60,60,'org.apache.tomcat.util.http.TestSetCookieSupportSeparatorsAllowed','v0ValueContainsComma()',NULL),(15327,'should probably throw IAE?','Line','test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java',67,67,'org.apache.tomcat.util.http.TestSetCookieSupportSeparatorsAllowed','v0ValueContainsSpace()',NULL),(15328,'RFC 6265 prefers Max-Age to Expires so use Max-Age','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',90,90,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)',NULL),(15329,'Negative Max-Age is equivalent to no Max-Age','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',93,93,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)',NULL),(15330,'TODO add support for the remaining attributes.','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',98,98,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)','NOT_DESIGN'),(15331,'None','None','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',-1,-1,'None','None',NULL),(15332,'TODO i18n','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',120,120,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','validateCookieValue(String)','NOT_DESIGN'),(15333,'labels must start with a letter or number','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',178,178,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','validateDomain(String)',NULL),(15334,'labels must end with a letter or number','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',183,183,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','validateDomain(String)',NULL),(15335,'domain must end with a label','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',190,190,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','validateDomain(String)',NULL),(15336,'sun bug 5076772 on windows JDK 1.5','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1066,1066,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)','DESIGN'),(15337,'Java SE API (as of Java 8) does not expose the API to\ncontrol the Window size. It is effectively hard-coded\nto 15','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',98,100,'org.apache.tomcat.websocket.PerMessageDeflate','negotiate(List<List<Parameter>>)',NULL),(15338,'Java SE API (as of Java 8) does not expose the API to\ncontrol the Window size. It is effectively hard-coded\nto 15','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',99,101,'org.apache.tomcat.websocket.PerMessageDeflate','negotiate(List<List<Parameter>>, boolean)',NULL),(15339,'Hint to server that the client supports this\noption. Java SE API (as of Java 8) does not\nexpose the API to control the Window size. It is\neffectively hard-coded to 15','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',114,117,'org.apache.tomcat.websocket.PerMessageDeflate','negotiate(List<List<Parameter>>)',NULL),(15340,'Hint to server that the client supports this\noption. Java SE API (as of Java 8) does not\nexpose the API to control the Window size. It is\neffectively hard-coded to 15','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',115,118,'org.apache.tomcat.websocket.PerMessageDeflate','negotiate(List<List<Parameter>>, boolean)',NULL),(15341,'None','None','java/org/apache/tomcat/websocket/WsFrameClient.java',-1,-1,'None','None',NULL),(15342,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',336,336,'org.apache.tomcat.websocket.WsWebSocketContainer','connectToServer(Endpoint, ClientEndpointConfig, URI)','NOT_DESIGN'),(15343,'TODO i18n','Line','java/org/apache/tomcat/websocket/server/UpgradeUtil.java',168,168,'org.apache.tomcat.websocket.server.UpgradeUtil','doUpgrade(WsServerContainer, HttpServletRequest, HttpServletResponse, ServerEndpointConfig, Map<String, String>)','NOT_DESIGN'),(15344,'None','None','java/org/apache/tomcat/websocket/server/UpgradeUtil.java',-1,-1,'None','None',NULL),(15345,'TODO handle known multi-value headers','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',635,635,'org.apache.tomcat.websocket.WsWebSocketContainer','parseHeaders(String, Map<String, List<String>>)','NOT_DESIGN'),(15346,'Multi-value headers are stored as a single header and the client is\nexpected to handle splitting into individual values','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',635,636,'org.apache.tomcat.websocket.WsWebSocketContainer','parseHeaders(String, Map<String, List<String>>)',NULL),(15347,'TODO: Need to add ability to specify extensions when using\nannotations','Line','test/org/apache/tomcat/websocket/TesterWsClientAutobahn.java',92,93,'org.apache.tomcat.websocket.TesterWsClientAutobahn','main(String[])','NOT_DESIGN'),(15348,'Java SE API (as of Java 8) does not expose the API to\ncontrol the Window size. It is effectively hard-coded\nto 15','Line','java/org/apache/tomcat/websocket/PerMessageDeflate.java',133,135,'org.apache.tomcat.websocket.PerMessageDeflate','negotiate(List<List<Parameter>>, boolean)',NULL),(15349,'None','None','test/org/apache/tomcat/websocket/TesterWsClientAutobahn.java',-1,-1,'None','None',NULL),(15350,'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',537,540,'org.apache.coyote.http11.AbstractOutputBuffer','write(CharChunk)','DESIGN'),(15351,'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/ajp/AjpMessage.java',208,211,'org.apache.coyote.ajp.AjpMessage','appendCharChunk(CharChunk)','DESIGN'),(15352,'None','None','java/org/apache/coyote/ajp/AjpMessage.java',-1,-1,'None','None',NULL),(15353,'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/ajp/AjpMessage.java',241,244,'org.apache.coyote.ajp.AjpMessage','appendString(String)','DESIGN'),(15354,'There is no standard way to determine the default protocols and\ncipher suites so create a server socket to see what the defaults are','Line','java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java',153,154,'org.apache.tomcat.util.net.jsse.JSSESocketFactory','createSocket(int)',NULL),(15355,'FIXME: Using docBase = appBase. A temporary workaround to avoid\nusing the system temporary directory as docBase, until either\nBZ 57154 is fixed or there is better API from BZ 57155','Line','test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java',414,416,'org.apache.tomcat.websocket.TestWsWebSocketContainer','testConnectToServerEndpoint()','DESIGN'),(15356,'Test verifying that Tomcat correctly de-registers the MBeans it has\nregistered.\n@author Marc Guillemot','Block','test/org/apache/catalina/mbeans/TestRegistration.java',144,148,'org.apache.catalina.mbeans.TestRegistration','testMBeanDeregistration()',NULL),(15357,'Check https://jira.springsource.org/browse/SPR-7350 isn\'t really an issue','Block','test/org/apache/naming/resources/TestWarDirContext.java',48,50,'org.apache.naming.resources.TestWarDirContext','testLookupException()',NULL),(15358,'Configures a set of channels to use a random domain. Use to ensure that\nmultiple instance of the test suite do not interfere when running on the\nsame machine. This may happen in a CI system or when a developer is\nrunning tests for multiple branches in parallel.','Block','test/org/apache/catalina/tribes/TesterUtil.java',32,37,'org.apache.catalina.tribes.TesterUtil','addRandomDomain(ManagedChannel[])',NULL),(15359,'No file system docBase required','Line','test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java',411,411,'org.apache.tomcat.websocket.TestWsWebSocketContainer','testConnectToServerEndpoint()',NULL),(15360,'Test is broken. It needs to be adjusted to check for the ISE\nonce complete has taken effect','Line','test/org/apache/catalina/core/TestAsyncContextImpl.java',1846,1847,'org.apache.catalina.core.TestAsyncContextImpl','resetTracker()','DESIGN'),(15361,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',104,104,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapper<S>, HttpUpgradeHandler)',NULL),(15362,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',106,106,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapper<S>, ByteBuffer, HttpUpgradeHandler)',NULL),(15363,'Different ways to point to request response (server/client)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',128,128,'org.apache.tomcat.lite.http.HttpChannel','None',NULL),(15364,'TODO: replace with getSocketChannel - used for remote addr, etc','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',276,276,'org.apache.tomcat.lite.http.HttpChannel','close()',NULL),(15365,'TODO: http://.... URLs','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpChannel.java',701,701,'org.apache.tomcat.lite.http.HttpChannel','close()',NULL),(15366,'TODO: in-process communication without sockets for testing','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/MemoryIOConnector.java',57,57,'org.apache.tomcat.lite.io.MemoryIOConnector','notifyDataAvailable(Object)',NULL),(15367,'TODO: mix','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/MemoryIOConnector.java',81,81,'org.apache.tomcat.lite.io.MemoryIOConnector','connect(String, int, ConnectedCallback)',NULL),(15368,'No JKS keystore ?\nTODO Auto-generated catch block','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/JsseSslProvider.java',246,247,'org.apache.tomcat.lite.io.jsse.JsseSslProvider','checkClientTrusted(X509Certificate[], String)',NULL),(15369,'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',379,379,'org.apache.tomcat.lite.io.jsse.JsseSslProvider','testModeURLConnection()',NULL),(15370,'TODO...\nsee org/apache/http/conn/ssl/AbstractVerifier','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/JsseSslProvider.java',400,401,'org.apache.tomcat.lite.io.jsse.JsseSslProvider','testModeURLConnection()',NULL),(15371,'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',37,55,'None','None',NULL),(15372,'TODO: move to a servlet','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/load/LiveHttpThreadedTest.java',289,289,'org.apache.tomcat.lite.load.LiveHttpThreadedTest','None',NULL),(15373,'TODO:','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/BaseMapper.java',40,40,'org.apache.tomcat.lite.http.BaseMapper','None',NULL),(15374,'TODO: trace log - record all events with timestamps, replay','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',108,108,'org.apache.tomcat.lite.io.NioThread','getOpen()',NULL),(15375,'TODO: start it on-demand, close it when not in use','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',116,116,'org.apache.tomcat.lite.io.NioThread','getOpen()',NULL),(15376,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',694,694,'org.apache.tomcat.lite.io.NioThread','configureSocket(ByteChannel, boolean)',NULL),(15377,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',701,701,'org.apache.tomcat.lite.io.NioThread','setSocketOptions(NioChannel, int, boolean, int)',NULL),(15378,'TODO: add SSL here','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',776,776,'org.apache.tomcat.lite.io.NioThread','acceptor(NioChannelCallback, int, InetAddress, int, int)',NULL),(15379,'None','None','test/org/apache/tomcat/util/buf/TestUtf8.java',-1,-1,'None','None',NULL),(15380,'TODO: test with large sets, maybe sort','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',849,849,'org.apache.tomcat.lite.io.NioThread','updateSleepTimeAndProcessTimeouts(long)',NULL),(15381,'All known issues have been fixed in Java 8\nhttps://bugs.openjdk.java.net/browse/JDK-8039751\nBase assumption in Java 7','Line','test/org/apache/tomcat/util/buf/TestUtf8.java',62,64,'org.apache.tomcat.util.buf.TestUtf8','None',NULL),(15382,'TODO: make sure this is updated if it was selected','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',876,876,'org.apache.tomcat.lite.io.NioThread','updateSleepTimeAndProcessTimeouts(long)',NULL),(15383,'TODO: suspended ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/NioThread.java',906,906,'org.apache.tomcat.lite.io.NioThread','writeInterest(NioChannel)',NULL),(15384,'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',1008,1010,'org.apache.tomcat.lite.io.NioThread','selThreadReadInterest(NioChannel)',NULL),(15385,'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',56,57,'None','None',NULL),(15386,'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',99,100,'org.apache.coyote.lite.Tomcat','None',NULL),(15387,'TODO: allow use of in-memory connector','Line','modules/tomcat-lite/test/org/apache/coyote/lite/Tomcat.java',102,102,'org.apache.coyote.lite.Tomcat','None',NULL),(15388,'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',12,13,'None','None',NULL),(15389,'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',44,46,'org.apache.tomcat.lite.io.IOBuffer','isSignaled()',NULL),(15390,'TODO: decode with prober charset','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOBuffer.java',119,119,'org.apache.tomcat.lite.io.IOBuffer','queue(String)',NULL),(15391,'TODO: concurrency ???','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOBuffer.java',589,589,'org.apache.tomcat.lite.io.IOBuffer','popFirst()',NULL),(15392,'Now, sort the cookies in most to least specific order\nYes, its the deaded bubblesort!! Wah Ha-ha-ha-ha....\n(it should be a small vector, so perf is not an issue...)','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/CookieController.java',397,399,'org.apache.tomcat.test.watchdog.CookieController','getSubsetRelevantCookies(String, URL)',NULL),(15393,'TODO: only the last one needs flush','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',81,81,'org.apache.tomcat.lite.http.CompressFilter','compress(IOBuffer, IOBuffer)',NULL),(15394,'TODO: size missmatches ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',83,83,'org.apache.tomcat.lite.http.CompressFilter','compress(IOBuffer, IOBuffer)',NULL),(15395,'TODO: only the last one needs flush','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',94,94,'org.apache.tomcat.lite.http.CompressFilter','compress(BBucket, IOBuffer, boolean)',NULL),(15396,'TODO: size missmatches ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',96,96,'org.apache.tomcat.lite.http.CompressFilter','compress(BBucket, IOBuffer, boolean)',NULL),(15397,'move in back, not consummed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/CompressFilter.java',183,183,'org.apache.tomcat.lite.http.CompressFilter','decompress(IOBuffer, IOBuffer, int)',NULL),(15398,'\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',118,124,'org.apache.tomcat.lite.io.IOOutputStream','print(String)',NULL),(15399,'TODO: pool, balanced usage\nTODO: bind into OM or callback when created','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SocketConnector.java',31,32,'org.apache.tomcat.lite.io.SocketConnector','None',NULL),(15400,'TODO: find an unused port','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SocketConnector.java',106,106,'org.apache.tomcat.lite.io.SocketConnector','connect(String, int, IOConnector.ConnectedCallback)',NULL),(15401,'TODO: suspendAccept(boolean)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/SocketConnector.java',130,130,'org.apache.tomcat.lite.io.SocketConnector','None',NULL),(15402,'TODO: insert SSL filter','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',253,253,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(15403,'path + qry\nTODO: query string','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',256,257,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(15404,'TODO: reuse','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java',368,368,'org.apache.tomcat.lite.http.HttpConnector','onCreate(HttpChannel, HttpConnector)',NULL),(15405,'TODO: use different thread ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/SocksServer.java',348,348,'org.apache.tomcat.lite.proxy.SocksServer','startClientConnection()',NULL),(15406,'TODO: ip6','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/SocksServer.java',365,365,'org.apache.tomcat.lite.proxy.SocksServer','startClientConnection()',NULL),(15407,'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',302,303,'org.apache.tomcat.lite.io.jsse.SslChannel','setTarget(String, int)',NULL),(15408,'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/jsse/SslChannel.java',362,365,'org.apache.tomcat.lite.io.jsse.SslChannel','setTarget(String, int)',NULL),(15409,'Maybe we don\'t have data - that\'s fine.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/jsse/SslChannel.java',541,541,'org.apache.tomcat.lite.io.jsse.SslChannel','setTarget(String, int)',NULL),(15410,'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',252,253,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15411,'TODO','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',293,293,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15412,'TODO: Uencode','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',300,300,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15413,'TODO: generate % encoding ( reverse of decodeRequest )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',316,316,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15414,'Work around java.net.URL bug','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',334,334,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15415,'XXX','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',380,380,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15416,'TODO: close out if post','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',480,480,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15417,'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',555,558,'org.apache.tomcat.lite.http.HttpRequest','initRemote()',NULL),(15418,'TODO: option \'useBodyEncodingForUri\' - versus UTF or ASCII','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',616,616,'org.apache.tomcat.lite.http.HttpRequest','handleQueryParameters()',NULL),(15419,'TODO - delete the line below in Tomcat 9 onwards','Line','java/org/apache/catalina/session/ManagerBase.java',252,252,'org.apache.catalina.session.ManagerBase','getContainer()','DESIGN'),(15420,'Workaround for a&b&c encoding','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',643,643,'org.apache.tomcat.lite.http.HttpRequest','processParameters(byte[], int, int, String)',NULL),(15421,'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',870,872,'org.apache.catalina.session.ManagerBase','getContainer()',NULL),(15422,'TODO: use CBuffer, recycle','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',668,668,'org.apache.tomcat.lite.http.HttpRequest','processParameters(byte[], int, int, String)',NULL),(15423,'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',809,811,'org.apache.catalina.session.ManagerBase','getContext()',NULL),(15424,'Very careful not to overflow - probably not necessary','Line','java/org/apache/catalina/session/ManagerBase.java',1079,1079,'org.apache.catalina.session.ManagerBase','getContainer()',NULL),(15425,'// Workaround for a&b&c encoding','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',693,693,'org.apache.tomcat.lite.http.HttpRequest','urlDecode(BBuffer, String)',NULL),(15426,'Very careful not to overflow - probably not necessary','Line','java/org/apache/catalina/session/ManagerBase.java',1018,1018,'org.apache.catalina.session.ManagerBase','getContext()',NULL),(15427,'Better than reporting zero','Line','java/org/apache/catalina/session/ManagerBase.java',1167,1167,'org.apache.catalina.session.ManagerBase','getContainer()',NULL),(15428,'}\n\n// TODO: use CBuffer, recycle','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',716,718,'org.apache.tomcat.lite.http.HttpRequest','urlDecode(BBuffer, String)',NULL),(15429,'Better than reporting zero','Line','java/org/apache/catalina/session/ManagerBase.java',1106,1106,'org.apache.catalina.session.ManagerBase','getContext()',NULL),(15430,'// TODO:','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpRequest.java',727,727,'org.apache.tomcat.lite.http.HttpRequest','urlDecode(BBuffer, String)',NULL),(15431,'TODO: failures ?\nTODO: use String target or url','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOConnector.java',56,57,'org.apache.tomcat.lite.io.IOConnector','connect(String, int, IOConnector.ConnectedCallback)',NULL),(15432,'TODO: recycle, etc.','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',228,228,'org.apache.coyote.lite.LiteProtocolHandler','destroy()',NULL),(15433,'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',261,262,'org.apache.coyote.lite.LiteProtocolHandler','init(HttpRequest, HttpResponse)',NULL),(15434,'//TODO SERVLET3 - async','Line','modules/tomcat-lite/java/org/apache/coyote/lite/LiteProtocolHandler.java',376,376,'org.apache.coyote.lite.LiteProtocolHandler','action(ActionCode, Object)',NULL),(15435,'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',23,32,'None','None',NULL),(15436,'TODO: use int map','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',83,83,'org.apache.tomcat.lite.http.SpdyConnection','None',NULL),(15437,'TODO: detect if it\'s spdy or http based on bit 8','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',117,117,'org.apache.tomcat.lite.http.SpdyConnection','None',NULL),(15438,'TODO: reuse','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',141,141,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15439,'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',150,151,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15440,'TODO: make sure we have enough data.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',165,165,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15441,'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',306,307,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15442,'TODO: no need to send version, method if default','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',347,347,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15443,'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',355,356,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15444,'TODO: repeated values are separated by a 0','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',363,363,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15445,'TODO: url - with host prefix , method\noptimize...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',382,383,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15446,'TODO: url','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',391,391,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15447,'TODO: duplicated headers not allowed','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',554,554,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15448,'TODO: chunk if too much data ( at least at 24 bits)','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',598,598,'org.apache.tomcat.lite.http.SpdyConnection','withExtraBuffer(BBuffer)',NULL),(15449,'TODO: send interrupt signal','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',735,735,'org.apache.tomcat.lite.http.SpdyConnection','abort(HttpChannel, String)',NULL),(15450,'TODO: secure set at start ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/SpdyConnection.java',748,748,'org.apache.tomcat.lite.http.SpdyConnection','checkConnection(HttpChannel)',NULL),(15451,'TODO: more flexibility/callbacks on selecting the target, acl, etc','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/proxy/HttpProxyService.java',123,123,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(15452,'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',125,126,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(15453,'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',207,208,'org.apache.tomcat.lite.proxy.HttpProxyService','withSelector(IOConnector)',NULL),(15454,'TODO: dump to a file, hex, etc.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/DumpChannel.java',9,9,'None','None',NULL),(15455,'TODO: check what the proxy sent','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/proxy/SmallProxyTest.java',95,95,'org.apache.tomcat.lite.proxy.SmallProxyTest','testProxy()',NULL),(15456,'Consume as much as possible without blocking','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOReader.java',185,185,'org.apache.tomcat.lite.io.IOReader','read(char[], int, int)',NULL),(15457,'TODO: can be optimizeed...','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/CBuffer.java',165,165,'org.apache.tomcat.lite.io.CBuffer','append(int)',NULL),(15458,'TODO: long, int conversions -> get from harmony Long','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/CBuffer.java',229,229,'org.apache.tomcat.lite.io.CBuffer','appendInt(int)',NULL),(15459,'TODO: copy from harmony StringBuffer','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/CBuffer.java',231,231,'org.apache.tomcat.lite.io.CBuffer','appendInt(int)',NULL),(15460,'TODO: hook to allow specific charsets ( can be done later )','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',398,398,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15461,'TODO: configure, use the callback or the servlet \'read\'.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',461,461,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15462,'TODO: multiple transfer encoding headers, only process the last','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',480,480,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15463,'TODO: process \'interesting\' headers here.','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',581,581,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15464,'TODO: save and remove if not recognized','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',583,583,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15465,'TODO: process connection headers','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',598,598,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15466,'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',659,663,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15467,'TODO: simplify, use readLine()','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',711,711,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15468,'TODO: add the others','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',794,794,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15469,'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',834,835,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15470,'TODO: also need to remove headers matching connection\n( like \'upgrade\')','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',996,997,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15471,'TODO: split it by space','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1000,1000,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15472,'TODO: move it ?','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1056,1056,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15473,'TODO: better head support','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1085,1085,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15474,'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',1097,1098,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15475,'TODO: encode or use decoded','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1132,1132,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15476,'TODO: Trailing headers','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1304,1304,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15477,'TODO: pool - this may stay in the queue while we flush more','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java',1379,1379,'org.apache.tomcat.lite.http.Http11Connection','beforeRequest()',NULL),(15478,'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',411,411,'org.apache.tomcat.lite.http.HttpResponse','recycle()',NULL),(15479,'TODO: buffer growth in caller','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/IOWriter.java',123,123,'org.apache.tomcat.lite.io.IOWriter','encode1(CharBuffer, ByteBuffer, CharsetEncoder, boolean)',NULL),(15480,'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',131,132,'org.apache.tomcat.lite.io.IOWriter','encode1(CharBuffer, ByteBuffer, CharsetEncoder, boolean)',NULL),(15481,'XXX headers are ignored','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogHttpClient.java',46,46,'org.apache.tomcat.test.watchdog.WatchdogHttpClient','None',NULL),(15482,'XXX no CRLF at the end -see HTTP specs!','Line','modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogHttpClient.java',137,137,'org.apache.tomcat.test.watchdog.WatchdogHttpClient','None',NULL),(15483,'TODO: cookies parsed when headers are added !','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpMessage.java',139,139,'org.apache.tomcat.lite.http.HttpMessage','status()',NULL),(15484,'TODO: serialize if not set','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpMessage.java',504,504,'org.apache.tomcat.lite.http.HttpMessage','getMsgBytes()',NULL),(15485,'// 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',787,790,'org.apache.tomcat.lite.io.BBuffer','release()',NULL),(15486,'TODO: if > 0x7F, convert to chars / switch to UTF8','Line','modules/tomcat-lite/java/org/apache/tomcat/lite/io/BBuffer.java',1032,1032,'org.apache.tomcat.lite.io.BBuffer','hashBytes(byte[], int, int)',NULL),(15487,'TODO: test req, headers','Line','modules/tomcat-lite/test/org/apache/tomcat/lite/http/SpdyTest.java',115,115,'org.apache.tomcat.lite.http.SpdyTest','testParseCompressed()',NULL),(15488,'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/Http11Nio2Processor.java',520,522,'org.apache.coyote.http11.Http11Nio2Processor','actionInternal(ActionCode, Object)','DESIGN'),(15489,'None','None','java/org/apache/coyote/http11/Http11Nio2Processor.java',-1,-1,'None','None',NULL),(15490,'Note: There should really be two servlets in this example, to avoid\nmixing Comet stuff with regular connection processing','Line','webapps/examples/WEB-INF/classes/chat/ChatServlet.java',77,78,'chat.ChatServlet','init()',NULL),(15491,'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',489,491,'org.apache.coyote.http11.Http11NioProcessor','actionInternal(ActionCode, Object)','DESIGN'),(15492,'Event processes either a read or a write depending on what the poller returns','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',1774,1774,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','NOT_DESIGN'),(15493,'Check for failed sockets and hand this socket off to a worker','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',1733,1733,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(15494,'FIXME: No instance listener processing for events for now','Line','java/org/apache/catalina/core/ApplicationFilterChain.java',399,399,'org.apache.catalina.core.ApplicationFilterChain','internalDoFilterEvent(CometEvent)','NOT_DESIGN'),(15495,'None','None','java/org/apache/catalina/core/ApplicationFilterChain.java',-1,-1,'None','None',NULL),(15496,'Process a STOP directly','Line','java/org/apache/coyote/http11/Http11AprProtocol.java',302,302,'org.apache.coyote.http11.Http11AprProtocol','longPoll(SocketWrapper<Long>, Processor<Long>)','NOT_DESIGN'),(15497,'Note: The try catch is there because getFilter has a lot of\ndeclared exceptions. However, the filter is allocated much\nearlier','Line','java/org/apache/catalina/core/ApplicationFilterFactory.java',149,151,'org.apache.catalina.core.ApplicationFilterFactory','createFilterChain(ServletRequest, Wrapper, Servlet)',NULL),(15498,'FIXME - log configuration problem','Line','java/org/apache/catalina/core/ApplicationFilterFactory.java',133,133,'org.apache.catalina.core.ApplicationFilterFactory','createFilterChain(ServletRequest, Wrapper, Servlet)',NULL),(15499,'TODO Investigate options to get this test to pass with the HTTP BIO\nconnector.','Line','test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java',94,95,'org.apache.catalina.nonblocking.TestNonBlockingAPI','testNonBlockingRead()','NOT_DESIGN'),(15500,'TODO Investigate options to get this test to pass with the HTTP BIO\nconnector.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',95,96,'org.apache.tomcat.websocket.TestWebSocketFrameClientSSL','testBug56032()','NOT_DESIGN'),(15501,'None','None','test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java',-1,-1,'None','None',NULL),(15502,'There is no standard way to determine the default protocols and\ncipher suites so create a server socket to see what the defaults are','Line','java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java',133,134,'org.apache.tomcat.util.net.jsse.JSSESocketFactory','getEnableableCiphers(SSLContext)',NULL),(15503,'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',152,153,'org.apache.coyote.http11.Http11AprProcessor','breakKeepAliveLoop(SocketWrapper<Long>)',NULL),(15504,'TODO: Remove','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1098,1098,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapper<S>)',NULL),(15505,'Client sent Expect: 100-continue but received a\nnon-2xx final response. Disable keep-alive (if enabled)\nto ensure that the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1122,1127,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapper<S>)',NULL),(15506,'Note: Logic in AbstractProtocol depends on this method only returning\na non-null value if the iterator is non-empty. i.e. it should never\nreturn an empty iterator.','Line','java/org/apache/tomcat/util/net/SocketWrapper.java',130,132,'org.apache.tomcat.util.net.SocketWrapper','getIteratorAndClearDispatches()',NULL),(15507,'Note: Logic in AbstractProtocol depends on this method only returning\na non-null value if the iterator is non-empty. i.e. it should never\nreturn an empty iterator.','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',130,132,'org.apache.tomcat.util.net.SocketWrapperBase','getIteratorAndClearDispatches()',NULL),(15508,'if we need more network data, then bail out for now.','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',542,542,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapper<Nio2Channel>)',NULL),(15509,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/NioServletInputStream.java',77,77,'org.apache.coyote.http11.upgrade.NioServletInputStream','doRead(boolean, byte[], int, int)',NULL),(15510,'Fill the read buffer as best we can','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1448,1448,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(15511,'TODO i18n','Line','java/org/apache/coyote/http11/upgrade/NioServletInputStream.java',95,95,'org.apache.coyote.http11.upgrade.NioServletInputStream','doRead(boolean, byte[], int, int)',NULL),(15512,'TODO i18n','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1466,1466,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(15513,'Fill the read buffer as best we can','Line','java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java',143,143,'org.apache.coyote.http11.upgrade.Nio2ServletInputStream','doRead(boolean, byte[], int, int)',NULL),(15514,'Fill the read buffer as best we can','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',870,870,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15515,'Not entirely sure why this is necessary. Testing to date has not\nidentified any issues with this but log it so it can be tracked\nif it is suspected of causing issues in the future.','Line','java/org/apache/coyote/http11/upgrade/AprServletInputStream.java',117,119,'org.apache.coyote.http11.upgrade.AprServletInputStream','doRead(boolean, byte[], int, int)',NULL),(15516,'Not entirely sure why this is necessary. Testing to date has not\nidentified any issues with this but log it so it can be tracked\nif it is suspected of causing issues in the future.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2440,2442,'org.apache.tomcat.util.net.AprEndpoint','doRead(boolean, byte[], int, int)',NULL),(15517,'The only way to finish an HTTP Upgrade connection is to close the\nsocket.','Line','java/org/apache/coyote/http11/upgrade/ServletInputStreamImpl.java',52,53,'org.apache.coyote.http11.upgrade.ServletInputStreamImpl','isFinished()',NULL),(15518,'The only way to finish an HTTP Upgrade connection is to close the\nsocket.','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',52,53,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','isFinished()',NULL),(15519,'TODO Can this be removed once all reads and writes are handled within\nthis class?','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2377,2378,'org.apache.tomcat.util.net.AprEndpoint','setTimeout(long)',NULL),(15520,'Now allow for normalization and/or encoding. Essentially, keep\nextending the candidate path up to the next slash until the decoded\nand normalized candidate path is the same as the canonical path.','Line','java/org/apache/catalina/connector/Request.java',1893,1895,'org.apache.catalina.connector.Request','setCoyoteRequest(org.apache.coyote.Request)',NULL),(15521,'Jar.close does not \\\"throw IOException\\\" but probably should','Line','java/org/apache/jasper/compiler/TagFileProcessor.java',658,658,'org.apache.jasper.compiler.TagFileProcessor','visit(Node.CustomTag)','NOT_DESIGN'),(15522,'Jar.close does not throw IOException, but probably should','Line','java/org/apache/jasper/compiler/TagLibraryInfoImpl.java',224,224,'org.apache.jasper.compiler.TagLibraryInfoImpl','print(String, String, PrintWriter)','NOT_DESIGN'),(15523,'None','None','java/org/apache/jasper/compiler/TagFileProcessor.java',-1,-1,'None','None',NULL),(15524,'TODO: Do not swallow request input but\nmake sure we are closing the connection','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',412,413,'org.apache.coyote.ajp.AbstractAjpProcessor','action(ActionCode, Object)',NULL),(15525,'TODO: Do not swallow request input but\nmake sure we are closing the connection','Line','java/org/apache/coyote/ajp/AjpProcessor.java',415,416,'org.apache.coyote.ajp.AjpProcessor','action(ActionCode, Object)',NULL),(15526,'SSL certificate extraction is lazy, moved to JkCoyoteHandler','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',1221,1221,'org.apache.coyote.ajp.AbstractAjpProcessor','prepareRequest()',NULL),(15527,'SSL certificate extraction is lazy, moved to JkCoyoteHandler','Line','java/org/apache/coyote/ajp/AjpProcessor.java',1224,1224,'org.apache.coyote.ajp.AjpProcessor','prepareRequest()',NULL),(15528,'Calling code should ensure that there is no data in the buffers for\nnon-blocking writes.\nTODO Validate the assertion above','Line','java/org/apache/coyote/ajp/AbstractAjpProcessor.java',1468,1470,'org.apache.coyote.ajp.AbstractAjpProcessor','flush(boolean)',NULL),(15529,'Calling code should ensure that there is no data in the buffers for\nnon-blocking writes.\nTODO Validate the assertion above','Line','java/org/apache/coyote/ajp/AjpProcessor.java',1471,1473,'org.apache.coyote.ajp.AjpProcessor','flush(boolean)',NULL),(15530,'TODO AJP and HTTPS have different expectations for the state of\nthe buffer at the start of a read. These need to be reconciled.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',200,201,'org.apache.tomcat.util.net.SecureNioChannel','handshake(boolean, boolean)',NULL),(15531,'TODO AJP and HTTPS have different expectations for the state of\nthe buffer at the start of a read. These need to be reconciled.','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1638,1639,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(15532,'TODO AJP and HTTPS have different expectations for the state of\nthe buffer at the start of a read. These need to be reconciled.','Line','java/org/apache/tomcat/util/net/NioChannel.java',65,66,'org.apache.tomcat.util.net.NioChannel','reset()','DESIGN'),(15533,'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',118,120,'org.apache.catalina.tribes.transport.nio.NioReceiver','stop()','NOT_DESIGN'),(15534,'Get the associated ServerSocket to bind it with','Line','java/org/apache/catalina/tribes/transport/nio/NioReceiver.java',114,114,'org.apache.catalina.tribes.transport.nio.NioReceiver','stop()',NULL),(15535,'create a new Selector for use below','Line','java/org/apache/catalina/tribes/transport/nio/NioReceiver.java',116,116,'org.apache.catalina.tribes.transport.nio.NioReceiver','stop()',NULL),(15536,'set the port the server channel will listen to','Line','java/org/apache/catalina/tribes/transport/nio/NioReceiver.java',118,118,'org.apache.catalina.tribes.transport.nio.NioReceiver','stop()',NULL),(15537,'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',251,253,'org.apache.tomcat.util.net.SecureNioChannel','rehandshake(long)','NOT_DESIGN'),(15538,'None','None','test/org/apache/catalina/tribes/test/transport/SocketNioValidateSend.java',-1,-1,'None','None',NULL),(15539,'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',828,830,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)','NOT_DESIGN'),(15540,'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',54,56,'org.apache.catalina.tribes.test.NioSenderTest','init()','NOT_DESIGN'),(15541,'None','None','test/org/apache/catalina/tribes/test/NioSenderTest.java',-1,-1,'None','None',NULL),(15542,'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',51,53,'org.apache.catalina.tribes.transport.nio.ParallelNioSender','sendMessage(Member[], ChannelMessage)','NOT_DESIGN'),(15543,'None','None','java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java',-1,-1,'None','None',NULL),(15544,'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',67,69,'org.apache.tomcat.util.net.NioSelectorPool','getSharedSelector()','NOT_DESIGN'),(15545,'None','None','java/org/apache/tomcat/util/net/NioSelectorPool.java',-1,-1,'None','None',NULL),(15546,'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',93,95,'org.apache.tomcat.util.net.NioSelectorPool','get()','NOT_DESIGN'),(15547,'None','None','test/org/apache/catalina/tribes/test/transport/SocketNioSend.java',-1,-1,'None','None',NULL),(15548,'No obvious status fields for javax.servlet.http\nCould hack something with HttpUtils...\nNo obvious status fields for javax.servlet.jsp\nWild card (package) import','Line','test/org/apache/el/TestELInJsp.java',423,426,'org.apache.el.TestELInJsp','testBug57142()',NULL),(15549,'TODO This should pass once the bug is fixed','Line','test/org/apache/catalina/core/TestApplicationContext.java',197,197,'org.apache.catalina.core.TestApplicationContext','testBug53257()','DESIGN'),(15550,'None','None','test/org/apache/catalina/core/TestApplicationContext.java',-1,-1,'None','None',NULL),(15551,'Note: This could be more efficient with a dedicated Mapper\nmethod but such an implementation would require some\nrefactoring of the Mapper to avoid copy/paste of\nexisting code.','Line','java/org/apache/catalina/core/ApplicationContext.java',266,269,'org.apache.catalina.core.ApplicationContext','getAttribute(String)',NULL),(15552,'TODO Log this?','Line','java/org/apache/coyote/AsyncStateMachine.java',409,409,'org.apache.coyote.AsyncStateMachine','pauseNonContainerThread()',NULL),(15553,'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',191,193,'org.apache.el.lang.ELSupport','coerceToEnum(Object, Class)',NULL),(15554,'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',193,195,'org.apache.el.lang.ELSupport','coerceToEnum(ELContext, Object, Class)',NULL),(15555,'FIXME: Exception handling needs to be similar to what is in the StandardWrapperValue','Line','java/org/apache/catalina/core/ApplicationDispatcher.java',768,768,'org.apache.catalina.core.ApplicationDispatcher','invoke(ServletRequest, ServletResponse, State)','DESIGN'),(15556,'FIXME: Enable this test','Line','test/org/apache/catalina/core/TestApplicationContext.java',203,203,'org.apache.catalina.core.TestApplicationContext','testBug53257()','NOT_DESIGN'),(15557,'TODO: Should the createWebResourceSet() methods be removed to some\nutility class for fiel system based resource sets?','Line','java/org/apache/catalina/webresources/StandardRoot.java',363,364,'org.apache.catalina.webresources.StandardRoot','list(String)',NULL),(15558,'Configuration for extensions\nNote: These options are primarily present to enable this implementation\nto pass the WebSocket 1.1 TCK. They are expected to be removed once\nthe WebSocket API includes a mechanism for adding custom extensions\nand disabling built-in extensions.','Block','java/org/apache/tomcat/websocket/Constants.java',74,79,'org.apache.tomcat.websocket.Constants','None','DESIGN'),(15559,'Configuration for extensions\nNote: These options are primarily present to enable this implementation\nto pass compliance tests. They are expected to be removed once\nthe WebSocket API includes a mechanism for adding custom extensions\nand disabling built-in extensions.','Block','java/org/apache/tomcat/websocket/Constants.java',74,79,'org.apache.tomcat.websocket.Constants','None',NULL),(15560,'XXX confirm','Line','java/org/apache/jasper/compiler/PageInfo.java',60,60,'org.apache.jasper.compiler.PageInfo','None','NOT_DESIGN'),(15561,'None','None','java/org/apache/jasper/compiler/PageInfo.java',-1,-1,'None','None',NULL),(15562,'TODO Work-around bug in UTF8 decoder\n@Test(expected=MalformedInputException.class)','Line','test/org/apache/tomcat/util/buf/TestB2CConverter.java',95,96,'org.apache.tomcat.util.buf.TestB2CConverter','testBug54602a()','NOT_DESIGN'),(15563,'None','None','test/org/apache/tomcat/util/buf/TestB2CConverter.java',-1,-1,'None','None',NULL),(15564,'TODO Investigate why this test fails','Line','test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java',224,224,'org.apache.tomcat.websocket.pojo.TestEncodingDecoding','testProgrammaticEndPoints()',NULL),(15565,'FIXME: the code below doesnt belongs to here,\nthis is only have sense\nin Http11, not in ajp13..\nAt this point the Host header has been processed.\nOverride if the proxyPort/proxyHost are set','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',571,575,'org.apache.catalina.connector.CoyoteAdapter','postParseRequest(org.apache.coyote.Request, Request, org.apache.coyote.Response, Response)','DESIGN'),(15566,'At this point the Host header has been processed.\nOverride if the proxyPort/proxyHost are set','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',571,572,'org.apache.catalina.connector.CoyoteAdapter','postParseRequest(org.apache.coyote.Request, Request, org.apache.coyote.Response, Response)',NULL),(15567,'TODO SERVLET3 - async\nreset mapping data, should prolly be done elsewhere','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',688,689,'org.apache.catalina.connector.CoyoteAdapter','postParseRequest(org.apache.coyote.Request, Request, org.apache.coyote.Response, Response)','NOT_DESIGN'),(15568,'TODO Is there a better way to map SSL sessions to our sesison ID?\nTODO The request.getAttribute() will cause a number of other SSL\nattribute to be populated. Is this a performance concern?','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',952,954,'org.apache.catalina.connector.CoyoteAdapter','parseSessionSslId(Request)','NOT_DESIGN'),(15569,'Must be an exact match. It is no good returning the ROOT\ncontext if the caller is looking for \\\"/something-else\\\"','Line','java/org/apache/catalina/core/ApplicationContext.java',284,285,'org.apache.catalina.core.ApplicationContext','getAttribute(String)','NOT_DESIGN'),(15570,'Note that there is only ever one StoreConfig per JVM and the\nname of the MBean is hard-coded.','Line','java/org/apache/catalina/manager/ManagerServlet.java',586,587,'org.apache.catalina.manager.ManagerServlet','save(PrintWriter, String, StringManager)',NULL),(15571,'Note: Hard-coded domain used since this object is per Server/JVM','Line','java/org/apache/catalina/manager/ManagerServlet.java',586,586,'org.apache.catalina.manager.ManagerServlet','save(PrintWriter, String, StringManager)',NULL),(15572,'Note: Hard-coded domain used since this object is per Server/JVM','Line','java/org/apache/catalina/storeconfig/StoreConfigLifecycleListener.java',95,95,'org.apache.catalina.storeconfig.StoreConfigLifecycleListener','createMBean(StandardServer)',NULL),(15573,'Note: Hard-coded domain used since this object is per Server/JVM','Line','java/org/apache/catalina/core/StandardServer.java',693,693,'org.apache.catalina.core.StandardServer','getNamingToken()',NULL),(15574,'Note: Hard-coded domain used since this object is per Server/JVM','Line','java/org/apache/catalina/storeconfig/StoreConfigLifecycleListener.java',101,101,'org.apache.catalina.storeconfig.StoreConfigLifecycleListener','createMBean(Server)',NULL),(15575,'Client sent Expect: 100-continue but received a\nnon-2xx final response. Disable keep-alive (if enabled)\nto ensure that the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1103,1108,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapperBase<S>)','DESIGN'),(15576,'If we know we are closing the connection, don\'t drain\ninput. This way uploading a 100GB file doesn\'t tie up the\nthread if the servlet has rejected it.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1097,1099,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapperBase<S>)',NULL),(15577,'Need to check this again here in case the response was\ncommitted before the error that requires the connection\nto be closed occurred.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1102,1104,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapperBase<S>)',NULL),(15578,'Client sent Expect: 100-continue but received a\nnon-2xx final response. Disable keep-alive (if enabled)\nto ensure that the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1169,1174,'org.apache.coyote.http11.AbstractHttp11Processor','checkExpectationAndResponseStatus()',NULL),(15579,'TODO Log error','Line','java/org/apache/catalina/authenticator/SingleSignOn.java',437,437,'org.apache.catalina.authenticator.SingleSignOn','expire(SingleSignOnSessionKey)','NOT_DESIGN'),(15580,'Session ID is 32. Standard text is 36. Host could easily be 20+.\nContext could be anything from 0 upwards. 128 seems like a reasonable\nsize to accommodate most cases without being too big.','Line','java/org/apache/catalina/authenticator/SingleSignOnSessionKey.java',109,111,'org.apache.catalina.authenticator.SingleSignOnSessionKey','toString()',NULL),(15581,'None','None','java/org/apache/catalina/authenticator/SingleSignOn.java',-1,-1,'None','None',NULL),(15582,'TODO This being public is a temporary hack to simplify refactoring','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',73,73,'org.apache.tomcat.util.net.SocketWrapperBase','None',NULL),(15583,'TODO: This needs to be expandable to the header buffer size','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2387,2387,'org.apache.tomcat.util.net.AprEndpoint','setTimeout(long)','DESIGN'),(15584,'TODO These being public is a temporary hack to simplify refactoring','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',73,73,'org.apache.tomcat.util.net.SocketWrapperBase','None','DESIGN'),(15585,'TODO This being public is a temporary hack to simplify refactoring','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',183,183,'org.apache.tomcat.util.net.SocketWrapperBase','hasMoreDataToFlush()','DESIGN'),(15586,'TODO These are public for now to aid refactoring','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',726,726,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','DESIGN'),(15587,'None','None','java/org/apache/tomcat/util/net/SocketWrapperBase.java',-1,-1,'None','None',NULL),(15588,'TODO This being public is a temporary hack to simplify refactoring','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',83,83,'org.apache.tomcat.util.net.SocketWrapperBase','None','DESIGN'),(15589,'TODO','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1163,1163,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15590,'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',550,553,'org.apache.coyote.http11.AbstractOutputBuffer','write(String)',NULL),(15591,'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/Http11OutputBuffer.java',551,554,'org.apache.coyote.http11.Http11OutputBuffer','write(String)',NULL),(15592,'TODO: Ensure write buffer is >= header buffer size','Line','java/org/apache/coyote/http11/Http11OutputBuffer.java',347,347,'org.apache.coyote.http11.Http11OutputBuffer','init(SocketWrapperBase<S>)',NULL),(15593,'TODO Review use of this, hasDataForWrite() and registerWriteInterest()','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',202,202,'org.apache.tomcat.util.net.SocketWrapperBase','isReadyForWrite()',NULL),(15594,'TODO: Ensure write buffer is >= header buffer size','Line','java/org/apache/coyote/http11/Http11OutputBuffer.java',345,345,'org.apache.coyote.http11.Http11OutputBuffer','init(SocketWrapperBase<S>)',NULL),(15595,'End the response status line\nTODO o.a.coyoye.http11.Constants is pre-loaded. Can we drop this?','Line','java/org/apache/coyote/http11/Http11OutputBuffer.java',418,419,'org.apache.coyote.http11.Http11OutputBuffer','sendStatus()',NULL),(15596,'TODO: Ensure write buffer is >= header buffer size','Line','java/org/apache/coyote/http11/Http11OutputBuffer.java',348,348,'org.apache.coyote.http11.Http11OutputBuffer','init(SocketWrapperBase<?>)','NOT_DESIGN'),(15597,'None','None','java/org/apache/coyote/http11/Http11OutputBuffer.java',-1,-1,'None','None',NULL),(15598,'End the response status line\nTODO o.a.coyoye.http11.Constants is pre-loaded. Can we drop this?','Line','java/org/apache/coyote/http11/Http11OutputBuffer.java',417,418,'org.apache.coyote.http11.Http11OutputBuffer','sendStatus()','DESIGN'),(15599,'TODO Make the socketWriteBuffer size configurable and align the\nSSL and app buffer size settings with NIO & NIO2.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2380,2381,'org.apache.tomcat.util.net.AprEndpoint','setTimeout(long)',NULL),(15600,'TODO Review use of this, hasDataForWrite() and registerWriteInterest()','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',191,191,'org.apache.tomcat.util.net.SocketWrapperBase','isReadyForWrite()','DESIGN'),(15601,'TODO','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1196,1196,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15602,'While the implementations for blocking and non-blocking writes are\nvery similar they have been split into separate methods to allow\nsub-classes to override them individually. NIO2, for example,\noverrides the non-blocking write but not the blocking write.','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',313,316,'org.apache.tomcat.util.net.SocketWrapperBase','write(boolean, byte[], int, int)',NULL),(15603,'TODO: There is an assumption here that the blocking write will\nblock until all the data is written or the write times out.\nDocument this assumption in the Javadoc for doWrite(),\nensure it is valid for all implementations of doWrite() and\nthen review all callers of doWrite() and review what\nsimplifications this offers.','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',351,356,'org.apache.tomcat.util.net.SocketWrapperBase','writeBlocking(byte[], int, int)','DESIGN'),(15604,'Keep writing until all the data has been transferred to the socket\nwrite buffer and space remains in that buffer','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',345,346,'org.apache.tomcat.util.net.SocketWrapperBase','writeBlocking(byte[], int, int)',NULL),(15605,'TODO: Restore a socket level input buffer to align with NIO and\nNIO2.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2407,2408,'org.apache.tomcat.util.net.AprEndpoint','read(boolean, byte[], int, int)',NULL),(15606,'TODO AJP and HTTPS have different expectations for the state of\nthe buffer at the start of a read. These need to be reconciled.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',195,196,'org.apache.tomcat.util.net.SecureNioChannel','handshake(boolean, boolean)','DESIGN'),(15607,'TODO AJP and HTTPS have different expectations for the state of\nthe buffer at the start of a read. These need to be reconciled.','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1597,1598,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)','DESIGN'),(15608,'None','None','java/org/apache/tomcat/util/net/NioChannel.java',-1,-1,'None','None',NULL),(15609,'Fill the read buffer as best we can','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1441,1441,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(15610,'Fill the read buffer as best we can. Only do a blocking read if\nthe current read is blocking AND there wasn\'t any data left over\nin the read buffer.','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1441,1443,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(15611,'Fill the read buffer as best we can','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1024,1024,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15612,'Fill the read buffer as best we can. Only do a blocking read if\nthe current read is blocking AND there wasn\'t any data left over\nin the read buffer.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1020,1022,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15613,'TODO Figure out why moving this to the awaitBytesHandler\ncauses test failures.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1304,1305,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15614,'TODO: Lots of direct access to the socketWriteBuffer.\nRefactor to use socketBufferHandler','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1379,1380,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15615,'TODO Figure out why moving this to the awaitBytesHandler\ncauses test failures.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1313,1314,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','DESIGN'),(15616,'Fill the read buffer as best we can. Only do a blocking read if\nthe current read is blocking AND there wasn\'t any data left over\nin the read buffer.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1043,1045,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15617,'Fill the read buffer as best we can.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1043,1043,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15618,'Bug 57446. Same ServletContext should be presented as at init','Line','test/org/apache/catalina/core/TesterTldListener.java',52,52,'org.apache.catalina.core.TesterTldListener','contextDestroyed(ServletContextEvent)',NULL),(15619,'TODO no need to send the entry data.','Line','java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java',937,937,'org.apache.catalina.tribes.tipis.AbstractReplicatedMap','getStateMessageType()',NULL),(15620,'TODO no need to send the entry data.','Line','java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java',932,932,'org.apache.catalina.tribes.tipis.AbstractReplicatedMap','getStateMessageType()','NOT_DESIGN'),(15621,'Test to explore if re-using Parser instances is faster.\n\nTests on my laptop show:\n- overhead by introducing the stack is in the noise for parsing even the\nsimplest expression\n- efficiency from re-using the ELParser is measurable for even a single\nreuse of the parser\n- with large numbers of parses (~10k) performance for a trivial parse is\nthree times faster\n- around the 100 iterations mark GC overhead adds significant noise to\nthe results - for consistent results you either need fewer parses to\navoid triggering GC or more parses so the GC effects are evenly\ndistributed between the runs\n\nNote that the test is single threaded.','Block','test/org/apache/el/parser/TestELParser.java',237,253,'org.apache.el.parser.TestELParser','testParserPerformance()',NULL),(15622,'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',103,104,'org.apache.coyote.http11.Http11AprProcessor','breakKeepAliveLoop(SocketWrapperBase<Long>)','DESIGN'),(15623,'If sendfile is complete, no need to break keep-alive loop','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',101,101,'org.apache.coyote.http11.Http11AprProcessor','breakKeepAliveLoop(SocketWrapperBase<Long>)',NULL),(15624,'Write failed','Line','java/org/apache/coyote/http11/Http11AprProcessor.java',107,107,'org.apache.coyote.http11.Http11AprProcessor','breakKeepAliveLoop(SocketWrapperBase<Long>)',NULL),(15625,'TODO Can this be removed once all reads and writes are handled within\nthis class?','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2394,2395,'org.apache.tomcat.util.net.AprEndpoint','setTimeout(long)','DESIGN'),(15626,'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',138,139,'org.apache.coyote.http11.Http11AprProcessor','actionInternal(ActionCode, Object)','DESIGN'),(15627,'None','None','java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java',-1,-1,'None','None',NULL),(15628,'TODO: Remove','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1150,1150,'org.apache.coyote.http11.AbstractHttp11Processor','process(SocketWrapperBase<S>)',NULL),(15629,'TODO: Remove','Line','java/org/apache/coyote/http11/Http11Processor.java',1146,1146,'org.apache.coyote.http11.Http11Processor','process(SocketWrapperBase<S>)',NULL),(15630,'Client sent Expect: 100-continue but received a\nnon-2xx final response. Disable keep-alive (if enabled)\nto ensure that the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1274,1279,'org.apache.coyote.http11.AbstractHttp11Processor','checkExpectationAndResponseStatus()',NULL),(15631,'Client sent Expect: 100-continue but received a\nnon-2xx final response. Disable keep-alive (if enabled)\nto ensure that the connection is closed. Some clients may\nstill send the body, some may send the next request.\nNo way to differentiate, so close the connection to\nforce the client to send the next request.','Line','java/org/apache/coyote/http11/Http11Processor.java',1269,1274,'org.apache.coyote.http11.Http11Processor','checkExpectationAndResponseStatus()',NULL),(15632,'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',1459,1461,'org.apache.coyote.http11.AbstractHttp11Processor','prepareRequest()',NULL),(15633,'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',1454,1456,'org.apache.coyote.http11.Http11Processor','prepareRequest()',NULL),(15634,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/AbstractHttp11Processor.java',1595,1595,'org.apache.coyote.http11.AbstractHttp11Processor','prepareResponse()',NULL),(15635,'FIXME: Add transfer encoding header','Line','java/org/apache/coyote/http11/Http11Processor.java',1590,1590,'org.apache.coyote.http11.Http11Processor','prepareResponse()',NULL),(15636,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',153,153,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapperBase<S>, ByteBuffer, HttpUpgradeHandler)',NULL),(15637,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',151,151,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapperBase<?>, ByteBuffer, HttpUpgradeHandler)',NULL),(15638,'TODO\nTemporary method to aid in some refactoring.\nIt is currently expected that this method will be removed in a subsequent\nrefactoring.','Block','java/org/apache/tomcat/util/net/SocketWrapperBase.java',630,635,'org.apache.tomcat.util.net.SocketWrapperBase','processSocket(SocketStatus, boolean)','DESIGN'),(15639,'TODO\nTemporary method to aid in some refactoring.\nIt is currently expected that this method will be removed in a subsequent\nrefactoring.','Block','java/org/apache/tomcat/util/net/SocketWrapperBase.java',641,646,'org.apache.tomcat.util.net.SocketWrapperBase','executeNonBlockingDispatches()',NULL),(15640,'None','None','java/org/apache/tomcat/util/net/SSLImplementation.java',-1,-1,'None','None',NULL),(15641,'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',544,546,'org.apache.catalina.mapper.TestMapper','testPerformance()',NULL),(15642,'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/TestMapperPerformance.java',29,31,'org.apache.catalina.mapper.TestMapperPerformance','testPerformance()',NULL),(15643,'To allow for timing differences between runs, a \\\"best of n\\\" approach\nis taken for this test','Line','test/org/apache/catalina/connector/TestResponsePerformance.java',40,41,'org.apache.catalina.connector.TestResponsePerformance','testToAbsolutePerformance()',NULL),(15644,'The only way to finish an HTTP Upgrade connection is to close the\nsocket.','Line','java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java',58,59,'org.apache.coyote.http11.upgrade.UpgradeServletInputStream','isFinished()','NOT_DESIGN'),(15645,'TODO i18n','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1441,1441,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)','NOT_DESIGN'),(15646,'As per RFC 6455, a WebSocket connection is considered to be\nclosed once a peer has sent and received a WebSocket close frame.','Block','java/org/apache/tomcat/websocket/WsSession.java',734,737,'org.apache.tomcat.websocket.WsSession','checkState()',NULL),(15647,'Fill the read buffer as best we can. Only do a blocking read if\nthe current read is blocking AND there wasn\'t any data left over\nin the read buffer.','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1426,1428,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(15648,'Fill the read buffer as best we can.','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1432,1432,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(15649,'TODO i18n','Line','java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java',167,167,'org.apache.tomcat.websocket.server.WsHttpUpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15650,'TODO i18n','Line','java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java',88,88,'org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer','isMasked()',NULL),(15651,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',298,298,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','setTransformation(Transformation)',NULL),(15652,'TODO: Restore a socket level input buffer to align with NIO and\nNIO2.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2393,2394,'org.apache.tomcat.util.net.AprEndpoint','read(boolean, byte[], int, int)',NULL),(15653,'TODO: Restore a socket level input buffer to align with NIO and\nNIO2.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2437,2438,'org.apache.tomcat.util.net.AprEndpoint','fillReadBuffer(boolean)','NOT_DESIGN'),(15654,'Not entirely sure why this is necessary. Testing to date has not\nidentified any issues with this but log it so it can be tracked\nif it is suspected of causing issues in the future.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2462,2464,'org.apache.tomcat.util.net.AprEndpoint','read(boolean, byte[], int, int)',NULL),(15655,'Not entirely sure why this is necessary. Testing to date has not\nidentified any issues with this but log it so it can be tracked\nif it is suspected of causing issues in the future.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2499,2501,'org.apache.tomcat.util.net.AprEndpoint','fillReadBuffer(boolean)',NULL),(15656,'Fill the read buffer as best we can.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2415,2415,'org.apache.tomcat.util.net.AprEndpoint','read(boolean, byte[], int, int)',NULL),(15657,'TODO i18n','Line','java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java',83,83,'org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer','isMasked()','NOT_DESIGN'),(15658,'None','None','java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java',-1,-1,'None','None',NULL),(15659,'TODO Make the socketWriteBuffer size configurable and align the\nSSL and app buffer size settings with NIO & NIO2.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2365,2366,'org.apache.tomcat.util.net.AprEndpoint','resetSocketBufferHandler(Long)',NULL),(15660,'TODO Make the socketWriteBuffer size configurable and align the\nSSL and app buffer size settings with NIO & NIO2.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',2364,2365,'org.apache.tomcat.util.net.AprEndpoint','read(boolean, byte[], int, int)',NULL),(15661,'TODO Need to actually implement merging of the descriptors here.\nI\'m currently thinking quicksort followed by running\nthrough the sorted list to merge the events.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',1931,1933,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','DESIGN'),(15662,'Notes: Only the first startCount * 2 elements of the array\nare populated.\nThe array is event, socket, event, socket etc.','Block','java/org/apache/tomcat/util/net/AprEndpoint.java',1931,1935,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(15663,'TODO: Name validation takes place in Cookie and can not be configured\nper Context. Moving it to here would allow per Context config\nbut delay validation until the header is generated. However,\nthe spec requires an IllegalArgumentException on Cookie\ngeneration.','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',99,103,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)',NULL),(15664,'TODO: Name validation takes place in Cookie and cannot be configured\nper Context. Moving it to here would allow per Context config\nbut delay validation until the header is generated. However,\nthe spec requires an IllegalArgumentException on Cookie\ngeneration.','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',99,103,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','generateHeader(javax.servlet.http.Cookie)',NULL),(15665,'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',84,85,'org.apache.catalina.authenticator.NonLoginAuthenticator','authenticate(Request, HttpServletResponse)','NOT_DESIGN'),(15666,'Don\'t try and use SSO to authenticate since there is no auth\nconfigured for this web application','Line','java/org/apache/catalina/authenticator/NonLoginAuthenticator.java',80,81,'org.apache.catalina.authenticator.NonLoginAuthenticator','authenticate(Request, HttpServletResponse)',NULL),(15667,'Custom authenticator that may not trigger authorization.\nDo the authorization here to make sure it is done.','Line','java/org/apache/catalina/connector/CoyoteAdapter.java',870,871,'org.apache.catalina.connector.CoyoteAdapter','doConnectorAuthenticationAuthorization(org.apache.coyote.Request, Request)',NULL),(15668,'Size is supposed to be 33 without huffman, or 27 with it\nTODO: use the HpackHeaderFunction to enable huffman predictably','Line','test/org/apache/coyote/http2/TestHpack.java',37,38,'org.apache.coyote.http2.TestHpack','None',NULL),(15669,'TODO: Write more complete tests','Line','test/org/apache/coyote/http2/TestHpack.java',83,83,'org.apache.coyote.http2.TestHpack','None',NULL),(15670,'TODO: figure out a good value for this','Line','java/org/apache/coyote/http2/HpackEncoder.java',51,51,'org.apache.coyote.http2.HpackEncoder','shouldUseIndexing(String, String)',NULL),(15671,'TODO: use a custom data structure to reduce allocations','Line','java/org/apache/coyote/http2/HpackEncoder.java',75,75,'org.apache.coyote.http2.HpackEncoder','shouldUseIndexing(String, String)',NULL),(15672,'FIXME: Review lowercase policy','Line','java/org/apache/coyote/http2/HpackEncoder.java',134,134,'org.apache.coyote.http2.HpackEncoder','shouldUseIndexing(String, String)',NULL),(15673,'todo: some form of lookup?','Line','java/org/apache/coyote/http2/HpackEncoder.java',286,286,'org.apache.coyote.http2.HpackEncoder','shouldUseIndexing(String, String)',NULL),(15674,'FIXME: The ws client doesn\'t handle any response other than the upgrade,\nwhich may or may not be allowed. In that case, the server will return\na redirect to the root of the webapp to avoid possible broken relative\npaths.','Line','test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java',101,104,'org.apache.tomcat.websocket.TestWebSocketFrameClient','testConnectToRootEndpoint()',NULL),(15675,'The purpose of this class is to provide a way for HostConfig to get\na Context to delete an expanded WAR after the Context stops. This is to\nresolve this issue described in Bug 57772. The alternative solutions\nrequire either duplicating a lot of the Context.reload() code in\nHostConfig or adding a new reload(boolean) method to Context that allows\nthe caller to optionally delete any expanded WAR.\n\nThe LifecycleListener approach offers greater flexibility and enables the\nbehaviour to be changed / extended / removed in future without changing\nthe Context API.','Block','java/org/apache/catalina/startup/HostConfig.java',1787,1798,'org.apache.catalina.startup.HostConfig','getContextClass()',NULL),(15676,'TODO: NIO2 style scatter/gather methods.\nTODO: SecureNio2Channel gather would need to be improved','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1046,1047,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15677,'FIXME: @Override','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1225,1225,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15678,'FIXME: Add scatter read to Nio2Channel and ScatterReadCompletionHandler class','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1234,1234,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15679,'TODO: End NIO2 style scatter/gather methods.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1283,1283,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15680,'TODO: NIO2 style scatter/gather methods.\nTODO: SecureNio2Channel scatter/gather would need to be improved','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1046,1047,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15681,'FIXME: Add scatter read to Nio2Channel and ScatterReadCompletionHandler class','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1243,1243,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15682,'TODO: NIO2 style scatter/gather methods.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1046,1046,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15683,'TODO: Possible optimization for scatter','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',796,796,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapperBase<Nio2Channel>)',NULL),(15684,'TODO: Possible optimization for gather','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',961,961,'org.apache.tomcat.util.net.SecureNio2Channel','write(ByteBuffer[], int, int, long, TimeUnit, A, CompletionHandler<Long, ? super A>)',NULL),(15685,'FIXME: @Override','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1319,1319,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15686,'FIXME: @Override','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1363,1363,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)',NULL),(15687,'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',485,486,'org.apache.tomcat.jni.socket.AprSocket','getPeerCert(boolean)',NULL),(15688,'TODO: if the ticket, session id or session changed - callback to\nsave the session again','Line','java/org/apache/tomcat/jni/socket/AprSocket.java',856,857,'org.apache.tomcat.jni.socket.AprSocket','handshakeDone()',NULL),(15689,'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',86,89,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15690,'Set on all accepted or connected sockets.\nTODO: add the other properties','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',113,114,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15691,'TODO: do we need this here ?','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',159,159,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15692,'todo: check spdy/2','Line','java/org/apache/tomcat/spdy/NetSupportOpenSSL.java',49,49,'org.apache.tomcat.spdy.NetSupportOpenSSL','handshakeDone(AprSocket)',NULL),(15693,'TODO: should have a separate method for switching to tls later.','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',325,325,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15694,'TODO: does it need to be done in io thread ?','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',416,416,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15695,'Blocking\nTODO: use socket pool\nTODO: cache it ( and TTL ) in hi','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',451,453,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15696,'Client certificate verification - maybe make it option','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',635,635,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15697,'TODO: try release buffers','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',680,680,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15698,'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',801,802,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15699,'TODO: SSL really needs a thread.','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',828,828,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15700,'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',900,901,'org.apache.tomcat.jni.socket.AprSocketContext','rawData(AprSocket, boolean, byte[], int, int, int, boolean)',NULL),(15701,'TODO: destroy/close the raw socket','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',1008,1008,'org.apache.tomcat.jni.socket.AprSocketContext','run()',NULL),(15702,'TODO: timeouts','Line','java/org/apache/tomcat/jni/socket/AprSocketContext.java',1081,1081,'org.apache.tomcat.jni.socket.AprSocketContext','run()',NULL),(15703,'500 - Internal Server Error\nTODO Log this properly','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',166,167,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(15704,'500 - Internal Server Error\nTODO Log this properly','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',165,166,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk)',NULL),(15705,'TODO: async, etc ( detached mode - use a special light protocol)','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',174,174,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(15706,'TODO: async, etc ( detached mode - use a special light protocol)','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',173,173,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk)',NULL),(15707,'TODO: recycle','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',192,192,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk, Request)',NULL),(15708,'TODO: recycle','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',191,191,'org.apache.coyote.spdy.SpdyProcessor','doRead(ByteChunk)',NULL),(15709,'allocate network buffers - TODO, add in optional direct non-direct buffers','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',61,61,'org.apache.tomcat.util.net.SecureNioChannel','reset(SSLEngine)','NOT_DESIGN'),(15710,'TODO The peek at the available data to determine the host requested\nvia SNI (if any) goes here.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',220,221,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15711,'TODO The peek at the available data to determine the host requested\nvia SNI (if any) goes here.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',215,216,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()','NOT_DESIGN'),(15712,'Peeks at the initial network bytes to determine if the SNI extension is\npresent and, if it is, what host name has been requested. Based on the\nprovided host name, configure the SSLEngine for this connection.','Block','java/org/apache/tomcat/util/net/SecureNioChannel.java',216,220,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15713,'Create the network input buffer as data needs to be read into this\nto be able to peek at it.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',224,225,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15714,'NO-OP Let the handshake continue and deal with whatever was wrong','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',243,243,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15715,'NO-OP','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',246,246,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15716,'TODO: Extract the correct configuration for the requested host name\nand set up the SSLEngine accordingly.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',254,255,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15717,'TODO: Detect use of http on a secure connection and provide a simple\nerror page.','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',27,28,'org.apache.tomcat.util.net.SNIExtractor','getResult()',NULL),(15718,'TODO Parse the data','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',32,32,'org.apache.tomcat.util.net.SNIExtractor','getResult()',NULL),(15719,'TODO Parse the remainder of the data','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',54,54,'org.apache.tomcat.util.net.SNIExtractor','getResult()','NOT_DESIGN'),(15720,'Protocol Version (2 bytes)','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',83,83,'org.apache.tomcat.util.net.SNIExtractor','getResult()',NULL),(15721,'Session ID','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',86,86,'org.apache.tomcat.util.net.SNIExtractor','getResult()',NULL),(15722,'Compression methods','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',89,89,'org.apache.tomcat.util.net.SNIExtractor','getResult()',NULL),(15723,'No more data means no extensions present','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',93,93,'org.apache.tomcat.util.net.SNIExtractor','getResult()',NULL),(15724,'TODO: Extract the correct configuration for the requested host name\nand set up the SSLEngine accordingly.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',256,257,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15725,'TODO: Extract the correct configuration for the requested host name\nand set up the SSLEngine accordingly. At that point this can\nbecome a debug level message.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',269,271,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()',NULL),(15726,'TODO: Extract the correct configuration for the requested host name\nand set up the SSLEngine accordingly. At that point this can\nbecome a debug level message.','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',349,351,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapperBase<Nio2Channel>)','NOT_DESIGN'),(15727,'TODO: Extract the correct configuration for the requested host name\nand set up the SSLEngine accordingly. At that point this can\nbecome a debug level message.','Line','java/org/apache/tomcat/util/net/SecureNioChannel.java',264,266,'org.apache.tomcat.util.net.SecureNioChannel','processSNI()','NOT_DESIGN'),(15728,'if we need more network data, then bail out for now.','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',789,789,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapperBase<Nio2Channel>)','NOT_DESIGN'),(15729,'TODO: Possible optimization for scatter','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',839,839,'org.apache.tomcat.util.net.SecureNio2Channel','completed(Integer, SocketWrapperBase<Nio2Channel>)','NOT_DESIGN'),(15730,'TODO: Possible optimization for gather','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',1004,1004,'org.apache.tomcat.util.net.SecureNio2Channel','write(ByteBuffer[], int, int, long, TimeUnit, A, CompletionHandler<Long, ? super A>)','NOT_DESIGN'),(15731,'if we need more network data, then bail out for now.','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',799,799,'org.apache.tomcat.util.net.SecureNio2Channel','read(ByteBuffer, long, TimeUnit, A, CompletionHandler<Integer, ? super A>)',NULL),(15732,'if we need more network data, then bail out for now.','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',872,872,'org.apache.tomcat.util.net.SecureNio2Channel','read(ByteBuffer[], int, int, long, TimeUnit, A, CompletionHandler<Long, ? super A>)',NULL),(15733,'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',358,359,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','DESIGN'),(15734,'TODO: Create multiple SSLContexts based on SSLHostConfig(s)','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',45,45,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementation()','NOT_DESIGN'),(15735,'None','None','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',-1,-1,'None','None',NULL),(15736,'TODO: No SNI support in APR/native so only process the\ndefault host.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',483,484,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(15737,'TODO i18n','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',222,222,'org.apache.tomcat.util.net.AbstractEndpoint','process(SocketWrapperBase<S>, SocketStatus)',NULL),(15738,'TODO: Temp code until config refactoring is complete. Remove once\nrefactoring is complete.','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',45,46,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementation()',NULL),(15739,'TODO: NIO2 style scatter/gather methods.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',960,960,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15740,'FIXME: @Override','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1194,1194,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15741,'TODO: End NIO2 style scatter/gather methods.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1331,1331,'org.apache.tomcat.util.net.Nio2Endpoint','setUseCaches(boolean)','NOT_DESIGN'),(15742,'TODO: Temp code until config refactoring is complete. Remove once\nrefactoring is complete.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',483,484,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(15743,'TODO: Temp code until config refactoring is complete. Remove once\nrefactoring is complete.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',474,475,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','DESIGN'),(15744,'Initialize SSL if needed','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',471,471,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(15745,'TODO i18n','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',79,79,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementation()',NULL),(15746,'TODO: No SNI support in APR/native so only process the\ndefault host.','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',475,476,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)','DESIGN'),(15747,'TODO i18n','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',221,221,'org.apache.tomcat.util.net.AbstractEndpoint','process(SocketWrapperBase<S>, SocketStatus)','NOT_DESIGN'),(15748,'TODO Consider hard-coding to s.setSoLinger(true,0)','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',725,725,'org.apache.tomcat.util.net.AbstractEndpoint','process(SocketWrapperBase<S>, SocketStatus)','DESIGN'),(15749,'TODO: All of these SSL setters can be removed once it is no longer\nnecessary to support the old configuration attributes (Tomcat 10?).','Line','java/org/apache/coyote/http11/AbstractHttp11Protocol.java',359,360,'org.apache.coyote.http11.AbstractHttp11Protocol','getProtocolName()',NULL),(15750,'Not a JSSE name. Maybe an OpenSSL name or alias','Line','java/org/apache/tomcat/util/net/SSLHostConfig.java',141,141,'org.apache.tomcat.util.net.SSLHostConfig','setCiphers(String)',NULL),(15751,'TODO i18n, sm','Line','java/org/apache/tomcat/util/net/SSLHostConfig.java',442,442,'org.apache.tomcat.util.net.SSLHostConfig','adjustRelativePath(String)',NULL),(15752,'TODO: Temp code until config refactoring is complete. Remove once\nrefactoring is complete.','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',49,50,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementation()','DESIGN'),(15753,'TODO i18n','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',70,70,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementation()','NOT_DESIGN'),(15754,'TODO i18n','Line','java/org/apache/catalina/filters/HttpHeaderSecurityFilter.java',174,174,'org.apache.catalina.filters.HttpHeaderSecurityFilter','setAntiClickJackingOption(String)','NOT_DESIGN'),(15755,'None','None','java/org/apache/catalina/filters/HttpHeaderSecurityFilter.java',-1,-1,'None','None',NULL),(15756,'TODO This is for debug purposes to make sure ALPN is working.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',62,62,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15757,'TODO process frames','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',93,93,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15758,'TODO','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',96,96,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15759,'TODO process frames','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',89,89,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15760,'TODO: CLOSED (GO_AWAY + no open streams apart from 0?) vs LONG','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',95,95,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)','DESIGN'),(15761,'None','None','java/org/apache/coyote/http2/Http2UpgradeHandler.java',-1,-1,'None','None',NULL),(15762,'TODO Catch the Http2Exception and reset the stream / close\nthe connection as appropriate','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',101,102,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15763,'TODO: Consider refactoring and making this a field to reduce GC.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',143,143,'org.apache.coyote.http2.Http2UpgradeHandler','processFrame()',NULL),(15764,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',167,167,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int)',NULL),(15765,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',215,215,'org.apache.coyote.http2.Http2UpgradeHandler','getFrameHeader(byte[])',NULL),(15766,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',229,229,'org.apache.coyote.http2.Http2UpgradeHandler','getFrameType(byte[])',NULL),(15767,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',254,254,'org.apache.coyote.http2.Http2UpgradeHandler','getPayloadSize(int, byte[])',NULL),(15768,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',73,73,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)','NOT_DESIGN'),(15769,'TODO i18n','Line','java/org/apache/coyote/http2/ConnectionSettings.java',85,85,'org.apache.coyote.http2.ConnectionSettings','setEnablePush(long)','NOT_DESIGN'),(15770,'TODO i18n','Line','java/org/apache/coyote/http2/ConnectionSettings.java',105,105,'org.apache.coyote.http2.ConnectionSettings','setInitialWindowSize(long)','NOT_DESIGN'),(15771,'TODO i18n','Line','java/org/apache/coyote/http2/ConnectionSettings.java',117,117,'org.apache.coyote.http2.ConnectionSettings','setMaxFrameSize(long)','NOT_DESIGN'),(15772,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',192,192,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int, int)',NULL),(15773,'TODO process ACK','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',199,199,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int, int)',NULL),(15774,'Acknowledge the settings\nTODO Need to coordinate writes with other threads','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',221,222,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int, int)',NULL),(15775,'None','None','java/org/apache/coyote/http2/ConnectionSettings.java',-1,-1,'None','None',NULL),(15776,'TODO Catch the Http2Exception and reset the stream / close\nthe connection as appropriate','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',112,113,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)','NOT_DESIGN'),(15777,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',184,184,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int, int)','NOT_DESIGN'),(15778,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',265,265,'org.apache.coyote.http2.Http2UpgradeHandler','getFrameHeader(byte[])','NOT_DESIGN'),(15779,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',279,279,'org.apache.coyote.http2.Http2UpgradeHandler','getFrameType(byte[])','NOT_DESIGN'),(15780,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',304,304,'org.apache.coyote.http2.Http2UpgradeHandler','getPayloadSize(int, byte[])','NOT_DESIGN'),(15781,'Stream error\nTODO Reset stream','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',120,121,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15782,'Ignore. GOAWAY is sent on a best efforts basis and the original\nerror has already been logged.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',337,338,'org.apache.coyote.http2.Http2UpgradeHandler','close(Http2Exception)',NULL),(15783,'TODO i18n\nUse stream 0 since this is always a connection error','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',248,249,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameWindowUpdate(int, int, int)','NOT_DESIGN'),(15784,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',260,260,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameWindowUpdate(int, int, int)','NOT_DESIGN'),(15785,'Validate the frame','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',246,246,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameWindowUpdate(int, int, int)',NULL),(15786,'Use stream 0 since this is always a connection error','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',248,248,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameWindowUpdate(int, int, int)',NULL),(15787,'TODO: Do something with these headers','Line','java/org/apache/coyote/http2/Stream.java',50,50,'org.apache.coyote.http2.Stream','emitHeader(String, String, boolean)',NULL),(15788,'Process the stream\nTODO Handle end of headers flag\nTODO Handle end of stream flag\nTODO Handle continutation frames','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',230,233,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameHeaders(int, int, int)',NULL),(15789,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',277,277,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameHeaders(int, int, int)','NOT_DESIGN'),(15790,'TODO: The maximum allowed in a settings frame as 2^32 (unsigned)\nUse the maximum possible','Line','java/org/apache/coyote/http2/ConnectionSettings.java',31,32,'org.apache.coyote.http2.ConnectionSettings','None','NOT_DESIGN'),(15791,'TODO','Line','java/org/apache/coyote/http2/Stream.java',104,104,'org.apache.coyote.http2.Stream','incrementWindowSize(int)',NULL),(15792,'Acknowledge the settings\nTODO Need to coordinate writes with other threads','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',383,384,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int, int)','DESIGN'),(15793,'Acknowledge the settings','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',394,394,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int, int)',NULL),(15794,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',59,59,'org.apache.coyote.http2.StreamProcessor','run()',NULL),(15795,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',103,103,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)',NULL),(15796,'TODO: This is almost certainly wrong and needs to be decoded','Line','java/org/apache/coyote/http2/Stream.java',69,69,'org.apache.coyote.http2.Stream','incrementWindowSize(int)',NULL),(15797,'Format the frames.\nTODO','Line','java/org/apache/coyote/http2/Stream.java',98,99,'org.apache.coyote.http2.Stream','incrementWindowSize(int)',NULL),(15798,'TODO Blocking. Write to buffer. flushData() if full.','Line','java/org/apache/coyote/http2/Stream.java',130,130,'org.apache.coyote.http2.Stream','doWrite(ByteChunk)',NULL),(15799,'TODO process writes','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',158,158,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)','NOT_DESIGN'),(15800,'------------------------------------------------------- NIO 2 style APIs','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',641,641,'org.apache.tomcat.util.net.SocketWrapperBase','getSocket()',NULL),(15801,'TODO','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',163,163,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15802,'TODO','Line','java/org/apache/coyote/http2/Stream.java',114,114,'org.apache.coyote.http2.Stream','incrementWindowSize(int)',NULL),(15803,'TODO','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',617,617,'org.apache.coyote.http2.Http2UpgradeHandler','processWrites()',NULL),(15804,'TODO This is for debug purposes to make sure ALPN is working.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',184,184,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)','NOT_DESIGN'),(15805,'TODO This is more complicated than pulling an object off a queue.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',625,625,'org.apache.coyote.http2.Http2UpgradeHandler','getThingToWrite()',NULL),(15806,'Format the frames.\nTODO','Line','java/org/apache/coyote/http2/Stream.java',103,104,'org.apache.coyote.http2.Stream','incrementWindowSize(int)','NOT_DESIGN'),(15807,'None','None','java/org/apache/coyote/http2/Stream.java',-1,-1,'None','None',NULL),(15808,'TODO Handle this','Line','java/org/apache/coyote/http2/Stream.java',102,102,'org.apache.coyote.http2.Stream','incrementWindowSize(int)',NULL),(15809,'Stream error\nTODO Reset stream','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',211,212,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15810,'TODO Determine end of stream correctly','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',673,673,'org.apache.coyote.http2.Http2UpgradeHandler','writeHeaders(Stream, Response)',NULL),(15811,'bad: shouldn\'t mask an exception the following way:','Line','java/org/apache/catalina/tribes/util/StringManager.java',116,116,'org.apache.catalina.tribes.util.StringManager','None',NULL),(15812,'bad: shouldn\'t mask an exception the following way:\nstr = \\\"[cannot find message associated with key \'\\\" + key +','Line','java/org/apache/catalina/tribes/util/StringManager.java',131,132,'org.apache.catalina.tribes.util.StringManager','None',NULL),(15813,'TODO','Line','java/org/apache/coyote/http2/Stream.java',113,113,'org.apache.coyote.http2.Stream','incrementWindowSize(int)','NOT_DESIGN'),(15814,'TODO Blocking. Write to buffer. flushData() if full.','Line','java/org/apache/coyote/http2/Stream.java',146,146,'org.apache.coyote.http2.Stream','doWrite(ByteChunk)','NOT_DESIGN'),(15815,'TODO i18n','Line','java/org/apache/coyote/http2/Stream.java',160,160,'org.apache.coyote.http2.Stream','doWrite(ByteChunk)',NULL),(15816,'Buffer is empty. Nothing to do.','Line','java/org/apache/coyote/http2/Stream.java',180,180,'org.apache.coyote.http2.Stream','flush()',NULL),(15817,'TODO Determine end of stream correctly','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',708,708,'org.apache.coyote.http2.Http2UpgradeHandler','writeHeaders(Stream, Response)','NOT_DESIGN'),(15818,'TODO Manage window sizes','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',733,733,'org.apache.coyote.http2.Http2UpgradeHandler','writeBody(Stream, ByteBuffer)',NULL),(15819,'TODO Manage window sizes','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',719,719,'org.apache.coyote.http2.Http2UpgradeHandler','writeBody(Stream, ByteBuffer, int)','NOT_DESIGN'),(15820,'TODO. Possible shutdown?','Line','java/org/apache/coyote/http2/Stream.java',209,209,'org.apache.coyote.http2.Stream','flush()',NULL),(15821,'TODO Flow control when connection window is exhausted','Line','java/org/apache/coyote/http2/Stream.java',220,220,'org.apache.coyote.http2.Stream','flush()','NOT_DESIGN'),(15822,'TODO: Possible shutdown?','Line','java/org/apache/coyote/http2/Stream.java',256,256,'org.apache.coyote.http2.Stream','flush()',NULL),(15823,'Need to block until a WindowUpdate message is\nprocessed for this connection','Line','java/org/apache/coyote/http2/Stream.java',267,268,'org.apache.coyote.http2.Stream','flush()',NULL),(15824,'TODO: Possible shutdown?','Line','java/org/apache/coyote/http2/Stream.java',273,273,'org.apache.coyote.http2.Stream','flush()',NULL),(15825,'TODO','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',743,743,'org.apache.coyote.http2.Http2UpgradeHandler','processWrites()','NOT_DESIGN'),(15826,'Has this stream been granted an allocation','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',754,754,'org.apache.coyote.http2.Http2UpgradeHandler','reserveWindowSize(Stream, int)',NULL),(15827,'Add the parents as well','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',764,764,'org.apache.coyote.http2.Http2UpgradeHandler','reserveWindowSize(Stream, int)',NULL),(15828,'TODO This is more complicated than pulling an object off a queue.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',750,750,'org.apache.coyote.http2.Http2UpgradeHandler','getThingToWrite()','DESIGN'),(15829,'+1 is to avoid rounding issues triggering an infinite loop.\nWill cause a very slight over allocation but HTTP/2 should\ncope with that.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',862,864,'org.apache.coyote.http2.Http2UpgradeHandler','allocate(AbstractStream, int)',NULL),(15830,'TODO: Review this in light of HTTP/2','Line','java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java',77,77,'org.apache.tomcat.util.http.Rfc6265CookieProcessor','parseCookieHeader(MimeHeaders, ServerCookies)',NULL),(15831,'TODO: Review this in light of HTTP/2','Line','java/org/apache/tomcat/util/http/LegacyCookieProcessor.java',258,258,'org.apache.tomcat.util.http.LegacyCookieProcessor','parseCookieHeader(MimeHeaders, ServerCookies)',NULL),(15832,'TODO: Lots of direct access to the socketWriteBuffer.\nRefactor to use socketBufferHandler','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',1478,1479,'org.apache.tomcat.util.net.Nio2Endpoint','setHandler(Handler)','DESIGN'),(15833,'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',32,35,'org.apache.tomcat.spdy.SpdyFrame','None',NULL),(15834,'TODO: priority','Line','java/org/apache/tomcat/spdy/SpdyFrame.java',114,114,'org.apache.tomcat.spdy.SpdyFrame','serializeHead()',NULL),(15835,'TODO: instead of that, use byte[][]','Line','java/org/apache/tomcat/spdy/SpdyFrame.java',277,277,'org.apache.tomcat.spdy.SpdyFrame','makeSpace(int)',NULL),(15836,'TODO: handle RST','Line','java/org/apache/tomcat/spdy/SpdyStream.java',104,104,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(15837,'TODO: add the others','Line','java/org/apache/tomcat/spdy/SpdyStream.java',237,237,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(15838,'TODO: send rst, error processing the stream.','Line','java/org/apache/tomcat/spdy/SpdyStream.java',255,255,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(15839,'TODO','Line','java/org/apache/tomcat/spdy/SpdyStream.java',266,266,'org.apache.tomcat.spdy.SpdyStream','dump(PrintWriter)',NULL),(15840,'TODO: code to plug in v7-specific. It is marginally faster.','Line','java/org/apache/tomcat/spdy/CompressDeflater6.java',66,66,'org.apache.tomcat.spdy.CompressDeflater6','get()',NULL),(15841,'TODO','Line','java/org/apache/tomcat/spdy/CompressDeflater6.java',71,71,'org.apache.tomcat.spdy.CompressDeflater6','recycle()',NULL),(15842,'TODO','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',218,218,'org.apache.tomcat.spdy.SpdyConnection','toString()',NULL),(15843,'late: IDs are assigned as we send ( priorities may affect\nthe transmission order )','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',222,223,'org.apache.tomcat.spdy.SpdyConnection','toString()',NULL),(15844,'TODO: abort','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',344,344,'org.apache.tomcat.spdy.SpdyConnection','onClose()',NULL),(15845,'TODO: if data, split it in 2 frames\ngrow the buffer if needed.','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',426,427,'org.apache.tomcat.spdy.SpdyConnection','processInput()',NULL),(15846,'TODO: save/interpret settings','Line','java/org/apache/tomcat/spdy/SpdyConnection.java',549,549,'org.apache.tomcat.spdy.SpdyConnection','handleFrame()',NULL),(15847,'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',63,67,'org.apache.coyote.spdy.SpdyProcessor','None',NULL),(15848,'TODO: Do not swallow request input but\nmake sure we are closing the connection','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',250,251,'org.apache.coyote.spdy.SpdyProcessor','action(ActionCode, Object)',NULL),(15849,'TODO:','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',419,419,'org.apache.coyote.spdy.SpdyProcessor','action(ActionCode, Object)',NULL),(15850,'TODO: filter headers: Connection, Keep-Alive, Proxy-Connection,','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',466,466,'org.apache.coyote.spdy.SpdyProcessor','sendResponseHead()',NULL),(15851,'TODO: optimize','Line','java/org/apache/coyote/spdy/SpdyProcessor.java',491,491,'org.apache.coyote.spdy.SpdyProcessor','sendResponseHead()',NULL),(15852,'None','None','java/org/apache/tomcat/util/bcel/classfile/ElementValue.java',-1,-1,'None','None',NULL),(15853,'TODO isRuntimeVisible','Line','java/org/apache/tomcat/util/bcel/classfile/ElementValue.java',78,78,'org.apache.tomcat.util.bcel.classfile.ElementValue','readElementValue(DataInput, ConstantPool)',NULL),(15854,'The JDBC spec requires that a statment close any open\nResultSet\'s when it is closed.\nFIXME The PreparedStatement we\'re wrapping should handle this for us.\nSee bug 17301 for what could happen when ResultSets are closed twice.','Line','java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java',141,144,'org.apache.tomcat.dbcp.dbcp2.DelegatingStatement','close()',NULL),(15855,'The JDBC spec requires that a statement close any open\nResultSet\'s when it is closed.\nFIXME The PreparedStatement we\'re wrapping should handle this for us.\nSee bug 17301 for what could happen when ResultSets are closed twice.','Line','java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java',141,144,'org.apache.tomcat.dbcp.dbcp2.DelegatingStatement','close()',NULL),(15856,'The JDBC spec requires that a statment close any open\nResultSet\'s when it is closed.\nFIXME The PreparedStatement we\'re wrapping should handle this for us.\nSee DBCP-10 for what could happen when ResultSets are closed twice.','Line','java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java',114,117,'org.apache.tomcat.dbcp.dbcp2.PoolableCallableStatement','passivate()',NULL),(15857,'The JDBC spec requires that a statement close any open\nResultSet\'s when it is closed.\nFIXME The PreparedStatement we\'re wrapping should handle this for us.\nSee DBCP-10 for what could happen when ResultSets are closed twice.','Line','java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java',114,117,'org.apache.tomcat.dbcp.dbcp2.PoolableCallableStatement','passivate()',NULL),(15858,'The map is keyed on pooled instances.  Note: pooled instances\n<em>must</em> be distinguishable by equals for this structure to\nwork properly.','Block','java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java',1434,1438,'org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool','getMaxTotalPerKey()','DESIGN'),(15859,'The map is keyed on pooled instances, wrapped to ensure that\nthey work properly as keys.','Block','java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java',1438,1441,'org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool','getMaxTotalPerKey()',NULL),(15860,'ignored TODO perhaps add to tracker delete failure list somehow?','Line','java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java',315,315,'org.apache.tomcat.util.http.fileupload.FileUploadBase','isMultipartContent(RequestContext)',NULL),(15861,'TODO This is temporary until the state machine for a stream is\nimplemented','Line','java/org/apache/coyote/http2/Stream.java',211,212,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(15862,'TODO: Possible shutdown?','Line','java/org/apache/coyote/http2/Stream.java',364,364,'org.apache.coyote.http2.Stream','doRead(ByteChunk)',NULL),(15863,'TODO Should never happen','Line','java/org/apache/coyote/http2/Stream.java',377,377,'org.apache.coyote.http2.Stream','doRead(ByteChunk)',NULL),(15864,'Process the Stream\nTODO Handle end of stream flag','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',317,318,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameData(int, int, int)',NULL),(15865,'TODO Flow control','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',330,330,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameData(int, int, int)',NULL),(15866,'TODO: Make this configurable via nested UpgradeProtocol elements in\nthe Connector.','Line','java/org/apache/coyote/http11/AbstractHttp11Protocol.java',60,61,'org.apache.coyote.http11.AbstractHttp11Protocol','None','DESIGN'),(15867,'None','None','java/org/apache/coyote/http11/AbstractHttp11Protocol.java',-1,-1,'None','None',NULL),(15868,'TODO Figure out how to handle request bodies at this\npoint.','Line','java/org/apache/coyote/http11/Http11Processor.java',1038,1039,'org.apache.coyote.http11.Http11Processor','process(SocketWrapperBase<?>)',NULL),(15869,'Invalid payload length for settings\nTODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',167,168,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)',NULL),(15870,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',183,183,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)',NULL),(15871,'TODO: This is incomplete','Line','java/org/apache/coyote/http2/Http2Parser.java',57,57,'org.apache.coyote.http2.Http2Parser','readFrame(boolean)',NULL),(15872,'TODO: There may be other headers.','Line','java/org/apache/coyote/http2/Http2Parser.java',139,139,'org.apache.coyote.http2.Http2Parser','readHttpUpgradeResponse()',NULL),(15873,'TODO: Test zero Http2-Settings headers','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',21,21,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None',NULL),(15874,'TODO: Test multiple Http2-Settings headers','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',23,23,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None',NULL),(15875,'TODO: Test trailing \'=\' are omitted','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',25,25,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None',NULL),(15876,'TODO: Test invalid Http2-Settings header (wrong length, invalid encoding)','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',27,27,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None',NULL),(15877,'TODO: Test initial requests with bodies of various sizes','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',33,33,'org.apache.coyote.http2.TestHttp2Section_3_2','testConnectionNoPreface()',NULL),(15878,'TODO: Test response with HTTP/2 is not enabled','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',35,35,'org.apache.coyote.http2.TestHttp2Section_3_2','testConnectionNoPreface()',NULL),(15879,'TODO: Test HTTP upgrade with h2 rather tan h2c','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',37,37,'org.apache.coyote.http2.TestHttp2Section_3_2','testConnectionNoPreface()',NULL),(15880,'TODO: Test if server sends settings frame','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',88,88,'org.apache.coyote.http2.TestHttp2Section_3_2','None',NULL),(15881,'TODO: Test if client doesn\'t send SETTINGS as part of the preface','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',90,90,'org.apache.coyote.http2.TestHttp2Section_3_2','None',NULL),(15882,'TODO: Test response is received on stream 1','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',92,92,'org.apache.coyote.http2.TestHttp2Section_3_2','None',NULL),(15883,'TODO: There may be other headers.','Line','test/org/apache/coyote/http2/Http2TestBase.java',123,123,'org.apache.coyote.http2.Http2TestBase','enableHttp2()',NULL),(15884,'TODO: Test initial requests with bodies of various sizes','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',36,36,'org.apache.coyote.http2.TestHttp2Section_3_2','testConnectionNoPreface()',NULL),(15885,'TODO: Test initial requests with bodies of various sizes','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',38,38,'org.apache.coyote.http2.TestHttp2Section_3_2','testConnectionNoHttp2Support()',NULL),(15886,'TODO: Test response with HTTP/2 is not enabled','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',38,38,'org.apache.coyote.http2.TestHttp2Section_3_2','testConnectionNoPreface()','NOT_DESIGN'),(15887,'None','None','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',-1,-1,'None','None',NULL),(15888,'TODO: Test HTTP upgrade with h2 rather tan h2c','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',40,40,'org.apache.coyote.http2.TestHttp2Section_3_2','testConnectionNoPreface()','NOT_DESIGN'),(15889,'TODO: Test if server sends settings frame','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',91,91,'org.apache.coyote.http2.TestHttp2Section_3_2','None',NULL),(15890,'TODO: Test if server sends settings frame','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',108,108,'org.apache.coyote.http2.TestHttp2Section_3_2','setupAsFarAsUpgrade()','NOT_DESIGN'),(15891,'TODO: Test if client doesn\'t send SETTINGS as part of the preface','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',93,93,'org.apache.coyote.http2.TestHttp2Section_3_2','None',NULL),(15892,'TODO: Test if client doesn\'t send SETTINGS as part of the preface','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',110,110,'org.apache.coyote.http2.TestHttp2Section_3_2','setupAsFarAsUpgrade()','DESIGN'),(15893,'TODO: Test response is received on stream 1','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',95,95,'org.apache.coyote.http2.TestHttp2Section_3_2','None',NULL),(15894,'TODO: Test response is received on stream 1','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2.java',112,112,'org.apache.coyote.http2.TestHttp2Section_3_2','setupAsFarAsUpgrade()','NOT_DESIGN'),(15895,'Use the maximum possible','Line','java/org/apache/coyote/http2/ConnectionSettings.java',31,31,'org.apache.coyote.http2.ConnectionSettings','None',NULL),(15896,'Process the Stream\nTODO Handle end of stream flag','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',386,387,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameData(int, int, int)','NOT_DESIGN'),(15897,'Process the Stream','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',387,387,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameData(int, int, int)',NULL),(15898,'TODO: This is incomplete','Line','java/org/apache/coyote/http2/Http2Parser.java',56,56,'org.apache.coyote.http2.Http2Parser','readFrame(boolean)','NOT_DESIGN'),(15899,'None','None','java/org/apache/coyote/http2/Http2Parser.java',-1,-1,'None','None',NULL),(15900,'TODO: Missing types','Line','java/org/apache/coyote/http2/Http2Parser.java',97,97,'org.apache.coyote.http2.Http2Parser','readFrame(boolean)',NULL),(15901,'TODO Flow control','Line','java/org/apache/coyote/http2/Http2Parser.java',131,131,'org.apache.coyote.http2.Http2Parser','readDataFrame(int, int, int)',NULL),(15902,'TODO Handle end of headers flag\nTODO Handle end of stream flag\nTODO Handle continutation frames','Line','java/org/apache/coyote/http2/Http2Parser.java',203,205,'org.apache.coyote.http2.Http2Parser','readHeadersFrame(int, int, int)',NULL),(15903,'TODO: Consider refactoring and making this a field to reduce GC.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',334,334,'org.apache.coyote.http2.Http2UpgradeHandler','processFrame()','DESIGN'),(15904,'TODO Flow control','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',399,399,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameData(int, int, int)','NOT_DESIGN'),(15905,'Process the stream\nTODO Handle end of headers flag\nTODO Handle end of stream flag\nTODO Handle continutation frames','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',427,430,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameHeaders(int, int, int)','NOT_DESIGN'),(15906,'TODO process ACK','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',563,563,'org.apache.coyote.http2.Http2UpgradeHandler','processFrameSettings(int, int, int)','NOT_DESIGN'),(15907,'TODO Handle end of headers flag\nTODO Handle end of stream flag\nTODO Handle continutation frames','Line','java/org/apache/coyote/http2/Http2Parser.java',176,178,'org.apache.coyote.http2.Http2Parser','readHeadersFrame(int, int, int)',NULL),(15908,'TODO Handle end of headers flag\nTODO Handle end of stream flag\nTODO Handle continuation frames','Line','java/org/apache/coyote/http2/Http2Parser.java',176,178,'org.apache.coyote.http2.Http2Parser','readHeadersFrame(int, int, int)',NULL),(15909,'TODO Process ACK','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',756,756,'org.apache.coyote.http2.Http2UpgradeHandler','settingsEmpty(boolean)','NOT_DESIGN'),(15910,'TODO: Test zero Http2-Settings headers','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',33,33,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None','NOT_DESIGN'),(15911,'None','None','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',-1,-1,'None','None',NULL),(15912,'TODO: Test multiple Http2-Settings headers','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',35,35,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None','NOT_DESIGN'),(15913,'TODO Process ACK','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',757,757,'org.apache.coyote.http2.Http2UpgradeHandler','settingsEnd(boolean)',NULL),(15914,'TODO: Missing types','Line','java/org/apache/coyote/http2/Http2Parser.java',109,109,'org.apache.coyote.http2.Http2Parser','readFrame(boolean)',NULL),(15915,'TODO: Missing types','Line','java/org/apache/coyote/http2/Http2Parser.java',119,119,'org.apache.coyote.http2.Http2Parser','readFrame(boolean, Integer)',NULL),(15916,'TODO: Test trailing \'=\' are omitted','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',79,79,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None','NOT_DESIGN'),(15917,'No need to test how trailing \'=\' are handled here. HTTP2Settings payloads\nare always a multiple of 6 long which means valid payloads never end in\n\'=\'. Invalid payloads will be rejected anyway.','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',78,80,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None',NULL),(15918,'TODO: Test invalid Http2-Settings header (wrong length, invalid encoding)','Line','test/org/apache/coyote/http2/TestHttp2Section_3_2_1.java',81,81,'org.apache.coyote.http2.TestHttp2Section_3_2_1','None','NOT_DESIGN'),(15919,'Send several pings else server will block waiting for the client\npreface which is longer than a single ping.','Line','test/org/apache/coyote/http2/TestHttp2Section_3_5.java',33,34,'org.apache.coyote.http2.TestHttp2Section_3_5','testNoConnectionPreface()',NULL),(15920,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',39,39,'org.apache.coyote.http2.StreamStateMachine','sendPushPromise()',NULL),(15921,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',49,49,'org.apache.coyote.http2.StreamStateMachine','receivePushPromis()',NULL),(15922,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',61,61,'org.apache.coyote.http2.StreamStateMachine','sendHeaders()','DESIGN'),(15923,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',73,73,'org.apache.coyote.http2.StreamStateMachine','receiveHeaders()','DESIGN'),(15924,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',85,85,'org.apache.coyote.http2.StreamStateMachine','sendEndOfStream()','DESIGN'),(15925,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',97,97,'org.apache.coyote.http2.StreamStateMachine','recieveEndOfStream()','DESIGN'),(15926,'This should never happen\nTODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',105,106,'org.apache.coyote.http2.StreamStateMachine','sendReset()',NULL),(15927,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',127,127,'org.apache.coyote.http2.StreamStateMachine','receiveHeader()',NULL),(15928,'TODO: Tests for over-sized frames. Better located in tests for section 6?','Line','test/org/apache/coyote/http2/TestHttp2Section_4_1.java',34,34,'org.apache.coyote.http2.TestHttp2Section_4_1','testUnknownFrameType()',NULL),(15929,'TODO: Tests for unexpected flags. Better located in tests for section 6?','Line','test/org/apache/coyote/http2/TestHttp2Section_4_1.java',48,48,'org.apache.coyote.http2.TestHttp2Section_4_1','None',NULL),(15930,'TODO: Test that set reserved bit is ignored.','Line','test/org/apache/coyote/http2/TestHttp2Section_4_1.java',50,50,'org.apache.coyote.http2.TestHttp2Section_4_1','None','NOT_DESIGN'),(15931,'TODO: Tests for unexpected flags. Better located in tests for section 6?','Line','test/org/apache/coyote/http2/TestHttp2Section_4_1.java',52,52,'org.apache.coyote.http2.TestHttp2Section_4_1','testReservedBitIgnored()',NULL),(15932,'None','None','test/org/apache/coyote/http2/TestHttp2Section_4_1.java',-1,-1,'None','None',NULL),(15933,'Tweak the header to set the reserved bit','Line','test/org/apache/coyote/http2/TestHttp2Section_4_1.java',67,67,'org.apache.coyote.http2.TestHttp2Section_4_1','testReservedBitIgnored()',NULL),(15934,'TODO: Header frames must be a contiguous sequence','Line','test/org/apache/coyote/http2/TestHttp2Section_4_3.java',59,59,'org.apache.coyote.http2.TestHttp2Section_4_3','None',NULL),(15935,'TODO needs to be correct value','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',351,351,'org.apache.coyote.http2.Http2UpgradeHandler','close(Http2Exception)',NULL),(15936,'TODO: Do more than just record this','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',799,799,'org.apache.coyote.http2.Http2UpgradeHandler','goaway(int, long, String)',NULL),(15937,'TODO Handle end of headers flag\nTODO Handle end of stream flag\nTODO Handle continuation frames','Line','java/org/apache/coyote/http2/Http2Parser.java',190,192,'org.apache.coyote.http2.Http2Parser','readHeadersFrame(int, int, int)','NOT_DESIGN'),(15938,'TODO: Header frames must be a contiguous sequence','Line','test/org/apache/coyote/http2/TestHttp2Section_4_3.java',60,60,'org.apache.coyote.http2.TestHttp2Section_4_3','None','DESIGN'),(15939,'None','None','test/org/apache/coyote/http2/TestHttp2Section_4_3.java',-1,-1,'None','None',NULL),(15940,'TODO: Invalid frames for each of the remaining states','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',59,59,'org.apache.coyote.http2.TestHttp2Section_5_1','None',NULL),(15941,'This should never happen\nTODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',124,125,'org.apache.coyote.http2.StreamStateMachine','recieveReset()',NULL),(15942,'TODO: Should never be received by a server','Line','java/org/apache/coyote/http2/Http2Parser.java',335,335,'org.apache.coyote.http2.Http2Parser','readPushPromiseFrame(int, int, int)',NULL),(15943,'TODO: Missing types','Line','java/org/apache/coyote/http2/Http2Parser.java',123,123,'org.apache.coyote.http2.Http2Parser','readFrame(boolean, Integer)','NOT_DESIGN'),(15944,'TODO: Process this','Line','java/org/apache/coyote/http2/Http2Parser.java',224,224,'org.apache.coyote.http2.Http2Parser','readRstFrame(int, int)','NOT_DESIGN'),(15945,'TODO: Should never be received by a server','Line','java/org/apache/coyote/http2/Http2Parser.java',255,255,'org.apache.coyote.http2.Http2Parser','readPushPromiseFrame(int, int, int)','DESIGN'),(15946,'TODO Flow control','Line','java/org/apache/coyote/http2/Http2Parser.java',137,137,'org.apache.coyote.http2.Http2Parser','readDataFrame(int, int, int)','NOT_DESIGN'),(15947,'Invalid payload length for settings\nTODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',173,174,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)','NOT_DESIGN'),(15948,'TODO This is temporary until the state machine for a stream is\nimplemented','Line','java/org/apache/coyote/http2/Stream.java',236,237,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','DESIGN'),(15949,'TODO: reserved local\nTODO: reserved remote','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',59,60,'org.apache.coyote.http2.TestHttp2Section_5_1','halfClosedRemoteInvalidFrame()',NULL),(15950,'This should never happen\nTODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',117,118,'org.apache.coyote.http2.StreamStateMachine','sendReset()','DESIGN'),(15951,'None','None','java/org/apache/coyote/http2/StreamStateMachine.java',-1,-1,'None','None',NULL),(15952,'This should never happen\nTODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',127,128,'org.apache.coyote.http2.StreamStateMachine','recieveReset()','DESIGN'),(15953,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',51,51,'org.apache.coyote.http2.StreamStateMachine','sendPushPromise()','DESIGN'),(15954,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',109,109,'org.apache.coyote.http2.StreamStateMachine','recieveEndOfStream()','DESIGN'),(15955,'TODO: ProtocolExcpetion? i18n','Line','java/org/apache/coyote/http2/StreamStateMachine.java',134,134,'org.apache.coyote.http2.StreamStateMachine','receiveHeader()','DESIGN'),(15956,'TODO Assuming the body has been read at this point is not valid','Line','java/org/apache/coyote/http2/Stream.java',70,70,'org.apache.coyote.http2.Stream','None',NULL),(15957,'TODO needs to be correct value','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',341,341,'org.apache.coyote.http2.Http2UpgradeHandler','close(Http2Exception)',NULL),(15958,'TODO needs to be correct value','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',345,345,'org.apache.coyote.http2.Http2UpgradeHandler','closeConnecion(Http2Exception)',NULL),(15959,'Ignore. GOAWAY is sent on a best efforts basis and the original\nerror has already been logged.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',357,358,'org.apache.coyote.http2.Http2UpgradeHandler','close(Http2Exception)',NULL),(15960,'Ignore. GOAWAY is sent on a best efforts basis and the original\nerror has already been logged.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',361,362,'org.apache.coyote.http2.Http2UpgradeHandler','closeConnecion(Http2Exception)',NULL),(15961,'TODO Review this','Line','java/javax/security/auth/message/config/AuthConfigFactory.java',65,65,'javax.security.auth.message.config.AuthConfigFactory','getFactory()',NULL),(15962,'Stream error\nTODO Reset stream','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',273,274,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)','NOT_DESIGN'),(15963,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',201,201,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)',NULL),(15964,'TODO debug log','Line','java/org/apache/coyote/http2/Http2Parser.java',89,89,'org.apache.coyote.http2.Http2Parser','readFrame(boolean, FrameType)','NOT_DESIGN'),(15965,'Stream error\nTODO Reset stream','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',245,246,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)','NOT_DESIGN'),(15966,'Really ConnectionError','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',254,254,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)',NULL),(15967,'TODO','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',342,342,'org.apache.coyote.http2.Http2UpgradeHandler','closeStream(StreamError)','NOT_DESIGN'),(15968,'Write a RST frame','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',351,351,'org.apache.coyote.http2.Http2UpgradeHandler','closeStream(StreamError)',NULL),(15969,'Length','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',353,353,'org.apache.coyote.http2.Http2UpgradeHandler','closeStream(StreamError)',NULL),(15970,'Type','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',355,355,'org.apache.coyote.http2.Http2UpgradeHandler','closeStream(StreamError)',NULL),(15971,'No flags\nStream ID','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',357,358,'org.apache.coyote.http2.Http2UpgradeHandler','closeStream(StreamError)',NULL),(15972,'Payload','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',360,360,'org.apache.coyote.http2.Http2UpgradeHandler','closeStream(StreamError)',NULL),(15973,'TODO Exceeds SETTINGS_MAX_FRAME_SIZE','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',31,31,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameTypeLimitsTooBig()','NOT_DESIGN'),(15974,'TODO Test connection vs stream error on a stream other than zero','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',92,92,'org.apache.coyote.http2.TestHttp2Section_4_2','None','DESIGN'),(15975,'HTTP2 upgrade','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',96,96,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameTypeLimitsStream()',NULL),(15976,'Invalid priority','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',99,99,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameTypeLimitsStream()',NULL),(15977,'Header\nLength 0\nType','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',102,104,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameTypeLimitsStream()',NULL),(15978,'No flags\nStream 3','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',106,107,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameTypeLimitsStream()',NULL),(15979,'Empty payload','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',109,109,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameTypeLimitsStream()',NULL),(15980,'Read GOAWAY frame','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',113,113,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameTypeLimitsStream()',NULL),(15981,'HTTP2 upgrade','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',35,35,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15982,'Overly large settings\nSettings have to be a multiple of six','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',38,39,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15983,'Header\nLength','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',43,44,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15984,'Type','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',46,46,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15985,'No flags\nStream 0','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',48,49,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15986,'payload','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',51,51,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15987,'Enable server push over and over again','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',53,53,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15988,'Read GOAWAY frame','Line','test/org/apache/coyote/http2/TestHttp2Section_4_2.java',60,60,'org.apache.coyote.http2.TestHttp2Section_4_2','testFrameSizeLimitsTooBig()',NULL),(15989,'TODO needs to be correct value','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',373,373,'org.apache.coyote.http2.Http2UpgradeHandler','closeConnecion(Http2Exception)',NULL),(15990,'Ignore. GOAWAY is sent on a best efforts basis and the original\nerror has already been logged.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',389,390,'org.apache.coyote.http2.Http2UpgradeHandler','closeConnecion(Http2Exception)',NULL),(15991,'Saves a couple of calls to getClassLoader() on every request. Under high\nload these calls took just long enough to appear as a hot spot (although\na very minor one) in a profiler.','Line','java/org/apache/catalina/valves/PersistentValve.java',49,51,'org.apache.catalina.valves.PersistentValve','None','DESIGN'),(15992,'TODO: This looks like a memory leak waiting to happen','Line','java/javax/security/auth/message/config/AuthConfigFactory.java',37,37,'javax.security.auth.message.config.AuthConfigFactory','run()',NULL),(15993,'TODO: Invalid frames for each of the remaining states','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',130,130,'org.apache.coyote.http2.TestHttp2Section_5_1','None',NULL),(15994,'TODO Remaining 5.1.1 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',155,155,'org.apache.coyote.http2.TestHttp2Section_5_1','None',NULL),(15995,'TODO 5.1.2 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',157,157,'org.apache.coyote.http2.TestHttp2Section_5_1','None',NULL),(15996,'TODO: This state may end up being removed and replaced by the stream\nbeing removed from the map in the upgrade handler.','Line','java/org/apache/coyote/http2/StreamStateMachine.java',168,169,'org.apache.coyote.http2.StreamStateMachine','isActive()',NULL),(15997,'TODO: Do more than just record this','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',873,873,'org.apache.coyote.http2.Http2UpgradeHandler','goaway(int, long, String)','NOT_DESIGN'),(15998,'TODO: Only create these objects if needed and null them when finished','Line','java/org/apache/coyote/http2/Stream.java',42,42,'org.apache.coyote.http2.Stream','None',NULL),(15999,'TODO Implement periodic pruning of closed streams','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',657,657,'org.apache.coyote.http2.Http2UpgradeHandler','createRemoteStream(int)',NULL),(16000,'TODO Remaining 5.1.1 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',185,185,'org.apache.coyote.http2.TestHttp2Section_5_1','None','NOT_DESIGN'),(16001,'None','None','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',-1,-1,'None','None',NULL),(16002,'TODO 5.1.2 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',207,207,'org.apache.coyote.http2.TestHttp2Section_5_1','None','NOT_DESIGN'),(16003,'http2Connect() - modified','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',213,213,'org.apache.coyote.http2.TestHttp2Section_5_1','testExceedMaxActiveStreams()',NULL),(16004,'1 * headers\n64k of body (8 * 8k)\n1 * error (could be in any order)','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',225,227,'org.apache.coyote.http2.TestHttp2Section_5_1','testExceedMaxActiveStreams()',NULL),(16005,'Release the remaining body','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',233,233,'org.apache.coyote.http2.TestHttp2Section_5_1','testExceedMaxActiveStreams()',NULL),(16006,'192k of body (24 * 8k)\n1 * error (could be in any order)','Line','test/org/apache/coyote/http2/TestHttp2Section_5_1.java',237,238,'org.apache.coyote.http2.TestHttp2Section_5_1','testExceedMaxActiveStreams()',NULL),(16007,'+1 is to avoid rounding issues triggering an infinite loop.\nWill cause a very slight over allocation but HTTP/2 should\ncope with that.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',619,621,'org.apache.coyote.http2.Http2UpgradeHandler','allocate(AbstractStream, int)',NULL),(16008,'This is to avoid rounding issues triggering an infinite\nloop. It will cause a very slight over allocation but\nHTTP/2 should cope with that.','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',634,636,'org.apache.coyote.http2.Http2UpgradeHandler','allocate(AbstractStream, int)',NULL),(16009,'FIXME: The @Test looks invalid (each session will have a separate endpoint and shouldn\'t see each other)','Line','test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java',607,607,'org.apache.tomcat.websocket.TestWsWebSocketContainer','testGetOpenSessions()','NOT_DESIGN'),(16010,'FIXME: The @Test looks invalid (each session will have a separate endpoint and shouldn\'t see each other)','Line','test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java',654,654,'org.apache.tomcat.websocket.TestWsWebSocketContainer','testSessionExpiryContainer()','NOT_DESIGN'),(16011,'FIXME: The @Test looks invalid (each session will have a separate endpoint and shouldn\'t see each other)','Line','test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java',711,711,'org.apache.tomcat.websocket.TestWsWebSocketContainer','testSessionExpirySession()','NOT_DESIGN'),(16012,'None','None','test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java',-1,-1,'None','None',NULL),(16013,'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/WebappClassLoaderBase.java',2586,2589,'org.apache.catalina.loader.WebappClassLoaderBase','findResourceInternal(String, String)',NULL),(16014,'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/WebappClassLoaderBase.java',2589,2592,'org.apache.catalina.loader.WebappClassLoaderBase','findResourceInternal(String, String, boolean)',NULL),(16015,'TODO needs to be correct value','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',381,381,'org.apache.coyote.http2.Http2UpgradeHandler','closeConnection(Http2Exception)','DESIGN'),(16016,'TODO: Remainder if section 6.1 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_6_1.java',48,48,'org.apache.coyote.http2.TestHttp2Section_6_1','None',NULL),(16017,'Currently, we do not delegate SSL computation tasks\nTODO: in the future, possibly create tasks to do encrypt / decrypt async','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',629,630,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getDelegatedTask()',NULL),(16018,'Seems like there is no way to explict disable SSLv2Hello in openssl so it is always enabled','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',745,745,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getEnabledProtocols()',NULL),(16019,'TODO: Add proper implementation','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',893,893,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getSession()',NULL),(16020,'TODO: Find out how to get these','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',981,981,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getSession()',NULL),(16021,'Validate the padding is zero since receiving non-zero padding\nis a strong indication of either a faulty client or a server\nside bug.','Line','java/org/apache/coyote/http2/Http2Parser.java',433,435,'org.apache.coyote.http2.Http2Parser','swallow(int, int, boolean)',NULL),(16022,'TODO: Remainder if section 6.1 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_6_1.java',146,146,'org.apache.coyote.http2.TestHttp2Section_6_1','None','NOT_DESIGN'),(16023,'Since padding is zero length, response looks like there is none.','Line','test/org/apache/coyote/http2/TestHttp2Section_6_1.java',154,154,'org.apache.coyote.http2.TestHttp2Section_6_1','testDataFrameWithZeroLengthPadding()',NULL),(16024,'TODO: Detect use of http on a secure connection and provide a simple\nerror page.','Line','java/org/apache/tomcat/util/net/SNIExtractor.java',49,50,'org.apache.tomcat.util.net.SNIExtractor','getResult()',NULL),(16025,'TODO: Detect use of http on a secure connection and provide a simple\nerror page.','Line','java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java',49,50,'org.apache.tomcat.util.net.TLSClientHelloExtractor','getResult()',NULL),(16026,'TODO: All of these SSL setters can be removed once it is no longer\nnecessary to support the old configuration attributes (Tomcat 10?).','Line','java/org/apache/tomcat/util/net/SSLHostConfig.java',196,197,'org.apache.tomcat.util.net.SSLHostConfig','setCertificateKeyPassword(String)','DESIGN'),(16027,'----------------------------------------- Common configuration properties','Line','java/org/apache/tomcat/util/net/SSLHostConfig.java',185,185,'org.apache.tomcat.util.net.SSLHostConfig','setCertificateKeyPassword(String)',NULL),(16028,'TODO: This certificate setter can be removed once it is no longer\nnecessary to support the old configuration attributes (Tomcat 10?).','Line','java/org/apache/tomcat/util/net/SSLHostConfig.java',187,188,'org.apache.tomcat.util.net.SSLHostConfig','setCertificateKeyPassword(String)',NULL),(16029,'TODO: These certificate setters can be removed once it is no longer\nnecessary to support the old configuration attributes (Tomcat 10?).','Line','java/org/apache/tomcat/util/net/SSLHostConfig.java',338,339,'org.apache.tomcat.util.net.SSLHostConfig','setCertificateKeyAlias(String)',NULL),(16030,'TODO: Can this limitation be removed?','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',378,378,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(16031,'Load Server key and certificate\nTODO: Confirm assumption that idx is not specific to\nkey/certificate type','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',504,506,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(16032,'TODO: These certificate setters can be removed once it is no longer\nnecessary to support the old configuration attributes (Tomcat 10?).','Line','java/org/apache/tomcat/util/net/SSLHostConfig.java',497,498,'org.apache.tomcat.util.net.SSLHostConfig','setCertificateFile(String)',NULL),(16033,'TODO:\nNeed to select correct certificate based on the ciphers requested by\nthe client, the ciphers configured for the server and which is\nconfigured to define the preference order','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',142,145,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementationName()','NOT_DESIGN'),(16034,'No matches. Just return the first certificate. The handshake will\nthen fail due to no matching ciphers.','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',166,167,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementationName()',NULL),(16035,'TODO discuss message policies','Line','java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java',46,46,'org.apache.catalina.authenticator.jaspic.provider.TomcatServerAuthContext','getAuthType(TomcatAuthModule)',NULL),(16036,'TODO temporary workaround. In future JASPIC prefix will be removed','Line','java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java',54,54,'org.apache.catalina.authenticator.jaspic.provider.TomcatServerAuthContext','getAuthType(TomcatAuthModule)',NULL),(16037,'TODO message i18n','Line','java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java',88,88,'org.apache.catalina.authenticator.jaspic.provider.TomcatServerAuthContext','getAuthModule(MessageInfo)','NOT_DESIGN'),(16038,'TODO temporary workaround, Jaspic should be enabled by default','Line','java/org/apache/catalina/startup/ContextConfig.java',398,398,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','DESIGN'),(16039,'TODO get realm name from message','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java',52,52,'org.apache.catalina.authenticator.jaspic.provider.modules.TomcatAuthModule','getRealmName(MessageInfo)','NOT_DESIGN'),(16040,'TODO: This might not be unique','Line','java/org/apache/catalina/startup/ContextConfig.java',462,462,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','DESIGN'),(16041,'TODO discuss a better way to get user roles','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java',261,261,'org.apache.catalina.authenticator.jaspic.provider.modules.DigestAuthModule','getNonceCountWindowSize()',NULL),(16042,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java',448,448,'org.apache.catalina.authenticator.jaspic.provider.modules.DigestAuthModule','getNonceCountWindowSize()',NULL),(16043,'None','None','java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java',-1,-1,'None','None',NULL),(16044,'None','None','java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java',-1,-1,'None','None',NULL),(16045,'too much padding','Line','test/org/apache/coyote/http2/TestHttp2Section_6_2.java',66,66,'org.apache.coyote.http2.TestHttp2Section_6_2','None','NOT_DESIGN'),(16046,'None','None','test/org/apache/coyote/http2/TestHttp2Section_6_2.java',-1,-1,'None','None',NULL),(16047,'Client is never going to see this so this is really just\nfor the access logs. The default is fine.','Line','java/org/apache/catalina/filters/FailedRequestFilter.java',83,84,'org.apache.catalina.filters.FailedRequestFilter','doFilter(ServletRequest, ServletResponse, FilterChain)',NULL),(16048,'TODO: Possible shutdown?','Line','java/org/apache/coyote/http2/Stream.java',329,329,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','DESIGN'),(16049,'Do the write','Line','java/org/apache/coyote/http2/Stream.java',336,336,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(16050,'TODO i18n','Line','java/org/apache/coyote/http2/Stream.java',297,297,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','NOT_DESIGN'),(16051,'TODO: Possible shutdown?','Line','java/org/apache/coyote/http2/Stream.java',412,412,'org.apache.coyote.http2.Stream','doRead(ByteChunk)','DESIGN'),(16052,'Possible shutdown / rst or similar. Use an\nIOException to signal to the client that further I/O\nisn\'t possible for this Stream.','Line','java/org/apache/coyote/http2/Stream.java',415,417,'org.apache.coyote.http2.Stream','doRead(ByteChunk)',NULL),(16053,'TODO Should never happen','Line','java/org/apache/coyote/http2/Stream.java',425,425,'org.apache.coyote.http2.Stream','doRead(ByteChunk)','DESIGN'),(16054,'Should never happen','Line','java/org/apache/coyote/http2/Stream.java',431,431,'org.apache.coyote.http2.Stream','doRead(ByteChunk)',NULL),(16055,'TODO discuss message policies','Line','java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java',49,49,'org.apache.catalina.authenticator.jaspic.provider.TomcatServerAuthContext','getAuthType(TomcatAuthModule)','NOT_DESIGN'),(16056,'TODO temporary workaround. In future JASPIC prefix will be removed','Line','java/org/apache/catalina/authenticator/jaspic/provider/TomcatServerAuthContext.java',57,57,'org.apache.catalina.authenticator.jaspic.provider.TomcatServerAuthContext','getAuthType(TomcatAuthModule)','DESIGN'),(16057,'TODO: A number of the method calls below are synchronised. For\nsomething that may get called on every request that is a\npotential bottleneck.','Line','java/org/apache/catalina/authenticator/jaspic/JaspicAuthenticator.java',87,89,'org.apache.catalina.authenticator.jaspic.JaspicAuthenticator','authenticate(Request, HttpServletResponse)',NULL),(16058,'TODO discuss a better way to get user roles','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java',255,255,'org.apache.catalina.authenticator.jaspic.provider.modules.DigestAuthModule','getNonceCountWindowSize()','DESIGN'),(16059,'None','None','java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java',-1,-1,'None','None',NULL),(16060,'TODO: Stop accepting new streams','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',326,326,'org.apache.coyote.http2.Http2UpgradeHandler','pause()','NOT_DESIGN'),(16061,'TODO i18n','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',189,189,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)','NOT_DESIGN'),(16062,'Really ConnectionError','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',269,269,'org.apache.coyote.http2.Http2UpgradeHandler','upgradeDispatch(SocketStatus)','NOT_DESIGN'),(16063,'Really ConnectionError','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',286,286,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)',NULL),(16064,'TODO Test header processing and window size processing for ignored\nstreams','Line','test/org/apache/coyote/http2/TestHttp2Section_6_8.java',82,83,'org.apache.coyote.http2.TestHttp2Section_6_8','None',NULL),(16065,'TODO fix character encoding','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',208,208,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','validateRequest(MessageInfo, Subject, Subject)','NOT_DESIGN'),(16066,'FIXME','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',392,392,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','getChangeSessionIdOnAuthentication()',NULL),(16067,'Acquire references to objects we will need to evaluate','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',181,181,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','validate(MessageInfo, Subject)',NULL),(16068,'Is this the action request from the login page?','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',188,188,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','validate(MessageInfo, Subject)',NULL),(16069,'No -- Save this request and redirect to the form login page','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',194,194,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','validate(MessageInfo, Subject)',NULL),(16070,'TODO fix character encoding','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',217,217,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','validate(MessageInfo, Subject)',NULL),(16071,'Bug 49779','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',132,132,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16072,'Bug 53584','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',151,151,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16073,'variant of Bug 49779','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',173,173,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16074,'TODO implement this option','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',376,376,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16075,'todo: forgot this change and making it up again!','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',436,436,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16076,'Subsequent requests should return in the protected page.\nOur role parameter should be appear in the page.','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',551,552,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16077,'perhaps this does not work until tomcat has started?','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',647,647,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16078,'TODO fix character encoding','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',235,235,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','handleLoginAction(Request, HttpServletResponse)',NULL),(16079,'Have we authenticated this user before but have caching disabled?\nTODO Ask is it required? May be principal must be always cached','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',109,110,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','validate(MessageInfo, Subject)','DESIGN'),(16080,'Have we authenticated this user before but have caching disabled?','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',109,109,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','validate(MessageInfo, Subject)',NULL),(16081,'TODO fix character encoding','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',225,225,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','handleLoginAction(Request, HttpServletResponse)','NOT_DESIGN'),(16082,'None','None','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',-1,-1,'None','None',NULL),(16083,'FIXME','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',395,395,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','getChangeSessionIdOnAuthentication()','NOT_DESIGN'),(16084,'Send the initial settings frame\nTODO: Need to send non-default settings values','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',207,208,'org.apache.coyote.http2.Http2UpgradeHandler','None','NOT_DESIGN'),(16085,'No obvious status fields for javax.servlet.http\nCould hack something with HttpUtils...\nNo obvious status fields for javax.servlet.jsp\nWild card (package) import','Line','test/org/apache/jasper/runtime/TestJspContextWrapper.java',61,64,'org.apache.jasper.runtime.TestJspContextWrapper','testELTagFileImports()',NULL),(16086,'TODO Validate this for all OpenSSL versions\n0.9.8 - TODO\n1.0.0 - TODO\n1.0.1 - TODO\n1.0.2 - Done\n1.1.0 - TODO','Line','test/org/apache/tomcat/util/net/jsse/openssl/TesterOpenSSL.java',66,71,'org.apache.tomcat.util.net.jsse.openssl.TesterOpenSSL','None','DESIGN'),(16087,'TODO Validate this for all OpenSSL versions\n0.9.8 - TODO\n1.0.0 - TODO\n1.0.1 - TODO\n1.0.2 - Done\n1.1.0 - Done','Line','test/org/apache/tomcat/util/net/jsse/openssl/TesterOpenSSL.java',66,71,'org.apache.tomcat.util.net.jsse.openssl.TesterOpenSSL','None','DESIGN'),(16088,'These were removed in 0.9.8 (or earlier) so won\'t be available in any\nsupported version.','Line','test/org/apache/tomcat/util/net/jsse/openssl/TesterOpenSSL.java',73,74,'org.apache.tomcat.util.net.jsse.openssl.TesterOpenSSL','None',NULL),(16089,'Note: The following lists are intended to be aligned with the most\nrecent release of each OpenSSL release branch','Line','test/org/apache/tomcat/util/net/jsse/openssl/TesterOpenSSL.java',63,64,'org.apache.tomcat.util.net.jsse.openssl.TesterOpenSSL','None',NULL),(16090,'TODO Validate this for all current OpenSSL versions\n0.9.8 - TODO\n1.0.0 - TODO\n1.0.1 - Done\n1.0.2 - Done\n1.1.0 - Done','Line','test/org/apache/tomcat/util/net/jsse/openssl/TesterOpenSSL.java',66,71,'org.apache.tomcat.util.net.jsse.openssl.TesterOpenSSL','None','DESIGN'),(16091,'These have been removed from all supported versions.','Line','test/org/apache/tomcat/util/net/jsse/openssl/TesterOpenSSL.java',66,66,'org.apache.tomcat.util.net.jsse.openssl.TesterOpenSSL','None',NULL),(16092,'XXX','Line','java/org/apache/tomcat/util/buf/CharChunk.java',71,71,'org.apache.tomcat.util.buf.CharChunk','realReadChars(char[], int, int)',NULL),(16093,'XXX','Line','java/org/apache/tomcat/util/buf/CharChunk.java',72,72,'org.apache.tomcat.util.buf.CharChunk','realReadChars()',NULL),(16094,'XXX','Line','java/org/apache/tomcat/util/buf/ByteChunk.java',117,117,'org.apache.tomcat.util.buf.ByteChunk','realReadBytes(byte[], int, int)',NULL),(16095,'XXX','Line','java/org/apache/tomcat/util/buf/ByteChunk.java',118,118,'org.apache.tomcat.util.buf.ByteChunk','realReadBytes()',NULL),(16096,'Unexpected ACK. Log it?\nTODO','Line','java/org/apache/coyote/http2/ConnectionSettingsLocal.java',152,153,'org.apache.coyote.http2.ConnectionSettingsLocal','ack()',NULL),(16097,'Send the initial settings frame','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',207,207,'org.apache.coyote.http2.Http2UpgradeHandler','None',NULL),(16098,'TODO Process ACK','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',998,998,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)','NOT_DESIGN'),(16099,'TODO: Test always accounting for changes in flow control windows even if\nthe frame is in error.','Line','test/org/apache/coyote/http2/TestHttp2Section_6_9.java',73,74,'org.apache.coyote.http2.TestHttp2Section_6_9','testWindowUpdateWrongLength()',NULL),(16100,'TODO: Remaining 6.9 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_6_9.java',97,97,'org.apache.coyote.http2.TestHttp2Section_6_9','None',NULL),(16101,'TODO: Remaining 6.9 tests','Line','test/org/apache/coyote/http2/TestHttp2Section_6_9.java',258,258,'org.apache.coyote.http2.TestHttp2Section_6_9','None','NOT_DESIGN'),(16102,'Set up stream 3','Line','test/org/apache/coyote/http2/TestHttp2Section_6_9.java',264,264,'org.apache.coyote.http2.TestHttp2Section_6_9','testWindowSizeTooLargeViaSettings()',NULL),(16103,'Increase the flow control window but keep it under the limit','Line','test/org/apache/coyote/http2/TestHttp2Section_6_9.java',267,267,'org.apache.coyote.http2.TestHttp2Section_6_9','testWindowSizeTooLargeViaSettings()',NULL),(16104,'Now increase beyond the limit via a settings frame','Line','test/org/apache/coyote/http2/TestHttp2Section_6_9.java',270,270,'org.apache.coyote.http2.TestHttp2Section_6_9','testWindowSizeTooLargeViaSettings()',NULL),(16105,'Ack','Line','test/org/apache/coyote/http2/TestHttp2Section_6_9.java',272,272,'org.apache.coyote.http2.TestHttp2Section_6_9','testWindowSizeTooLargeViaSettings()',NULL),(16106,'Unexpected ACK. Log it?\nTODO','Line','java/org/apache/coyote/http2/ConnectionSettingsLocal.java',76,77,'org.apache.coyote.http2.ConnectionSettingsLocal','ack()','DESIGN'),(16107,'None','None','java/org/apache/coyote/http2/ConnectionSettingsLocal.java',-1,-1,'None','None',NULL),(16108,'TODO Implement periodic pruning of closed streams','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',746,746,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)','DESIGN'),(16109,'TODO: This state may end up being removed and replaced by the stream\nbeing removed from the map in the upgrade handler.','Line','java/org/apache/coyote/http2/StreamStateMachine.java',177,178,'org.apache.coyote.http2.StreamStateMachine','isActive()','DESIGN'),(16110,'TODO: null these when finished to reduce memory used by closed stream','Line','java/org/apache/coyote/http2/Stream.java',42,42,'org.apache.coyote.http2.Stream','None',NULL),(16111,'TODO: This is almost certainly wrong and needs to be decoded','Line','java/org/apache/coyote/http2/Stream.java',173,173,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','DESIGN'),(16112,'Ugly but the easiest way to test of the session is valid or not','Line','test/org/apache/catalina/session/TestStandardSessionIntegration.java',87,87,'org.apache.catalina.session.TestStandardSessionIntegration','doGet(HttpServletRequest, HttpServletResponse)',NULL),(16113,'FIXME: See if unmappable/malformed behavior configuration is needed\nin practice','Line','java/org/apache/tomcat/util/buf/C2BConverter.java',43,44,'org.apache.tomcat.util.buf.C2BConverter','recycle()','NOT_DESIGN'),(16114,'None','None','java/org/apache/tomcat/util/buf/C2BConverter.java',-1,-1,'None','None',NULL),(16115,'XXX move message resources in this package','Line','java/org/apache/tomcat/util/http/HttpMessages.java',44,44,'org.apache.tomcat.util.http.HttpMessages','None',NULL),(16116,'No digests, compare directly','Line','java/org/apache/catalina/realm/RealmBase.java',665,665,'org.apache.catalina.realm.RealmBase','getCredentialHandler()','NOT_DESIGN'),(16117,'None','None','java/org/apache/catalina/realm/RealmBase.java',-1,-1,'None','None',NULL),(16118,'TODO this is not yet being used','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1075,1075,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)','NOT_DESIGN'),(16119,'we don\'t support any keys without attachments','Line','java/org/apache/tomcat/util/net/NioEndpoint.java',1073,1073,'org.apache.tomcat.util.net.NioEndpoint','setProperty(String, String)',NULL),(16120,'Bug 58444','Block','test/org/apache/jasper/runtime/TestCustomHttpJspPage.java',28,30,'org.apache.jasper.runtime.TestCustomHttpJspPage','testCustomBasePageWhenUsingTagFiles()',NULL),(16121,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',186,186,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)','NOT_DESIGN'),(16122,'Unsupported / illegal under HTTP/2','Line','java/org/apache/coyote/http2/StreamProcessor.java',188,188,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)',NULL),(16123,'Unimplemented / to review','Line','java/org/apache/coyote/http2/StreamProcessor.java',193,193,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)',NULL),(16124,'Really ConnectionError','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',290,290,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)',NULL),(16125,'Really ConnectionException','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',290,290,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)',NULL),(16126,'TODO: Shut stream down?','Line','java/org/apache/coyote/http2/StreamProcessor.java',116,116,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)',NULL),(16127,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',84,84,'org.apache.coyote.http2.StreamProcessor','run()',NULL),(16128,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',114,114,'org.apache.coyote.http2.StreamProcessor','process(SocketStatus)',NULL),(16129,'TODO CLOSE_NOW ?','Line','java/org/apache/coyote/http2/StreamProcessor.java',84,84,'org.apache.coyote.http2.StreamProcessor','process(SocketStatus)',NULL),(16130,'TODO DISCONNECT ?','Line','java/org/apache/coyote/http2/StreamProcessor.java',88,88,'org.apache.coyote.http2.StreamProcessor','process(SocketStatus)',NULL),(16131,'TODO: Thread safe? Do this in output buffer?','Line','java/org/apache/coyote/http2/StreamProcessor.java',302,302,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)','DESIGN'),(16132,'Note: Logic in AbstractProtocol depends on this method only returning\na non-null value if the iterator is non-empty. i.e. it should never\nreturn an empty iterator.','Line','java/org/apache/coyote/http2/StreamProcessor.java',477,479,'org.apache.coyote.http2.StreamProcessor','getIteratorAndClearDispatches()',NULL),(16133,'None','None','java/org/apache/coyote/http2/StreamProcessor.java',-1,-1,'None','None',NULL),(16134,'TODO CLOSE_NOW ?','Line','java/org/apache/coyote/http2/StreamProcessor.java',80,80,'org.apache.coyote.http2.StreamProcessor','process(SocketStatus)',NULL),(16135,'TODO CLOSE_NOW ?','Line','java/org/apache/coyote/http2/StreamProcessor.java',77,77,'org.apache.coyote.http2.StreamProcessor','run()','DESIGN'),(16136,'TODO DISCONNECT ?','Line','java/org/apache/coyote/http2/StreamProcessor.java',84,84,'org.apache.coyote.http2.StreamProcessor','process(SocketStatus)',NULL),(16137,'TODO DISCONNECT ?','Line','java/org/apache/coyote/http2/StreamProcessor.java',81,81,'org.apache.coyote.http2.StreamProcessor','run()','DESIGN'),(16138,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',110,110,'org.apache.coyote.http2.StreamProcessor','process(SocketStatus)',NULL),(16139,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',107,107,'org.apache.coyote.http2.StreamProcessor','run()','NOT_DESIGN'),(16140,'Calling code should ensure that there is no data in the buffers for\nnon-blocking writes.\nTODO Validate the assertion above','Line','java/org/apache/coyote/ajp/AjpProcessor.java',1387,1389,'org.apache.coyote.ajp.AjpProcessor','flush(boolean)',NULL),(16141,'TODO Handle this','Line','java/org/apache/coyote/http2/Stream.java',239,239,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','DESIGN'),(16142,'TODO: Handle this','Line','java/org/apache/coyote/http2/StreamProcessor.java',128,128,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)','DESIGN'),(16143,'TODO: Is 1k the optimal value?','Line','java/org/apache/coyote/http2/Stream.java',245,245,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(16144,'TODO: Is 64 too big? Just the status header with compression','Line','java/org/apache/coyote/http2/Stream.java',250,250,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(16145,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',317,317,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)',NULL),(16146,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',147,147,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)','NOT_DESIGN'),(16147,'TODO: Shut stream down?','Line','java/org/apache/coyote/http2/StreamProcessor.java',158,158,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)','DESIGN'),(16148,'TODO i18n','Line','java/org/apache/coyote/http2/Stream.java',349,349,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(16149,'TODO: Add configuration to allow the OpenSSLImplementation to optionally use the JSSE configuration\n(it should still default to OpenSSL style since it is the most logical and straightforward)','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',71,72,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementationName()',NULL),(16150,'TODO Servlet 4.0','Line','test/javax/servlet/resources/TestSchemaValidation.java',133,133,'javax.servlet.resources.TestSchemaValidation','None','NOT_DESIGN'),(16151,'TODO Servlet 4.0','Line','java/org/apache/tomcat/util/descriptor/web/WebXml.java',684,684,'org.apache.tomcat.util.descriptor.web.WebXml','toXml()','NOT_DESIGN'),(16152,'TODO Servlet 4.0','Line','test/org/apache/tomcat/util/descriptor/web/TestWebXml.java',173,173,'org.apache.tomcat.util.descriptor.web.TestWebXml','doTestValidateVersion(String)','NOT_DESIGN'),(16153,'TODO Servlet 4.0\nOnce a 4.0 web.xml is available','Line','test/org/apache/jasper/servlet/TestJspCServletContext.java',116,117,'org.apache.jasper.servlet.TestJspCServletContext','testWebresources()','NOT_DESIGN'),(16154,'None','None','java/org/apache/tomcat/util/descriptor/web/WebXml.java',-1,-1,'None','None',NULL),(16155,'None','None','test/javax/servlet/resources/TestSchemaValidation.java',-1,-1,'None','None',NULL),(16156,'None','None','test/org/apache/tomcat/util/descriptor/web/TestWebXml.java',-1,-1,'None','None',NULL),(16157,'None','None','test/org/apache/jasper/servlet/TestJspCServletContext.java',-1,-1,'None','None',NULL),(16158,'TODO: Query string','Line','java/org/apache/coyote/http2/Stream.java',385,385,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(16159,'TODO: Handle default ports','Line','java/org/apache/coyote/http2/Stream.java',387,387,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(16160,'TODO: Is 1k the optimal value?','Line','java/org/apache/coyote/http2/Http2UpgradeHandler.java',953,953,'org.apache.coyote.http2.Http2UpgradeHandler','init(WebConnection)',NULL),(16161,'TODO Copy across / set other required attributes','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',83,83,'org.apache.catalina.core.ApplicationPushBuilder','push()',NULL),(16162,'TODO i18n','Line','java/org/apache/coyote/http2/Stream.java',370,370,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','NOT_DESIGN'),(16163,'Populate the initial list of HTTP headers\nTODO Servlet 4.0\nFilter headers as required by Servlet spec','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',58,60,'org.apache.catalina.core.ApplicationPushBuilder','setPath(String)',NULL),(16164,'TODO Copy headers\nTODO Implement other required attributes\nTODO Copy across / set other required attributes','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',163,165,'org.apache.catalina.core.ApplicationPushBuilder','push()',NULL),(16165,'Populate the initial list of HTTP headers\nTODO Servlet 4.0\nFilter headers as required by Servlet spec','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',61,63,'org.apache.catalina.core.ApplicationPushBuilder','setPath(String)',NULL),(16166,'TODO Copy headers\nTODO Implement other required attributes\nTODO Copy across / set other required attributes','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',177,179,'org.apache.catalina.core.ApplicationPushBuilder','push()',NULL),(16167,'TODO Copy headers\nTODO Implement other required attributes\nTODO Copy across / set other required attributes\nTODO Conditional request processing','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',253,256,'org.apache.catalina.core.ApplicationPushBuilder','push()',NULL),(16168,'Populate the initial list of HTTP headers\nTODO Servlet 4.0\nFilter headers as required by Servlet spec','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',66,68,'org.apache.catalina.core.ApplicationPushBuilder','path(String)','NOT_DESIGN'),(16169,'Populate the initial list of HTTP headers','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',73,73,'org.apache.catalina.core.ApplicationPushBuilder','path(String)',NULL),(16170,'TODO conditional','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',327,327,'org.apache.catalina.core.ApplicationPushBuilder','push()',NULL),(16171,'TODO: Update pushPath for client\'s benefit\nTODO: Figure out how to get this into the CoyoteRequest','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',305,306,'org.apache.catalina.core.ApplicationPushBuilder','push()','DESIGN'),(16172,'TODO: add this','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',309,309,'org.apache.catalina.core.ApplicationPushBuilder','push()','NOT_DESIGN'),(16173,'TODO implement %nn decoding','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',350,350,'org.apache.catalina.core.ApplicationPushBuilder','decode(String, String)',NULL),(16174,'None','None','java/org/apache/catalina/core/ApplicationPushBuilder.java',-1,-1,'None','None',NULL),(16175,'Cookies\nTODO','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',381,382,'org.apache.catalina.core.ApplicationPushBuilder','push()',NULL),(16176,'TODO conditional','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',378,378,'org.apache.catalina.core.ApplicationPushBuilder','push()','NOT_DESIGN'),(16177,'TODO implement %nn decoding','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',410,410,'org.apache.catalina.core.ApplicationPushBuilder','decode(String, String)','NOT_DESIGN'),(16178,'Cookies\nTODO','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',387,388,'org.apache.catalina.core.ApplicationPushBuilder','push()','NOT_DESIGN'),(16179,'Cookies','Line','java/org/apache/catalina/core/ApplicationPushBuilder.java',388,388,'org.apache.catalina.core.ApplicationPushBuilder','push()',NULL),(16180,'Note: Logic in AbstractProtocol depends on this method only returning\na non-null value if the iterator is non-empty. i.e. it should never\nreturn an empty iterator.','Line','java/org/apache/coyote/http2/StreamProcessor.java',491,493,'org.apache.coyote.http2.StreamProcessor','getIteratorAndClearDispatches()',NULL),(16181,'Note: Logic in AbstractProtocol depends on this method only returning\na non-null value if the iterator is non-empty. i.e. it should never\nreturn an empty iterator.','Line','java/org/apache/coyote/AbstractProcessorLight.java',45,47,'org.apache.coyote.AbstractProcessorLight','getIteratorAndClearDispatches()',NULL),(16182,'Note: Logic in AbstractProtocol depends on this method only returning\na non-null value if the iterator is non-empty. i.e. it should never\nreturn an empty iterator.','Line','java/org/apache/tomcat/util/net/SocketWrapperBase.java',307,309,'org.apache.tomcat.util.net.SocketWrapperBase','getSocket()',NULL),(16183,'TODO Figure out how to handle request bodies at this\npoint.','Line','java/org/apache/coyote/http11/Http11Processor.java',1017,1018,'org.apache.coyote.http11.Http11Processor','process(SocketWrapperBase<?>)',NULL),(16184,'TODO: Remove','Line','java/org/apache/coyote/http11/Http11Processor.java',1080,1080,'org.apache.coyote.http11.Http11Processor','process(SocketWrapperBase<?>)',NULL),(16185,'TODO','Line','java/org/apache/coyote/http2/StreamProcessor.java',308,308,'org.apache.coyote.http2.StreamProcessor','action(ActionCode, Object)','NOT_DESIGN'),(16186,'TODO Extract common patterns in processing cached principal and cached credentials','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java',127,127,'org.apache.catalina.authenticator.jaspic.provider.modules.FormAuthModule','handleSavedCredentials(Subject, Request, HttpServletResponse)','NOT_DESIGN'),(16187,'TODO currently we setup default provider if we have\nJaspicAuthenicator registred.\nwe need to find a better way to decide, if we want embedded provider\nor not','Line','java/org/apache/catalina/startup/ContextConfig.java',453,456,'org.apache.catalina.startup.ContextConfig','getDefaultWebXml()','NOT_DESIGN'),(16188,'Assume the GSSContext is stateless\nTODO: Confirm this assumption','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/SpnegoAuthModule.java',204,205,'org.apache.catalina.authenticator.jaspic.provider.modules.SpnegoAuthModule','getSupportedMessageTypes()',NULL),(16189,'Validate the authorization credentials format','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java',432,432,'org.apache.catalina.authenticator.jaspic.provider.modules.DigestAuthModule','getNonceCountWindowSize()','NOT_DESIGN'),(16190,'FIXME: maybe use a custom callback handler instead','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java',263,263,'org.apache.catalina.authenticator.jaspic.provider.modules.DigestAuthModule','validateRequest(MessageInfo, Subject, Subject)',NULL),(16191,'continue to unwrap as long as the input buffer has stuff\nTODO: unwrap appears only to unwrap one TLS record at\na time even if there are multiple TLS records\nin the input buffer. Therefore multiple calls\nto unwrap are required to ensure that all TLS\nrecords are decrypted and written to dst.\nThis may be a bug in tc-native or something\nthat is better handled at that level. For now\nthe \'|| unwrap.getStatus() == Status.OK\' is a\nworkaround.','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',826,835,'org.apache.tomcat.util.net.SecureNio2Channel','read(ByteBuffer, long, TimeUnit, A, CompletionHandler<Integer, ? super A>)','DESIGN'),(16192,'TODO: Add tests for the individual operators','Line','test/org/apache/tomcat/util/net/jsse/openssl/TestOpenSSLCipherConfigurationParser.java',615,615,'org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser','testSpecification01()',NULL),(16193,'TODO: Add tests for the individual operators','Line','test/org/apache/tomcat/util/net/openssl/ciphers/TestOpenSSLCipherConfigurationParser.java',615,615,'org.apache.tomcat.util.net.openssl.ciphers.TestOpenSSLCipherConfigurationParser','testSpecification01()',NULL),(16194,'RSA auth\nDSS auth\nno auth (i.e. use ADH or AECDH)\nFixed DH auth (kDHd or kDHr)\nFixed ECDH auth (kECDHe or kECDHr)\nKRB5 auth\nECDSA auth\nPSK auth\nGOST R 34.10-94 signature auth\nGOST R 34.10-2001\nFortezza','Block','java/org/apache/tomcat/util/net/openssl/ciphers/Authentication.java',21,31,'None','None',NULL),(16195,'RC4 is sort-of broken -- move the the end','Block','java/org/apache/tomcat/util/net/jsse/openssl/OpenSSLCipherConfigurationParser.java',583,583,'org.apache.tomcat.util.net.jsse.openssl.OpenSSLCipherConfigurationParser','defaultSort(LinkedHashSet<Cipher>)',NULL),(16196,'RC4 is sort-of broken -- move the the end','Block','java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java',583,583,'org.apache.tomcat.util.net.openssl.ciphers.OpenSSLCipherConfigurationParser','defaultSort(LinkedHashSet<Cipher>)',NULL),(16197,'buffer overflow can happen, if we have read data, then\nempty out the dst buffer before we do another read','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',817,818,'org.apache.tomcat.util.net.SecureNio2Channel','read(ByteBuffer, long, TimeUnit, A, CompletionHandler<Integer, ? super A>)',NULL),(16198,'here we should trap BUFFER_OVERFLOW and call expand on the buffer\nfor now, throw an exception, as we initialized the buffers\nin the constructor','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',821,823,'org.apache.tomcat.util.net.SecureNio2Channel','read(ByteBuffer, long, TimeUnit, A, CompletionHandler<Integer, ? super A>)',NULL),(16199,'continue to unwrap as long as the input buffer has stuff','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',826,826,'org.apache.tomcat.util.net.SecureNio2Channel','read(ByteBuffer, long, TimeUnit, A, CompletionHandler<Integer, ? super A>)',NULL),(16200,'If everything is OK, so complete','Line','java/org/apache/tomcat/util/net/SecureNio2Channel.java',828,828,'org.apache.tomcat.util.net.SecureNio2Channel','read(ByteBuffer, long, TimeUnit, A, CompletionHandler<Integer, ? super A>)',NULL),(16201,'TODO: Add proper implementation','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',916,916,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getSession()','NOT_DESIGN'),(16202,'None','None','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',-1,-1,'None','None',NULL),(16203,'TODO: Find out how to get these','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',1004,1004,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getSession()','NOT_DESIGN'),(16204,'FIXME: Not currently exposed by the native API','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',1233,1233,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getLocalCertificates()',NULL),(16205,'Currently, we do not delegate SSL computation tasks\nTODO: in the future, possibly create tasks to do encrypt / decrypt async','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',650,651,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getNegotiatedProtocol()','NOT_DESIGN'),(16206,'Currently, we do not delegate SSL computation tasks','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',650,650,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getNegotiatedProtocol()',NULL),(16207,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',192,192,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapperBase<?>, ByteBuffer, HttpUpgradeHandler)',NULL),(16208,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',191,191,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapperBase<?>, ByteBuffer, UpgradeToken)',NULL),(16209,'Fill the read buffer as best we can.','Line','java/org/apache/tomcat/util/net/Nio2Endpoint.java',926,926,'org.apache.tomcat.util.net.Nio2Endpoint','setHandler(Handler)',NULL),(16210,'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/Nio2Endpoint.java',1663,1669,'org.apache.tomcat.util.net.Nio2Endpoint','setHandler(Handler)',NULL),(16211,'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/Nio2Endpoint.java',1653,1659,'org.apache.tomcat.util.net.Nio2Endpoint','setHandler(Handler<Nio2Channel>)',NULL),(16212,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',190,190,'org.apache.coyote.ajp.AbstractAjpProtocol','createUpgradeProcessor(SocketWrapperBase<?>, ByteBuffer, UpgradeToken)','NOT_DESIGN'),(16213,'TODO should fail - throw IOE','Line','java/org/apache/coyote/ajp/AbstractAjpProtocol.java',175,175,'org.apache.coyote.ajp.AbstractAjpProtocol','getProtocolName()','NOT_DESIGN'),(16214,'TODO make sure we get the right one...','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java',417,417,'org.apache.tomcat.util.net.openssl.OpenSSLContext','getJSSEAlias(SSLHostConfig, X509KeyManager)',NULL),(16215,'TODO make sure we get the right one...','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java',436,436,'org.apache.tomcat.util.net.openssl.OpenSSLContext','getJSSEKeyManager(SSLHostConfig)',NULL),(16216,'TODO: There may be other headers.','Line','test/org/apache/coyote/http2/Http2TestBase.java',453,453,'org.apache.coyote.http2.Http2TestBase','setPingAckDelayMillis(long)','DESIGN'),(16217,'None','None','test/org/apache/coyote/http2/Http2TestBase.java',-1,-1,'None','None',NULL),(16218,'Work around java.net.URL bug','Line','java/org/apache/catalina/filters/RemoteIpFilter.java',633,633,'org.apache.catalina.filters.RemoteIpFilter','initialValue()',NULL),(16219,'TODO: This looks like a memory leak waiting to happen','Line','java/javax/security/auth/message/config/AuthConfigFactory.java',55,55,'javax.security.auth.message.config.AuthConfigFactory','run()','DESIGN'),(16220,'None','None','java/javax/security/auth/message/config/AuthConfigFactory.java',-1,-1,'None','None',NULL),(16221,'TODO Review this','Line','java/javax/security/auth/message/config/AuthConfigFactory.java',80,80,'javax.security.auth.message.config.AuthConfigFactory','getFactory()','NOT_DESIGN'),(16222,'Load this class with the same class loader as used for\nthis class. Note that the Thread context class loader\nshould not be used since that would trigger a memory leak\nin container environments.','Line','java/javax/security/auth/message/config/AuthConfigFactory.java',69,72,'javax.security.auth.message.config.AuthConfigFactory','getFactory()',NULL),(16223,'TODO: Handle default ports','Line','java/org/apache/coyote/http2/Stream.java',391,391,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','NOT_DESIGN'),(16224,'Authority needs to include the port only if a non-standard port is\nbeing used.','Line','java/org/apache/coyote/http2/Stream.java',392,393,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)',NULL),(16225,'TODO: Handle redirects','Line','java/org/apache/tomcat/websocket/WsWebSocketContainer.java',341,341,'org.apache.tomcat.websocket.WsWebSocketContainer','getInstanceManager()',NULL),(16226,'TODO i18n','Line','java/org/apache/coyote/Response.java',629,629,'org.apache.coyote.Response','isReady()','NOT_DESIGN'),(16227,'TODO make sure we get the right one...','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java',416,416,'org.apache.tomcat.util.net.openssl.OpenSSLContext','getJSSEAlias(SSLHostConfig, X509KeyManager)','NOT_DESIGN'),(16228,'None','None','java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java',-1,-1,'None','None',NULL),(16229,'TODO make sure we get the right one...','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java',435,435,'org.apache.tomcat.util.net.openssl.OpenSSLContext','getJSSEKeyManager(SSLHostConfig)','NOT_DESIGN'),(16230,'TODO: Query string','Line','java/org/apache/coyote/http2/Stream.java',389,389,'org.apache.coyote.http2.Stream','rePrioritise(AbstractStream, boolean, int)','NOT_DESIGN'),(16231,'TODO i18n','Line','java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java',166,166,'org.apache.tomcat.websocket.server.WsHttpUpgradeHandler','upgradeDispatch(SocketStatus)','NOT_DESIGN'),(16232,'None','None','java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java',-1,-1,'None','None',NULL),(16233,'TODO i18n','Line','java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java',297,297,'org.apache.tomcat.websocket.WsRemoteEndpointImplBase','setTransformation(Transformation)','NOT_DESIGN'),(16234,'TODO Add a new state to the AsyncStateMachine and remove\nASYNC_END (if possible)','Line','java/org/apache/tomcat/util/net/AbstractEndpoint.java',59,60,'org.apache.tomcat.util.net.AbstractEndpoint','None','NOT_DESIGN'),(16235,'FIXME: this causes crashes in the testsuite','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java',448,448,'org.apache.tomcat.util.net.openssl.OpenSSLContext','finalize()','NOT_DESIGN'),(16236,'TODO: These are static because I\'m not sure how to inject them to the\nendpoint','Line','test/org/apache/tomcat/websocket/server/TestClose.java',53,54,'org.apache.tomcat.websocket.server.TestClose','None','DESIGN'),(16237,'TODO: I\'m not entirely sure when onError should be called','Line','test/org/apache/tomcat/websocket/server/TestClose.java',130,130,'org.apache.tomcat.websocket.server.TestClose','awaitLatch(CountDownLatch, String)',NULL),(16238,'TODO: Why CLOSED_ABNORMALLY when above is GOING_AWAY?','Line','test/org/apache/tomcat/websocket/server/TestClose.java',158,158,'org.apache.tomcat.websocket.server.TestClose','awaitLatch(CountDownLatch, String)',NULL),(16239,'Disable Nagle\'s algorithm to ensure packets sent immediately\nTODO: Hoping this causes writes to wait for a TCP ACK for TCP RST\ntest cases but I\'m not sure?','Line','test/org/apache/tomcat/websocket/server/TesterWsCloseClient.java',42,44,'org.apache.tomcat.websocket.server.TesterWsCloseClient','httpUpgrade(String)',NULL),(16240,'These are static because it is simpler than trying to inject them into\nthe endpoint','Line','test/org/apache/tomcat/websocket/server/TestClose.java',53,54,'org.apache.tomcat.websocket.server.TestClose','None',NULL),(16241,'TODO: Why CLOSED_ABNORMALLY when above is GOING_AWAY?','Line','test/org/apache/tomcat/websocket/server/TestClose.java',162,162,'org.apache.tomcat.websocket.server.TestClose','awaitLatch(CountDownLatch, String)','DESIGN'),(16242,'WebSocket 1.1, section 2.1.5 requires this to be CLOSED_ABNORMALLY','Line','test/org/apache/tomcat/websocket/server/TestClose.java',162,162,'org.apache.tomcat.websocket.server.TestClose','awaitLatch(CountDownLatch, String)',NULL),(16243,'FIXME: Not currently exposed by the native API','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',1229,1229,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getLocalCertificates()',NULL),(16244,'FIXME (if possible): Not available in the OpenSSL API','Line','java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java',1226,1226,'org.apache.tomcat.util.net.openssl.OpenSSLEngine','getLocalCertificates()',NULL),(16245,'TODO','Line','test/org/apache/tomcat/websocket/server/TestClose.java',127,127,'org.apache.tomcat.websocket.server.TestClose','awaitLatch(CountDownLatch, String)',NULL),(16246,'TODO: Java 9 support. Details are TBD. It will depend\non the extent to which Java 8 supports the\nJava 9 file formats since this code MUST run on\nJava 8.','Line','java/org/apache/tomcat/util/scan/StandardJarScanner.java',228,231,'org.apache.tomcat.util.scan.StandardJarScanner','isScanClassPath()',NULL),(16247,'TODO: Add configuration to allow the OpenSSLImplementation to optionally use the JSSE configuration\n(it should still default to OpenSSL style since it is the most logical and straightforward)','Line','java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java',67,68,'org.apache.tomcat.util.net.AbstractJsseEndpoint','getSslImplementationName()','DESIGN'),(16248,'Now allow for normalization and/or encoding. Essentially, keep\nextending the candidate path up to the next slash until the decoded\nand normalized candidate path is the same as the canonical path.','Line','java/org/apache/catalina/connector/Request.java',1911,1913,'org.apache.catalina.connector.Request','setCoyoteRequest(org.apache.coyote.Request)','NOT_DESIGN'),(16249,'Now allow for path parameters, normalization and/or encoding.\nEssentially, keep extending the candidate path up to the next slash\nuntil the decoded and normalized candidate path (with the path\nparameters removed) is the same as the canonical path.','Line','java/org/apache/catalina/connector/Request.java',1911,1914,'org.apache.catalina.connector.Request','setCoyoteRequest(org.apache.coyote.Request)',NULL),(16250,'TODO: A number of the method calls below are synchronised. For\nsomething that may get called on every request that is a\npotential bottleneck.','Line','java/org/apache/catalina/authenticator/jaspic/JaspicAuthenticator.java',89,91,'org.apache.catalina.authenticator.jaspic.JaspicAuthenticator','authenticate(Request, HttpServletResponse)',NULL),(16251,'FIXME: maybe use a custom callback handler instead','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/DigestAuthModule.java',260,260,'org.apache.catalina.authenticator.jaspic.provider.modules.DigestAuthModule','validateRequest(MessageInfo, Subject, Subject)',NULL),(16252,'perhaps this does not work until tomcat has started?','Line','test/org/apache/catalina/authenticator/TestJaspicFormAuthenticator.java',648,648,'org.apache.catalina.authenticator.TestJaspicFormAuthenticator','testGetWithCookies()',NULL),(16253,'Assume the GSSContext is stateless\nTODO: Confirm this assumption','Line','java/org/apache/catalina/authenticator/jaspic/provider/modules/SpnegoAuthModule.java',194,195,'org.apache.catalina.authenticator.jaspic.provider.modules.SpnegoAuthModule','validate(MessageInfo, Subject)',NULL),(16254,'TODO: Returned available ciphers rather than configured ciphers.','Line','java/org/apache/catalina/manager/ManagerServlet.java',1658,1658,'org.apache.catalina.manager.ManagerServlet','Set<Cipher>> getConnectorCiphers()','NOT_DESIGN'),(16255,'None','None','java/org/apache/catalina/manager/ManagerServlet.java',-1,-1,'None','None',NULL),(16256,'There is no standard way to determine the default protocols and\ncipher suites so create a server socket to see what the defaults are','Line','java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java',100,101,'org.apache.tomcat.util.net.jsse.JSSESocketFactory','getEnableableCiphers(SSLContext)',NULL),(16257,'There is no standard way to determine the default protocols and\ncipher suites so create a server socket to see what the defaults are','Line','java/org/apache/tomcat/util/net/jsse/JSSEUtil.java',97,98,'org.apache.tomcat.util.net.jsse.JSSEUtil','getEnableableCiphers(SSLContext)',NULL),(16258,'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',153,160,'org.apache.catalina.storeconfig.StoreContextAppender','defaultInstance(Object)','DESIGN'),(16259,'None','None','java/org/apache/catalina/storeconfig/StoreContextAppender.java',-1,-1,'None','None',NULL),(16260,'XXX Old code, needs to be replaced !!!!\n','Line','java/org/apache/tomcat/util/buf/UDecoder.java',215,216,'org.apache.tomcat.util.buf.UDecoder','convert(String, boolean)','DESIGN'),(16261,'None','None','java/org/apache/tomcat/util/buf/UDecoder.java',-1,-1,'None','None',NULL),(16262,'XXX XXX XXX Need a major rewrite  !!!!','Block','java/org/apache/tomcat/util/http/MimeHeaders.java',27,28,'None','None','NOT_DESIGN'),(16263,'None','None','java/org/apache/tomcat/util/http/MimeHeaders.java',-1,-1,'None','None',NULL),(16264,'This is a \'controlled\' failure. The component put itself into the\nFAILED state so call stop() to complete the clean-up.','Line','java/org/apache/catalina/util/LifecycleBase.java',162,163,'org.apache.catalina.util.LifecycleBase','start()',NULL),(16265,'------------------------------------------------------ Constructor','Line','java/org/apache/catalina/valves/PersistentValve.java',45,45,'org.apache.catalina.valves.PersistentValve','invoke(Request, Response)',NULL),(16266,'TODO: Duplicates code in SSLUtilBase. Consider\nrefactoring to reduce duplication','Line','java/org/apache/tomcat/util/net/AprEndpoint.java',360,361,'org.apache.tomcat.util.net.AprEndpoint','setDeferAccept(boolean)',NULL),(16267,'TODO: Configure the digester to validate the input against\nthe XSD','Line','java/org/apache/catalina/authenticator/jaspic/PersistentProviderRegistrations.java',43,44,'org.apache.catalina.authenticator.jaspic.PersistentProviderRegistrations','None',NULL),(16268,'TODO: Configure the digester to validate the input against\nthe XSD','Line','java/org/apache/catalina/authenticator/jaspic/PersistentProviderRegistrations.java',45,46,'org.apache.catalina.authenticator.jaspic.PersistentProviderRegistrations','None','NOT_DESIGN'),(16269,'None','None','java/org/apache/catalina/authenticator/jaspic/PersistentProviderRegistrations.java',-1,-1,'None','None',NULL),(16270,'Move the current file out of the way','Line','java/org/apache/catalina/authenticator/jaspic/PersistentProviderRegistrations.java',150,150,'org.apache.catalina.authenticator.jaspic.PersistentProviderRegistrations','loadProviders(File)',NULL),(16271,'TODO: Handle parallel deployment. Can this be done if web application is\nnot aware it is being deployed in parallel?','Line','java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java',58,59,'org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl','None','DESIGN'),(16272,'TODO: i18n log this','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',462,462,'org.apache.catalina.authenticator.AuthenticatorBase','invoke(Request, Response)','NOT_DESIGN'),(16273,'TODO Log this. Change the status code?','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',640,640,'org.apache.catalina.authenticator.AuthenticatorBase','invoke(Request, Response)','DESIGN'),(16274,'TODO: Handle JASPIC and parallel deployment','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',1080,1080,'org.apache.catalina.authenticator.AuthenticatorBase','startInternal()',NULL),(16275,'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/WebappClassLoaderBase.java',2594,2597,'org.apache.catalina.loader.WebappClassLoaderBase','findResourceInternal(String, String, boolean)',NULL),(16276,'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/WebappClassLoaderBase.java',2596,2599,'org.apache.catalina.loader.WebappClassLoaderBase','findResourceInternal(String, String)',NULL),(16277,'FIXME - cache???','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',1083,1083,'org.apache.catalina.loader.WebappClassLoaderBase','getResourceAsStream(String)','DESIGN'),(16278,'None','None','java/org/apache/catalina/loader/WebappClassLoaderBase.java',-1,-1,'None','None',NULL),(16279,'FIXME - cache???','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',1095,1095,'org.apache.catalina.loader.WebappClassLoaderBase','getResourceAsStream(String)','DESIGN'),(16280,'Ignore','Line','java/org/apache/catalina/loader/WebappClassLoaderBase.java',1092,1092,'org.apache.catalina.loader.WebappClassLoaderBase','getResourceAsStream(String)',NULL),(16281,'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/WebappClassLoaderBase.java',2593,2596,'org.apache.catalina.loader.WebappClassLoaderBase','findResourceInternal(String, String)','DESIGN'),(16282,'Workaround for certain files on platforms that use\nEBCDIC encoding, when they are read through FileInputStream.\nSee commit message of rev.303915 for original details\nhttp://svn.apache.org/viewvc?view=revision&revision=303915','Line','java/org/apache/catalina/webresources/FileResource.java',211,214,'org.apache.catalina.webresources.FileResource','getContent()',NULL),(16283,'TODO: Handle JASPIC and parallel deployment','Line','java/org/apache/catalina/authenticator/AuthenticatorBase.java',1082,1082,'org.apache.catalina.authenticator.AuthenticatorBase','startInternal()','NOT_DESIGN'),(16284,'None','None','java/org/apache/catalina/authenticator/AuthenticatorBase.java',-1,-1,'None','None',NULL),(16285,'None','None','java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java',-1,-1,'None','None',NULL),(16286,'BZ 42449 - Kludge Sun\'s LDAP provider\nwith broken SSL','Block','java/org/apache/catalina/realm/JNDIRealm.java',1270,1272,'org.apache.catalina.realm.JNDIRealm','getAuthentication()','NOT_DESIGN'),(16287,'Authenticate the specified username if possible','Line','java/org/apache/catalina/realm/JNDIRealm.java',1266,1266,'org.apache.catalina.realm.JNDIRealm','getAuthentication()',NULL),(16288,'BZ 42449 - Catch NPE - Kludge Sun\'s LDAP provider\nwith broken SSL','Block','java/org/apache/catalina/realm/JNDIRealm.java',1271,1273,'org.apache.catalina.realm.JNDIRealm','getAuthentication()',NULL),(16289,'No obvious status fields for javax.servlet.http\nCould hack something with HttpUtils...\nNo obvious status fields for javax.servlet.jsp\nWild card (package) import','Line','test/org/apache/el/TestELInJsp.java',466,469,'org.apache.el.TestELInJsp','testBug57142()','NOT_DESIGN'),(16290,'javax.servlet','Line','test/org/apache/el/TestELInJsp.java',464,464,'org.apache.el.TestELInJsp','testBug57142()',NULL),(16291,'No obvious static fields for javax.servlet.http\nCould hack something with HttpUtils...\nNo obvious static fields for javax.servlet.jsp\nWild card (package) import','Line','test/org/apache/el/TestELInJsp.java',466,469,'org.apache.el.TestELInJsp','testBug57142()',NULL),(16292,'Class import','Line','test/org/apache/el/TestELInJsp.java',471,471,'org.apache.el.TestELInJsp','testBug57142()',NULL),(16293,'TODO: Should the createWebResourceSet() methods be removed to some\nutility class for file system based resource sets?','Line','java/org/apache/catalina/webresources/StandardRoot.java',363,364,'org.apache.catalina.webresources.StandardRoot','list(String)',NULL);


