INSERT INTO `SATDInFile` VALUES (3963,'depending on what kind of error handler we should','Line','camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java',1061,1061,'org.apache.camel.processor.RedeliveryErrorHandler','logFailedDelivery(boolean, boolean, boolean, boolean, boolean, Exchange, String, RedeliveryData, Throwable)',NULL),(3964,'TODO: Should not be a Definition as its a builder for Java DSL instead.\ninstead the builder methods should be on RestOperationParam','Line','camel-core/src/main/java/org/apache/camel/model/rest/RestParamDefinition.java',25,26,'None','None',NULL),(3965,'TODO: The setter should be a plain setter.\nthis logic should be moved to\norg.apache.camel.model.rest.RestDefinition.asRouteDefinition()','Line','camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java',128,130,'org.apache.camel.model.rest.VerbDefinition','setUri(String)','DESIGN'),(3966,'TODO: rename to Definition as this is what this is\nTODO: Do not set default values, but infer those\nTODO: add javadoc on the setter methods\nTODO: add @Metadata to define the default values\nTODO: add required=true if its required (such as name and paramType I would assume)','Line','camel-core/src/main/java/org/apache/camel/model/rest/RestOperationParam.java',31,35,'None','None',NULL),(3967,'old way of doing copy which is @deprecated\nTODO: remove this in Camel 3.0, and always do a safe copy','Line','camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java',109,110,'org.apache.camel.impl.DefaultExchange','copy(boolean)',NULL),(3968,'TODO: properties should use same map kind as headers','Line','camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java',138,138,'org.apache.camel.impl.DefaultExchange','Object> safeCopyProperties(Map<String, Object>)',NULL),(3969,'TODO: this operation is currently not supported by hazelcast','Line','components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java',101,101,'org.apache.camel.component.hazelcast.list.HazelcastListProducer','get(Integer, Exchange)','NOT_DESIGN'),(3970,'None','None','components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java',-1,-1,'None','None',NULL),(3971,'TODO: this operation is currently not supported by hazelcast','Line','components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java',106,106,'org.apache.camel.component.hazelcast.list.HazelcastListProducer','set(Integer, Exchange)','NOT_DESIGN'),(3972,'TODO: this operation is currently not supported by hazelcast\nremoves the element at the specified position','Line','components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java',121,122,'org.apache.camel.component.hazelcast.list.HazelcastListProducer','remove(Integer, Exchange)','DESIGN'),(3973,'removes the element at the specified position','Line','components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListProducer.java',119,119,'org.apache.camel.component.hazelcast.list.HazelcastListProducer','remove(Integer, Exchange)',NULL),(3974,'TODO: Add support for a HeaderFilterStrategy. See: org.apache.camel.component.jms.JmsBinding#shouldOutputHeader','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java',244,244,'org.apache.camel.component.rabbitmq.RabbitMQProducer','buildProperties(Exchange)','NOT_DESIGN'),(3975,'must use the classloader from the application context when creating reply manager,\nas it should inherit the classloader from app context and not the current which may be\na different classloader','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java',264,266,'org.apache.camel.component.rabbitmq.RabbitMQProducer','initReplyManager()',NULL),(3976,'validate that replyToType and replyTo is configured accordingly','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java',273,273,'org.apache.camel.component.rabbitmq.RabbitMQProducer','initReplyManager()',NULL),(3977,'setting temporary with a fixed replyTo is not supported','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java',275,275,'org.apache.camel.component.rabbitmq.RabbitMQProducer','initReplyManager()',NULL),(3978,'TODO check for the RabbitMQConstants.EXCHANGE_NAME header','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/reply/TemporaryQueueReplyManager.java',96,96,'org.apache.camel.component.rabbitmq.reply.TemporaryQueueReplyManager','createReplyHandler(ReplyManager, Exchange, AsyncCallback, String, String, long)',NULL),(3979,'TODO combine with class in RabbitMQConsumer','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/reply/TemporaryQueueReplyManager.java',111,111,'org.apache.camel.component.rabbitmq.reply.TemporaryQueueReplyManager','createReplyHandler(ReplyManager, Exchange, AsyncCallback, String, String, long)',NULL),(3980,'TODO: Add support for a HeaderFilterStrategy. See: org.apache.camel.component.jms.JmsBinding#shouldOutputHeader','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQMessageConverter.java',158,158,'org.apache.camel.component.rabbitmq.RabbitMQMessageConverter','buildProperties(Exchange)',NULL),(3981,'TODO: scan components for each component and find component name from extendsScheme\nand then find the package name where the json file is','Line','tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java',64,65,'org.apache.camel.tools.apt.DocumentationHelper','jsonFile(String, String)',NULL),(3982,'TODO: scan components for each component and find component name from extendsScheme\nand then find the package name where the json file is','Line','tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java',94,95,'org.apache.camel.tools.apt.DocumentationHelper','jsonFile(String, String)','NOT_DESIGN'),(3983,'we cannot use classloader to load external resources from other JARs during apt plugin,\nso load these resources using the file system','Line','tooling/apt/src/main/java/org/apache/camel/tools/apt/DocumentationHelper.java',94,95,'org.apache.camel.tools.apt.DocumentationHelper','jsonFile(String, String)',NULL),(3984,'TODO FIND A BETTER WAY TO PASS PACKAGES','Line','examples/camel-example-cdi/src/test/java/org/apache/camel/example/cdi/two/DeploymentFactory.java',41,41,'org.apache.camel.example.cdi.two.DeploymentFactory','createArchive()',NULL),(3985,'TODO FIND A BETTER WAY TO PASS PACKAGES','Line','examples/camel-example-cdi/src/test/java/org/apache/camel/example/cdi/one/DeploymentFactory.java',41,41,'org.apache.camel.example.cdi.one.DeploymentFactory','createArchive()',NULL),(3986,'TODO: Remove some of the missing check as we should have that out of the box with the validate goal','Line','tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java',172,172,'org.apache.camel.maven.packaging.PrepareCatalogMojo','executeModel()','DESIGN'),(3987,'TODO the description is vague about this!!!','Line','components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/analytics/reports/GroupingValue.java',30,30,'org.apache.camel.component.salesforce.api.dto.analytics.reports.GroupingValue','None',NULL),(3988,'wait until the consumer thread has tried to receive event at least once','Line','components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConsumerDifferentWorkspaceTest.java',46,46,'org.apache.camel.component.jcr.JcrConsumerDifferentWorkspaceTest','None',NULL),(3989,'given 100 retries usually yields somewhere around -95','Line','components/camel-netty4/src/test/java/org/apache/camel/component/netty4/NettyRedeliveryTest.java',123,123,'org.apache.camel.component.netty4.NettyRedeliveryTest','doPreSetup()',NULL),(3990,'given 100 retries usually yields somewhere around -95','Line','components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyRedeliveryTest.java',123,123,'org.apache.camel.component.netty.NettyRedeliveryTest','doPreSetup()',NULL),(3991,'TODO: For Camel 3.0 we should remove this ref attribute as you can do that in the uri, by prefixing with ref:','Line','camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java',52,52,'org.apache.camel.model.PollEnrichDefinition','None','DESIGN'),(3992,'None','None','camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java',-1,-1,'None','None',NULL),(3993,'TODO: add cacheSize option','Line','camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java',124,124,'org.apache.camel.model.PollEnrichDefinition','timeout(long)',NULL),(3994,'TODO: For Camel 3.0 we should remove this ref attribute as you can do that in the uri, by prefixing with ref:','Line','camel-core/src/main/java/org/apache/camel/model/EnrichDefinition.java',46,46,'org.apache.camel.model.EnrichDefinition','None','DESIGN'),(3995,'None','None','camel-core/src/main/java/org/apache/camel/model/EnrichDefinition.java',-1,-1,'None','None',NULL),(3996,'TODO: add cacheSize option','Line','camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java',129,129,'org.apache.camel.model.PollEnrichDefinition','timeout(long)','NOT_DESIGN'),(3997,'FIXME- configure the network stuff','Line','components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java',49,49,'org.apache.camel.coap.CoAPComponent','getServer(int)',NULL),(3998,'TODO: use async routing engine','Line','components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowProducer.java',68,68,'org.apache.camel.component.undertow.UndertowProducer','getEndpoint()','NOT_DESIGN'),(3999,'TODO: add unit test should use dynamic port number, see camel-jetty9 for example','Line','components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowError500Test.java',27,27,'org.apache.camel.component.undertow.UndertowError500Test','testHttp500Error()','NOT_DESIGN'),(4000,'None','None','components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowError500Test.java',-1,-1,'None','None',NULL),(4001,'None','None','components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowProducer.java',-1,-1,'None','None',NULL),(4002,'TODO: Add some logging of those events at trace or debug level','Line','components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowProducer.java',118,118,'org.apache.camel.component.undertow.UndertowProducer','completed(ClientExchange)',NULL),(4003,'TODO: add more details in the commit/rollback eg such as message id','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/SessionCompletion.java',32,32,'org.apache.camel.component.sjms.batch.SessionCompletion','onComplete(Exchange)',NULL),(4004,'global counters, maybe they should be on component instead?','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/SjmsBatchConsumer.java',52,52,'org.apache.camel.component.sjms.batch.SjmsBatchConsumer','None',NULL),(4005,'no json encoding specified --> assume json encoding is unicode and determine the specific unicode encoding according to RFC-4627\nthis is a temporary solution, it can be removed as sson as jsonpath offers the encoding detection','Line','components/camel-jsonpath/src/main/java/org/apache/camel/jsonpath/JsonPathEngine.java',83,84,'org.apache.camel.jsonpath.JsonPathEngine','read(Exchange)',NULL),(4006,'no json encoding specified --> assume json encoding is unicode and determine the specific unicode encoding according to RFC-4627\nthis is a temporary solution, it can be removed as soon as jsonpath offers the encoding detection','Line','components/camel-jsonpath/src/main/java/org/apache/camel/jsonpath/JsonPathEngine.java',83,84,'org.apache.camel.jsonpath.JsonPathEngine','read(Exchange)',NULL),(4007,'No json encoding specified --> assume json encoding is unicode and determine the specific unicode encoding according to RFC-4627.\nThis is a temporary solution, it can be removed as soon as jsonpath offers the encoding detection','Line','components/camel-jsonpath/src/main/java/org/apache/camel/jsonpath/JsonPathEngine.java',83,84,'org.apache.camel.jsonpath.JsonPathEngine','read(Exchange)',NULL),(4008,'maybe its a language','Line','camel-core/src/main/java/org/apache/camel/model/DynamicToDefinition.java',75,75,'org.apache.camel.model.DynamicToDefinition','createProcessor(RouteContext)',NULL),(4009,'maybe its a language','Line','camel-core/src/main/java/org/apache/camel/model/DynamicToDefinition.java',77,77,'org.apache.camel.model.DynamicToDefinition','createProcessor(RouteContext)',NULL),(4010,'maybe its a language','Line','camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java',77,77,'org.apache.camel.model.ToDynamicDefinition','createProcessor(RouteContext)',NULL),(4011,'maybe its a language','Line','camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java',91,91,'org.apache.camel.model.ToDynamicDefinition','createExpression(RouteContext)',NULL),(4012,'FIXME - find which might work...','Line','components/camel-coap/src/main/java/org/apache/camel/coap/CamelCoapResource.java',53,53,'org.apache.camel.coap.CamelCoapResource','getChild(String)',NULL),(4013,'TODO: HttpCommonEndpoint','Line','components/camel-http/src/main/java/org/apache/camel/component/http/HttpCommonComponent.java',27,27,'org.apache.camel.component.http.HttpCommonComponent','connect(HttpConsumer)','NOT_DESIGN'),(4014,'None','None','components/camel-http/src/main/java/org/apache/camel/component/http/HttpCommonComponent.java',-1,-1,'None','None',NULL),(4015,'copy stream, and must flush on each write as etc Jetty has better performance when\nflushing after writing to its servlet output stream','Line','components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java',315,316,'org.apache.camel.http.common.DefaultHttpBinding','copyStream(InputStream, OutputStream, int)',NULL),(4016,'copy stream, and must flush on each write as etc Jetty has better performance when\nflushing after writing to its servlet output stream','Line','components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java',319,320,'org.apache.camel.component.http.DefaultHttpBinding','copyStream(InputStream, OutputStream, int)',NULL),(4017,'TODO: should not use that','Line','components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java',113,113,'org.apache.camel.component.jetty.JettyHttpProducer','processInternal(Exchange, AsyncCallback)','DESIGN'),(4018,'None','None','components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java',-1,-1,'None','None',NULL),(4019,'TODO: Add some logging of those events at trace or debug level','Line','components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowProducer.java',127,127,'org.apache.camel.component.undertow.UndertowProducer','completed(ClientExchange)','DESIGN'),(4020,'TODO: document me','Line','camel-core/src/main/java/org/apache/camel/spi/EndpointUtilizationStatistics.java',26,26,'org.apache.camel.spi.EndpointUtilizationStatistics','maxCapacity()','NOT_DESIGN'),(4021,'None','None','camel-core/src/main/java/org/apache/camel/spi/EndpointUtilizationStatistics.java',-1,-1,'None','None',NULL),(4022,'TODO: check','Line','components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java',44,44,'org.apache.camel.dataformat.bindy.csv.BindyTabSeparatorTest','testUnmarshal()',NULL),(4023,'TODO: check','Line','components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java',87,87,'org.apache.camel.dataformat.bindy.csv.BindyTabSeparatorTest','testUnmarshalEmptyTrailingNoneRequiredFields()','NOT_DESIGN'),(4024,'None','None','components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java',-1,-1,'None','None',NULL),(4025,'TODO: check','Line','components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyTabSeparatorTest.java',40,40,'org.apache.camel.dataformat.bindy.csv.BindyTabSeparatorTest','testUnmarshal()','NOT_DESIGN'),(4026,'TODO: implement the logic for this in a better way','Line','components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/NettyHttpRestContextPathMatcherTest.java',28,28,'org.apache.camel.component.netty4.http.NettyHttpRestContextPathMatcherTest','shouldReturnCustomResponseForOptions()','DESIGN'),(4027,'None','None','components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/NettyHttpRestContextPathMatcherTest.java',-1,-1,'None','None',NULL),(4028,'Workaround for the case when the entry is zero bytes big','Line','components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java',129,129,'org.apache.camel.dataformat.tarfile.TarIterator','getNextElement()',NULL),(4029,'FIXME Setting the reply to appears broken. walk back\nthrough it. If the value is a String we must normalize it\nfirst','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java',262,264,'org.apache.camel.component.sjms.jms.JmsMessageHelper','setJmsMessageHeaders(Message, Map<String, Object>, KeyFormatStrategy)','DESIGN'),(4030,'if the value is a String we must normalize it first, and must include the prefix\nas ActiveMQ requires that when converting the String to a javax.jms.Destination type','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java',260,261,'org.apache.camel.component.sjms.jms.JmsMessageHelper','appendJmsProperty(Message, Exchange, org.apache.camel.Message, String, Object, HeaderFilterStrategy, KeyFormatStrategy)',NULL),(4031,'TODO write destination converter\nDestination replyTo =\nExchangeHelper.convertToType(exchange,\nDestination.class,','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java',266,269,'org.apache.camel.component.sjms.jms.JmsMessageHelper','setJmsMessageHeaders(Message, Map<String, Object>, KeyFormatStrategy)','NOT_DESIGN'),(4032,'vendors will use JMS_XXX as their special headers (where XXX is vendor name, such as JMS_IBM)','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java',311,311,'org.apache.camel.component.sjms.jms.JmsMessageHelper','isStandardJMSHeader(String)',NULL),(4033,'ignore provider specified JMS extension headers see page 39 of JMS 1.1 specification\nadded \\\"JMSXRecvTimestamp\\\" as a workaround for an Oracle bug/typo in AqjmsMessage','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsHeaderFilterStrategy.java',37,38,'org.apache.camel.component.sjms.SjmsHeaderFilterStrategy','initialize()',NULL),(4034,'vendors will use JMS_XXX as their special headers (where XXX is vendor name, such as JMS_IBM)','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsBinding.java',365,365,'org.apache.camel.component.sjms.jms.JmsBinding','isStandardJMSHeader(String)',NULL),(4035,'this works around a bug in the ActiveMQ property handling','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java',382,382,'org.apache.camel.component.sjms.jms.JmsMessageHelper','setJmsMessageHeaders(Message, Exchange, boolean, KeyFormatStrategy)',NULL),(4036,'this works around a bug in the ActiveMQ property handling','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsBinding.java',159,159,'org.apache.camel.component.sjms.jms.JmsBinding','Object> extractHeadersFromJms(Message, Exchange)',NULL),(4037,'TODO: new options to support','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsBinding.java',92,92,'org.apache.camel.component.sjms.jms.JmsBinding','extractBodyFromJms(Exchange, Message)',NULL),(4038,'TODO: look at supporting some of these options','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsBinding.java',245,245,'org.apache.camel.component.sjms.jms.JmsBinding','makeJmsMessage(Exchange, Object, Map, Session, Exception)',NULL),(4039,'TODO: support some of these options?','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsBinding.java',430,430,'org.apache.camel.component.sjms.jms.JmsBinding','createJmsMessage(Exchange, Object, Map<String, Object>, Session, CamelContext)',NULL),(4040,'Deprecated exceptions are ignored in the tests since this depends on the\nconfiguration and/or creation date of the Facebook application.','Line','components/camel-facebook/src/test/java/org/apache/camel/component/facebook/FacebookComponentProducerTest.java',127,128,'org.apache.camel.component.facebook.FacebookComponentProducerTest','createRouteBuilder()',NULL),(4041,'create error handler (create error handler directly to keep it light weight,\ninstead of using ProcessorDefinition.wrapInErrorHandler)','Line','camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java',352,353,'org.apache.camel.processor.RoutingSlip','createErrorHandler(RouteContext, Exchange, AsyncProcessor)',NULL),(4042,'TODO: implement me','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',38,38,'org.apache.camel.swagger.RestSwaggerApiDeclarationServlet','None','NOT_DESIGN'),(4043,'TODO: implement these','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',108,108,'org.apache.camel.swagger.RestSwaggerApiDeclarationServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(4044,'TODO: api path?','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',138,138,'org.apache.camel.swagger.RestSwaggerApiDeclarationServlet','initBaseAndApiPaths(HttpServletRequest)','DESIGN'),(4045,'filter out older Camel versions as this requires Camel 2.15 or better','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/DefaultCamelSwaggerServlet.java',45,45,'org.apache.camel.swagger.DefaultCamelSwaggerServlet','getRestDefinitions(String)',NULL),(4046,'filter out older Camel versions as this requires Camel 2.15 or better','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/DefaultCamelSwaggerServlet.java',78,78,'org.apache.camel.swagger.DefaultCamelSwaggerServlet','findCamelContexts()',NULL),(4047,'TODO: should be base path and a lot more','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',48,48,'org.apache.camel.swagger.RestSwaggerReader','read(RestDefinition)','DESIGN'),(4048,'TODO: slash check and avoid double slash and all that','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',83,83,'org.apache.camel.swagger.RestSwaggerReader','getPath(String, String)',NULL),(4049,'None','None','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',-1,-1,'None','None',NULL),(4050,'None','None','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',-1,-1,'None','None',NULL),(4051,'TODO: combine the rests','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',140,140,'org.apache.camel.swagger.RestSwaggerApiDeclarationServlet','renderResourceListing(HttpServletRequest, HttpServletResponse, String)',NULL),(4052,'TODO: slash check and avoid double slash and all that','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',122,122,'org.apache.camel.swagger.RestSwaggerReader','getPath(String, String)','NOT_DESIGN'),(4053,'TODO: add model parser for swagger annotations in the model/schema','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',118,118,'org.apache.camel.swagger.RestSwaggerReader','read(RestDefinition, BeanConfig)',NULL),(4054,'TODO: add the type / outType stuff with array and model detection','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',74,74,'org.apache.camel.swagger.RestSwaggerReader','read(RestDefinition, BeanConfig)','NOT_DESIGN'),(4055,'TODO: add model parser for swagger annotations in the model/schema','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',126,126,'org.apache.camel.swagger.RestSwaggerReader','read(RestDefinition, BeanConfig)','NOT_DESIGN'),(4056,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/DefaultCamelSwaggerServlet.java',45,45,'org.apache.camel.swagger.DefaultCamelSwaggerServlet','getRestDefinitions(String)',NULL),(4057,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/DefaultCamelSwaggerServlet.java',78,78,'org.apache.camel.swagger.DefaultCamelSwaggerServlet','findCamelContexts()',NULL),(4058,'TODO: like response object with type refer to model','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java',162,162,'org.apache.camel.swagger.RestSwaggerReader','read(RestDefinition, BeanConfig, ClassResolver)','DESIGN'),(4059,'TODO: implement these','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',148,148,'org.apache.camel.swagger.RestSwaggerApiDeclarationServlet','doGet(HttpServletRequest, HttpServletResponse)','NOT_DESIGN'),(4060,'TODO: combine the rests','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',173,173,'org.apache.camel.swagger.RestSwaggerApiDeclarationServlet','renderResourceListing(HttpServletRequest, HttpServletResponse, String)','NOT_DESIGN'),(4061,'read the rest-dsl into swagger model','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java',166,166,'org.apache.camel.swagger.RestSwaggerApiDeclarationServlet','renderResourceListing(HttpServletRequest, HttpServletResponse, String, String)',NULL),(4062,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/DefaultCamelSwaggerServlet.java',50,50,'org.apache.camel.swagger.DefaultCamelSwaggerServlet','getRestDefinitions(String)',NULL),(4063,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerServlet.java',50,50,'org.apache.camel.swagger.RestSwaggerServlet','getRestDefinitions(String)',NULL),(4064,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/DefaultCamelSwaggerServlet.java',83,83,'org.apache.camel.swagger.DefaultCamelSwaggerServlet','findCamelContexts()',NULL),(4065,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerServlet.java',83,83,'org.apache.camel.swagger.RestSwaggerServlet','findCamelContexts()',NULL),(4066,'TODO: Get size of queue','Line','components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java',121,121,'org.apache.camel.component.routebox.seda.RouteboxSedaConsumer','getPendingExchangesSize()','NOT_DESIGN'),(4067,'None','None','components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java',-1,-1,'None','None',NULL),(4068,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java',121,121,'org.apache.camel.swagger.RestSwaggerSupport','getRestDefinitions(String)',NULL),(4069,'filter out older Camel versions as this requires Camel 2.15 or better (rest-dsl)','Line','components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java',153,153,'org.apache.camel.swagger.RestSwaggerSupport','findCamelContexts()',NULL),(4070,'TODO: is this needed?\nthere may be an optional context path configured to help Camel calculate the correct urls for the REST services\nthis may be needed when using camel-serlvet where we cannot get the actual context-path or port number of the servlet engine\nduring init of the servlet','Line','camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java',172,175,'org.apache.camel.component.rest.RestApiEndpoint','createConsumer(Processor)',NULL),(4071,'TODO: merge this method to RestConsumerFactory','Line','camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java',27,27,'org.apache.camel.spi.RestApiConsumerFactory','createApiConsumer(CamelContext, Processor, String, RestConfiguration, Map<String, Object>)','NOT_DESIGN'),(4072,'TODO: is this needed?\nthere may be an optional context path configured to help Camel calculate the correct urls for the REST services\nthis may be needed when using camel-serlvet where we cannot get the actual context-path or port number of the servlet engine\nduring init of the servlet','Line','camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java',243,246,'org.apache.camel.component.rest.RestApiEndpoint','createConsumer(Processor)',NULL),(4073,'TODO: is this needed?\nthere may be an optional context path configured to help Camel calculate the correct urls for the REST services\nthis may be needed when using camel-servlet where we cannot get the actual context-path or port number of the servlet engine\nduring init of the servlet','Line','camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java',246,249,'org.apache.camel.component.rest.RestApiEndpoint','createConsumer(Processor)',NULL),(4074,'None','None','camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java',-1,-1,'None','None',NULL),(4075,'TODO: is this needed?\nthere may be an optional context path configured to help Camel calculate the correct urls for the REST services\nthis may be needed when using camel-servlet where we cannot get the actual context-path or port number of the servlet engine\nduring init of the servlet','Line','camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java',248,251,'org.apache.camel.component.rest.RestApiEndpoint','createConsumer(Processor)','DESIGN'),(4076,'None','None','camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java',-1,-1,'None','None',NULL),(4077,'TODO: not yet implemented','Line','camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDataFormat.java',76,76,'org.apache.camel.management.mbean.ManagedDataFormat','informationJson()','NOT_DESIGN'),(4078,'TODO: not yet implemented','Line','camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDataFormat.java',82,82,'org.apache.camel.management.mbean.ManagedDataFormat','explain(boolean)','NOT_DESIGN'),(4079,'TODO: DataFormats should extends Service like the others','Line','camel-core/src/main/java/org/apache/camel/spi/DataFormat.java',37,37,'org.apache.camel.spi.DataFormat','marshal(Exchange, Object, OutputStream)',NULL),(4080,'maybe its a language','Line','camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java',92,92,'org.apache.camel.model.ToDynamicDefinition','createExpression(RouteContext)','NOT_DESIGN'),(4081,'the part may have optional language to use, so you can mix languages','Line','camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java',88,88,'org.apache.camel.model.ToDynamicDefinition','createExpression(RouteContext)',NULL),(4082,'maybe its a language, must have language: as prefix','Line','camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java',94,94,'org.apache.camel.model.ToDynamicDefinition','createExpression(RouteContext)',NULL),(4083,'ignore','Line','camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java',103,103,'org.apache.camel.model.ToDynamicDefinition','createExpression(RouteContext)',NULL),(4084,'None','None','camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDataFormat.java',-1,-1,'None','None',NULL),(4085,'TODO: allow to configure these options and not hardcode','Line','components/camel-scr/src/main/java/org/apache/camel/scr/AbstractCamelRunner.java',113,113,'org.apache.camel.scr.AbstractCamelRunner','setupCamelContext(BundleContext, String)',NULL),(4086,'we should have a better way - than just try every 5th second to try to start the bundle','Line','components/camel-scr/src/main/java/org/apache/camel/scr/AbstractCamelRunner.java',204,204,'org.apache.camel.scr.AbstractCamelRunner','startCamelContext()',NULL),(4087,'KarafDistributionOption.keepRuntimeFolder(),\noverride the config.properties (to fix pax-exam bug)\nKarafDistributionOption.replaceConfigurationFile(\\\"etc/config.properties\\\", new File(\\\"src/test/resources/org/apache/camel/itest/karaf/config.properties\\\")),\nUpdate the jre.properties to export the sun.misc package','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java',239,242,'org.apache.camel.itest.karaf.AbstractFeatureTest','configure(String, String...)',NULL),(4088,'TODO: must be named','Line','components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlEndpoint.java',59,59,'org.apache.camel.component.elsql.ElsqlEndpoint','createConsumer(Processor)','NOT_DESIGN'),(4089,'None','None','components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlEndpoint.java',-1,-1,'None','None',NULL),(4090,'Setup the query object into the search request','Line','components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/converter/ElasticsearchActionRequestConverter.java',97,97,'org.apache.camel.component.elasticsearch.converter.ElasticsearchActionRequestConverter','toSearchRequest(Object, Exchange)',NULL),(4091,'TODO: Camel 3.0 - Should be named customLoadBalancer to avoid naming clash with custom dataformat','Line','camel-core/src/main/java/org/apache/camel/model/LoadBalanceDefinition.java',54,54,'org.apache.camel.model.LoadBalanceDefinition','None',NULL),(4092,'TODO: Camel 3.0 - Should be named customDataFormat to avoid naming clash with custom loadbalancer','Line','camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsDefinition.java',50,50,'org.apache.camel.model.dataformat.DataFormatsDefinition','None',NULL),(4093,'TODO Unignore when upgraded to optaplanner 6.3.1+','Line','components/camel-optaplanner/src/test/java/org/apache/camel/component/optaplanner/OptaPlannerDaemonSolverTest.java',40,40,'org.apache.camel.component.optaplanner.OptaPlannerDaemonSolverTest','None','DESIGN'),(4094,'None','None','components/camel-optaplanner/src/test/java/org/apache/camel/component/optaplanner/OptaPlannerDaemonSolverTest.java',-1,-1,'None','None',NULL),(4095,'TODO: we do not yet have the classname of nested types','Line','components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelBookOrderTest.java',86,86,'org.apache.camel.swagger.RestSwaggerReaderModelBookOrderTest','testReaderRead()',NULL),(4096,'workaround issue in CXF that is causing these to go through\nsax instead of stax.  Fixed in 2.4.4/2.5.','Line','components/camel-cxf/src/main/java/org/apache/camel/component/cxf/HybridSourceDataBinding.java',87,88,'org.apache.camel.component.cxf.HybridSourceDataBinding','createWriter(Class<T>)','NOT_DESIGN'),(4097,'None','None','components/camel-cxf/src/main/java/org/apache/camel/component/cxf/HybridSourceDataBinding.java',-1,-1,'None','None',NULL),(4098,'TODO: fix me later','Line','platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java',226,226,'org.apache.camel.catalog.CamelCatalogTest','testEndpointPropertiesNetty4http()',NULL),(4099,'TODO: replace the following line with IOHelper.close(ss) when Java 6 support is dropped','Line','camel-core/src/main/java/org/apache/camel/impl/ActiveMQUuidGenerator.java',100,100,'org.apache.camel.impl.ActiveMQUuidGenerator','getHostName()','NOT_DESIGN'),(4100,'None','None','camel-core/src/main/java/org/apache/camel/impl/ActiveMQUuidGenerator.java',-1,-1,'None','None',NULL),(4101,'None','None','camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java',-1,-1,'None','None',NULL),(4102,'TODO: Camel 3.0 consider moving to org.apache.camel','Line','camel-core/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java',34,34,'org.apache.camel.spi.ThreadPoolProfile','None',NULL),(4103,'None','None','camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextEndpointCacheLimitTest.java',-1,-1,'None','None',NULL),(4104,'None','None','camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextEndpointCacheTest.java',-1,-1,'None','None',NULL),(4105,'terminate if we reach @param, @return or @deprecated as we only want the javadoc summary','Line','tooling/apt/src/main/java/org/apache/camel/tools/apt/JsonSchemaHelper.java',213,213,'org.apache.camel.tools.apt.JsonSchemaHelper','sanitizeDescription(String, boolean)',NULL),(4106,'terminate if we reach @param, @return or @deprecated as we only want the javadoc summary','Line','tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java',219,219,'org.apache.camel.tools.apt.helper.JsonSchemaHelper','sanitizeDescription(String, boolean)',NULL),(4107,'take over any potential prefixes we may have been asked for','Line','components/camel-elasticsearch/src/test/java/org/apache/camel/component/elasticsearch/ElasticsearchComponentTest.java',66,66,'org.apache.camel.component.elasticsearch.ElasticsearchComponentTest','String> createIndexedData(String...)',NULL),(4108,'take over any potential prefixes we may have been asked for','Line','components/camel-elasticsearch/src/test/java/org/apache/camel/component/elasticsearch/ElasticsearchBaseTest.java',85,85,'org.apache.camel.component.elasticsearch.ElasticsearchBaseTest','String> createIndexedData(String...)',NULL),(4109,'TODO: a bug which causes the TarSplitter to include an extra empty entry\nthe bug is in the TarIterator hasNext / next','Line','components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteIssueTest.java',39,40,'org.apache.camel.dataformat.tarfile.TarSplitterRouteIssueTest','testSplitter()','DESIGN'),(4110,'probably right.','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/kinesis/KinesisEndpoint.java',77,77,'org.apache.camel.component.aws.kinesis.KinesisEndpoint','isSingleton()','NOT_DESIGN'),(4111,'XXX only uses the first shard','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/kinesis/KinesisConsumer.java',109,109,'org.apache.camel.component.aws.kinesis.KinesisConsumer','getShardItertor()',NULL),(4112,'None','None','components/camel-aws/src/main/java/org/apache/camel/component/aws/kinesis/KinesisEndpoint.java',-1,-1,'None','None',NULL),(4113,'REVISIT we need to disable JSR356 detection for now when using jetty-9.3 when using atmosphere-2.4.x\nTODO switch to use contant ApplicationConfig.WEBSOCKET_SUPPRESS_JSR356 aftr atmosphere-2.4.2','Line','components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketConsumer.java',53,54,'org.apache.camel.component.atmosphere.websocket.WebsocketConsumer','getEndpoint()','DESIGN'),(4114,'take over any potential prefixes we may have been asked for','Line','components/camel-elasticsearch/src/test/java/org/apache/camel/component/elasticsearch/ElasticsearchClusterBaseTest.java',103,103,'org.apache.camel.component.elasticsearch.ElasticsearchClusterBaseTest','String> createIndexedData(String...)',NULL),(4115,'override to setup better documentation for netty-http','Line','components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java',109,109,'org.apache.camel.component.netty.http.NettyHttpConfiguration','getHost()',NULL),(4116,'override to setup better documentation for netty-http','Line','components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java',119,119,'org.apache.camel.component.netty.http.NettyHttpConfiguration','setHost(String)',NULL),(4117,'override to setup better documentation for netty-http','Line','components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java',125,125,'org.apache.camel.component.netty.http.NettyHttpConfiguration','getPort()',NULL),(4118,'override to setup better documentation for netty-http','Line','components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java',134,134,'org.apache.camel.component.netty.http.NettyHttpConfiguration','setPort(int)',NULL),(4119,'override to setup better documentation for netty-http','Line','components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java',108,108,'org.apache.camel.component.netty4.http.NettyHttpConfiguration','getHost()',NULL),(4120,'override to setup better documentation for netty-http','Line','components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java',118,118,'org.apache.camel.component.netty4.http.NettyHttpConfiguration','setHost(String)',NULL),(4121,'override to setup better documentation for netty-http','Line','components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java',124,124,'org.apache.camel.component.netty4.http.NettyHttpConfiguration','getPort()',NULL),(4122,'override to setup better documentation for netty-http','Line','components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java',133,133,'org.apache.camel.component.netty4.http.NettyHttpConfiguration','setPort(int)',NULL),(4123,'now we should have a new slot that starts somewhere in the future','Line','camel-core/src/test/java/org/apache/camel/processor/ThrottlerTest.java',128,128,'org.apache.camel.processor.ThrottlerTest','testTimeSlotCalculus()','NOT_DESIGN'),(4124,'None','None','camel-core/src/test/java/org/apache/camel/processor/ThrottlerTest.java',-1,-1,'None','None',NULL),(4125,'TODO: fix me later','Line','platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java',274,274,'org.apache.camel.catalog.CamelCatalogTest','testEndpointPropertiesNetty4http()','NOT_DESIGN'),(4126,'None','None','platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java',-1,-1,'None','None',NULL),(4127,'remove all the other showXXX options when showAll=true','Line','platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java',812,812,'org.apache.camel.catalog.DefaultCamelCatalog','String> filterProperties(String, Map<String, String>)',NULL),(4128,'XXX assumes there is only one stream','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumer.java',103,103,'org.apache.camel.component.aws.ddbstream.DdbStreamConsumer','getShardItertor()',NULL),(4129,'XXX only uses the first shard','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumer.java',111,111,'org.apache.camel.component.aws.ddbstream.DdbStreamConsumer','getShardItertor()','NOT_DESIGN'),(4130,'probably right.','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpoint.java',76,76,'org.apache.camel.component.aws.ddbstream.DdbStreamEndpoint','isSingleton()','NOT_DESIGN'),(4131,'None','None','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumer.java',-1,-1,'None','None',NULL),(4132,'None','None','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpoint.java',-1,-1,'None','None',NULL),(4133,'Workaround for the case when the entry is zero bytes big','Line','components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java',127,127,'org.apache.camel.dataformat.tarfile.TarIterator','getNextElement()',NULL),(4134,'Workaround for the case when the entry is zero bytes big','Line','components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java',124,124,'org.apache.camel.dataformat.tarfile.TarIterator','createNextMessage()',NULL),(4135,'TODO: json with error instead of map\nwith description of the error, index, etc','Line','platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java',180,181,'org.apache.camel.catalog.CamelCatalog','endpointComponentName(String)','NOT_DESIGN'),(4136,'None','None','platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java',-1,-1,'None','None',NULL),(4137,'None','None','components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteIssueTest.java',-1,-1,'None','None',NULL),(4138,'need to parse the uri query parameters manually as we cannot rely on splitting by &,\nas & can be used in a parameter value as well.','Line','platforms/catalog/src/main/java/org/apache/camel/catalog/URISupport.java',151,152,'org.apache.camel.catalog.URISupport','Object> parseQuery(String, boolean)',NULL),(4139,'need to parse the uri query parameters manually as we cannot rely on splitting by &,\nas & can be used in a parameter value as well.','Line','platforms/catalog/src/main/java/org/apache/camel/catalog/util/URISupport.java',151,152,'org.apache.camel.catalog.util.URISupport','Object> parseQuery(String, boolean)',NULL),(4140,'TODO rename to LT/LTEQ/EQ/GTEQ/GT','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/AtAfterCondition.java',42,42,'org.apache.camel.component.aws.ddbstream.AtAfterCondition','None',NULL),(4141,'TODO Add EQ/GTEQ/GT as needed, but note that GTEQ == !LT and GT == !LTEQ and EQ == (!LT && !GT)','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/BigIntComparisons.java',42,42,'org.apache.camel.component.aws.ddbstream.BigIntComparisons','None',NULL),(4142,'maybe there is blueprint XML files','Line','tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java',690,690,'org.apache.camel.maven.RunMojo','detectBlueprintOnClassPathOrBlueprintXMLFiles()',NULL),(4143,'TODO Do we need to setup the args for the DeadLetter?','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java',377,377,'org.apache.camel.component.rabbitmq.RabbitMQEndpoint','declareExchangeAndQueue(Channel)',NULL),(4144,'TODO Do we need to setup the args for the DeadLetter?','Line','components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQDeclareSupport.java',41,41,'org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport','declareAndBindDeadLetterExchangeWithQueue(Channel)',NULL),(4145,'TODO: Implement this','Line','components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientConsumerBlueprintTest.java',25,25,'org.apache.camel.component.mllp.MllpTcpClientConsumerBlueprintTest','None',NULL),(4146,'TODO: Implement this','Line','components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerProducerBlueprintTest.java',25,25,'org.apache.camel.component.mllp.MllpTcpServerProducerBlueprintTest','None',NULL),(4147,'TODO: Need to check maxConnections and figure out what to do when exceeded','Line','components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpServerConsumer.java',184,184,'org.apache.camel.component.mllp.MllpTcpServerConsumer','doStart()',NULL),(4148,'TODO:  May want to throw some sort of an Exception here','Line','components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpServerConsumer.java',491,491,'org.apache.camel.component.mllp.MllpTcpServerConsumer','populateHl7DataHeaders(Exchange, Message, byte[])',NULL),(4149,'TODO:  Enhance this to detect non-HL7 data (i.e. look for MSH after START_OF_BLOCK)','Line','components/camel-mllp/src/test/java/org/apache/camel/test/junit/rule/mllp/MllpServerResource.java',734,734,'org.apache.camel.test.junit.rule.mllp.MllpServerResource','getMessage(InputStream)',NULL),(4150,'TODO:  Enhance this to read a bunch of characters and log, rather than log them one at a time','Line','components/camel-mllp/src/test/java/org/apache/camel/test/junit/rule/mllp/MllpServerResource.java',737,737,'org.apache.camel.test.junit.rule.mllp.MllpServerResource','getMessage(InputStream)',NULL),(4151,'TODO:  Come up with an intelligent way to size this stream','Line','components/camel-mllp/src/main/java/org/apache/camel/component/mllp/impl/MllpUtil.java',178,178,'org.apache.camel.component.mllp.impl.MllpUtil','closeFrame(Socket)',NULL),(4152,'TODO:  Move URI Params to a MllpConfiguration class','Line','components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java',56,56,'org.apache.camel.component.mllp.MllpEndpoint','None',NULL),(4153,'TODO:  Move URI Params to a MllpConfiguration class\nTODO: Move the description documentation to javadoc in the setter method','Line','components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java',56,57,'org.apache.camel.component.mllp.MllpEndpoint','None','NOT_DESIGN'),(4154,'TODO: this logic should be in component class\nTODO: all the options in the endpoint should be getter/setter so you can configure them as plain Java','Line','components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java',104,105,'org.apache.camel.component.mllp.MllpEndpoint','getExchangePattern()','DESIGN'),(4155,'sleep a bit to ensure its properly suspended','Line','components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQSupendResumeIntTest.java',65,65,'org.apache.camel.component.rabbitmq.RabbitMQSupendResumeIntTest','testSuspendedResume()',NULL),(4156,'maybe the name was using an optional prefix, and if so then lookup without the prefix','Line','platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java',763,763,'org.apache.camel.catalog.DefaultCamelCatalog','validateEndpointProperties(String)','NOT_DESIGN'),(4157,'None','None','platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java',-1,-1,'None','None',NULL),(4158,'REVISIT we need to disable JSR356 detection for now when using jetty-9.3 when using atmosphere-2.4.x','Line','components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketConsumer.java',53,53,'org.apache.camel.component.atmosphere.websocket.WebsocketConsumer','getEndpoint()',NULL),(4159,'prefer to use endpoint configured over component configured\nTODO cmueller: remove the \\\"httpClientConfigurerRef\\\" look up in Camel 3.0','Line','components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java',67,68,'org.apache.camel.component.http.HttpComponent','createHttpClientConfigurer(Map<String, Object>, Set<AuthMethod>)','DESIGN'),(4160,'prefer to use endpoint configured over component configured','Line','components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java',67,67,'org.apache.camel.component.http.HttpComponent','createHttpClientConfigurer(Map<String, Object>, Set<AuthMethod>)',NULL),(4161,'must extract well known parameters before we create the endpoint\nTODO cmueller: remove the \\\"httpBindingRef\\\" look up in Camel 3.0','Line','components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java',202,203,'org.apache.camel.component.http.HttpComponent','createEndpoint(String, String, Map<String, Object>)','DESIGN'),(4162,'must extract well known parameters before we create the endpoint','Line','components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java',197,197,'org.apache.camel.component.http.HttpComponent','createEndpoint(String, String, Map<String, Object>)',NULL),(4163,'TODO we need to remove the Ref in Camel 3.0','Line','components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java',59,59,'org.apache.camel.component.servlet.ServletComponent','createEndpoint(String, String, Map<String, Object>)','DESIGN'),(4164,'None','None','components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java',-1,-1,'None','None',NULL),(4165,'prefer to use endpoint configured over component configured\nTODO cmueller: remove the \\\"httpClientConfigurerRef\\\" look up in Camel 3.0','Line','components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java',96,97,'org.apache.camel.component.http4.HttpComponent','createHttpClientConfigurer(Map<String, Object>, boolean)','DESIGN'),(4166,'prefer to use endpoint configured over component configured','Line','components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java',96,96,'org.apache.camel.component.http4.HttpComponent','createHttpClientConfigurer(Map<String, Object>, boolean)',NULL),(4167,'TODO cmueller: remove the \\\"httpBindingRef\\\" look up in Camel 3.0','Line','components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java',170,170,'org.apache.camel.component.http4.HttpComponent','createEndpoint(String, String, Map<String, Object>)','DESIGN'),(4168,'TODO cmueller: remove the \\\"httpContextRef\\\" look up in Camel 3.0','Line','components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java',176,176,'org.apache.camel.component.http4.HttpComponent','createEndpoint(String, String, Map<String, Object>)','DESIGN'),(4169,'TODO cmueller: remove the \\\"sslContextParametersRef\\\" look up in Camel 3.0','Line','components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java',188,188,'org.apache.camel.component.http4.HttpComponent','createEndpoint(String, String, Map<String, Object>)','DESIGN'),(4170,'we may have some extra params left over for the object properties hashtable\nthese properties need to be consumed or the framework will throw an exception\nfor unused params','Line','components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXComponent.java',49,51,'org.apache.camel.component.jmx.JMXComponent','createEndpoint(String, String, Map<String, Object>)','DESIGN'),(4171,'None','None','components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXComponent.java',-1,-1,'None','None',NULL),(4172,'None','None','components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java',-1,-1,'None','None',NULL),(4173,'only if we support alternative syntax, and the uri contains the username and password in the authority\npart of the uri, then we would need some special logic to capture that information and strip those\ndetails from the uri, so we can continue parsing the uri using the normal syntax','Line','platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java',961,963,'org.apache.camel.catalog.DefaultCamelCatalog','String> endpointProperties(String)',NULL),(4174,'TODO: review the key used to track gateways','Line','components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeComponent.java',69,69,'org.apache.camel.component.braintree.BraintreeComponent','getGateway(BraintreeConfiguration)',NULL),(4175,'TODO: cleanup','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',64,64,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','tearDown()',NULL),(4176,'TODO provide parameter values for cancelRelease','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',266,266,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testCancelRelease()',NULL),(4177,'TODO provide parameter values for credit','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',277,277,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testCredit()',NULL),(4178,'TODO provide parameter values for holdInEscrow','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',288,288,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testHoldInEscrow()',NULL),(4179,'TODO provide parameter values for refund','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',299,299,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testRefund()',NULL),(4180,'TODO provide parameter values for refund','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',310,310,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testRefundWithAmount()',NULL),(4181,'TODO provide parameter values for releaseFromEscrow','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',326,326,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testReleaseFromEscrow()',NULL),(4182,'TODO provide parameter values for search','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',337,337,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testSearch()',NULL),(4183,'TODO provide parameter values for submitForPartialSettlement','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',348,348,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testSubmitForPartialSettlement()',NULL),(4184,'TODO provide parameter values for voidTransaction','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java',364,364,'org.apache.camel.component.braintree.TransactionGatewayIntegrationTest','testVoidTransaction()',NULL),(4185,'TODO provide parameter values for generate','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SettlementBatchSummaryGatewayIntegrationTest.java',35,35,'org.apache.camel.component.braintree.SettlementBatchSummaryGatewayIntegrationTest','testGenerate()',NULL),(4186,'TODO provide parameter values for generate','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SettlementBatchSummaryGatewayIntegrationTest.java',46,46,'org.apache.camel.component.braintree.SettlementBatchSummaryGatewayIntegrationTest','testGenerateWithCustomFields()',NULL),(4187,'TODO provide parameter values for create','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/PaymentMethodNonceGatewayIntegrationTest.java',32,32,'org.apache.camel.component.braintree.PaymentMethodNonceGatewayIntegrationTest','testCreate()',NULL),(4188,'TODO provide parameter values for find','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/PaymentMethodNonceGatewayIntegrationTest.java',43,43,'org.apache.camel.component.braintree.PaymentMethodNonceGatewayIntegrationTest','testFind()',NULL),(4189,'TODO provide parameter values for cancel','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',35,35,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testCancel()',NULL),(4190,'TODO provide parameter values for create','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',46,46,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testCreate()',NULL),(4191,'TODO provide parameter values for delete','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',57,57,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testDelete()',NULL),(4192,'TODO provide parameter values for find','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',73,73,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testFind()',NULL),(4193,'TODO provide parameter values for retryCharge','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',84,84,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testRetryCharge()',NULL),(4194,'TODO provide parameter values for retryCharge','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',95,95,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testRetryChargeWithAmount()',NULL),(4195,'TODO provide parameter values for search','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',111,111,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testSearch()',NULL),(4196,'TODO provide parameter values for update','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/SubscriptionGatewayIntegrationTest.java',122,122,'org.apache.camel.component.braintree.SubscriptionGatewayIntegrationTest','testUpdate()',NULL),(4197,'TODO provide parameter values for find','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/CreditCardVerificationGatewayIntegrationTest.java',34,34,'org.apache.camel.component.braintree.CreditCardVerificationGatewayIntegrationTest','testFind()',NULL),(4198,'TODO provide parameter values for search','Line','components/camel-braintree/src/test/java/org/apache/camel/component/braintree/CreditCardVerificationGatewayIntegrationTest.java',45,45,'org.apache.camel.component.braintree.CreditCardVerificationGatewayIntegrationTest','testSearch()',NULL),(4199,'TODO: as rest of types.\nTODO: add test for each type.','Line','components/camel-sql/src/main/java/org/apache/camel/component/sql/sspt/ast/ParseHelper.java',26,27,'org.apache.camel.component.sql.sspt.ast.ParseHelper','sqlTypeToJavaType(int, String)',NULL),(4200,'TODO: cache parsed SimpleStoredProcedure to LRU-cache.','Line','components/camel-sql/src/main/java/org/apache/camel/component/sql/sspt/ProducerSSPTHelper.java',25,25,'org.apache.camel.component.sql.sspt.ProducerSSPTHelper','handleSstpQuery(String, Exchange)',NULL),(4201,'TODO: as rest of types.\nTODO: add test for each type.','Line','components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java',26,27,'org.apache.camel.component.sql.stored.template.ast.ParseHelper','sqlTypeToJavaType(int, String)',NULL),(4202,'TODO:remove validation ?','Line','components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/TemplateStoredProcedureFactory.java',31,31,'org.apache.camel.component.sql.stored.template.TemplateStoredProcedureFactory','validate(Template)',NULL),(4203,'TODO:remove validation ?','Line','components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/TemplateStoredProcedureFactory.java',53,53,'org.apache.camel.component.sql.stored.template.TemplateStoredProcedureFactory','validate(Template)','DESIGN'),(4204,'None','None','components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/TemplateStoredProcedureFactory.java',-1,-1,'None','None',NULL),(4205,'TODO: as rest of types.\nTODO: add test for each type.','Line','components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java',44,45,'org.apache.camel.component.sql.stored.template.ast.ParseHelper','sqlTypeToJavaType(int, String)','NOT_DESIGN'),(4206,'None','None','components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java',-1,-1,'None','None',NULL),(4207,'somekind of mapping here https://docs.oracle.com/cd/E19501-01/819-3659/gcmaz/\nTODO: test with each SQL_TYPE_TO_JAVA_CLASS that JAVA conversion works!','Line','components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java',32,33,'org.apache.camel.component.sql.stored.template.ast.ParseHelper','parseSqlType(String)','NOT_DESIGN'),(4208,'TODO this is a bit of a hack - what should the bean name be?','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/CamelExtension.java',243,243,'org.apache.camel.cdi.internal.CamelExtension','onInjectionTarget(ProcessInjectionTarget<?>)',NULL),(4209,'TODO this is a bit of a hack - what should the bean name be?','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/CamelExtension.java',272,272,'org.apache.camel.cdi.internal.CamelExtension','inject(Object)',NULL),(4210,'TODO: be more fine grained for the kind of events that are emitted depending on the observed event types','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiEventNotifier.java',35,35,'org.apache.camel.cdi.CdiEventNotifier','notify(EventObject)',NULL),(4211,'TODO: support stereotype with empty @Named annotation','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelContextProducer.java',109,109,'org.apache.camel.cdi.CamelContextProducer','nameStrategy(Annotated)',NULL),(4212,'OpenWebBeans logs the deployment exception details\nTODO: OpenWebBeans only log the root cause of exception thrown in producer methods\nassertThat(log.getMessages(), containsInRelativeOrder(pecs(messages)))','Line','components/camel-cdi/src/test/java/org/apache/camel/cdi/rule/ExpectedDeploymentException.java',58,60,'org.apache.camel.cdi.rule.ExpectedDeploymentException','apply(Statement, Description)',NULL),(4213,'TODO: reactivate when ARQ-1255 is fixed','Line','components/camel-cdi/src/test/java/org/apache/camel/cdi/test/PropertiesLocationTest.java',54,54,'org.apache.camel.cdi.test.PropertiesLocationTest','resolvePropertyFromLocation(CamelContext)',NULL),(4214,'This class is used as a work-around to OWB-1099','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/AnnotatedWrapper.java',24,24,'None','None',NULL),(4215,'We should ideally use an ExpectedException JUnit rule to assert the content of the exception\nthrown at deployment time. Unfortunately, OpenWebBeans does not enable access to the underlying\ncause added as deployment exception. To work-around that, we delay the start of the Camel context\nat runtime.','Line','components/camel-cdi/src/test/java/org/apache/camel/cdi/test/EventComponentTest.java',51,54,'org.apache.camel.cdi.test.EventComponentTest','createEventEndpointByUri(NotStartedCamelContext)',NULL),(4216,'TODO: leverage Camel type converter mechanism based on the endpoint type\nThe EventMetadata injection point will be that of the event which is not very useful\nfor the end user. Using BeanManager.fire would be a way to hide that internal though\nit will be necessary to check whether the exchange event type is assignable to the\nendpoint event type.','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiEventProducer.java',40,44,'org.apache.camel.cdi.CdiEventProducer','process(Exchange)',NULL),(4217,'The CDI event endpoint URI follows the format hereafter:\n\ncdi-event://PayloadType<T1,...,Tn>[?qualifiers=QualifierType1[,...[,QualifierTypeN]...]]\n\nwith the authority PayloadType (respectively the QualifierType) being the URI escaped fully\nqualified name of the payload (respectively qualifier) raw type followed by the type parameters\nsection delimited by angle brackets for payload parameterized type.\n\nWhich leads to unfriendly URIs, e.g.:\n\ncdi-event://org.apache.camel.cdi.se.pojo.EventPayload%3Cjava.lang.Integer%3E?qualifiers=org.apache.camel.cdi.se.qualifier.FooQualifier%2Corg.apache.camel.cdi.se.qualifier.BarQualifier\n\nFrom the conceptual standpoint, that shows the high impedance between the typesafe nature of CDI\nand the dynamic nature of the Camel component model.\n\nFrom the implementation standpoint, that would prevent efficient binding between the endpoint\ninstances and observer methods as the CDI container doesn\'t have any ways of discovering the\nCamel context model during the deployment phase.','Block','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiEventComponent.java',32,50,'org.apache.camel.cdi.CdiEventComponent','createEndpoint(String, String, Map<String, Object>)',NULL),(4218,'FIXME: The context component does not support multiple logical endpoints\nwith the same remaining defined in two distinct Camel contexts.\nSee https://issues.apache.org/jira/browse/CAMEL-9200.','Line','components/camel-cdi/src/test/java/org/apache/camel/cdi/test/ContextComponentTest.java',72,74,'org.apache.camel.cdi.test.ContextComponentTest','addRouteToMainContext()',NULL),(4219,'TODO: Use standard CDI Java SE support when CDI 2.0 becomes a prerequisite','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/Main.java',87,87,'org.apache.camel.cdi.Main','doStart()',NULL),(4220,'FIXME: the above call should not override explicit strategies provided by the end user or should decorate them instead of overriding them completely','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelContextOsgiProducer.java',55,55,'org.apache.camel.cdi.CamelContextOsgiProducer','produce(CreationalContext<T>)',NULL),(4221,'FIXME: avoid NPE caused by missing @Uri qualifier when injection point is @ContextName qualified','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelFactory.java',60,60,'org.apache.camel.cdi.CdiCamelFactory','producerTemplate(InjectionPoint, Instance<CamelContext>, CdiCamelExtension)',NULL),(4222,'FIXME: to be replaced once event firing with dynamic parameterized type is properly supported (see https://issues.jboss.org/browse/CDI-516)','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelFactory.java',136,136,'org.apache.camel.cdi.CdiCamelFactory','cdiEventEndpoint(InjectionPoint, Instance<CamelContext>, CdiCamelExtension, Event<Object>)',NULL),(4223,'Work-around for WELD-2089','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelRegistry.java',49,49,'org.apache.camel.cdi.CdiCamelRegistry','lookupByName(String)',NULL),(4224,'TODO: would that be possible to propagate the event metadata?','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiEventConsumer.java',54,54,'org.apache.camel.cdi.CdiEventConsumer','notify(T)',NULL),(4225,'TODO: refine the key to the type and qualifiers instead of the whole injection point as it leads to registering redundant observers','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelExtension.java',153,153,'org.apache.camel.cdi.CdiCamelExtension','cdiEventEndpoints(ProcessBean<?>)',NULL),(4226,'TODO: would be more correct to add a bean for each Camel context bean','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelExtension.java',231,231,'org.apache.camel.cdi.CdiCamelExtension','cdiCamelFactoryProducers(AfterBeanDiscovery)',NULL),(4227,'TODO: see how to retrieve the bean name','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelBeanInjectionTarget.java',40,40,'org.apache.camel.cdi.CamelBeanInjectionTarget','inject(T, CreationalContext<T>)',NULL),(4228,'TODO: proper support for multi Camel contexts and custom context qualifiers','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelBeanPostProcessor.java',42,42,'org.apache.camel.cdi.CdiCamelBeanPostProcessor','injectFields(Object, String)',NULL),(4229,'TODO: proper support for multi Camel contexts','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelBeanPostProcessor.java',60,60,'org.apache.camel.cdi.CdiCamelBeanPostProcessor','injectFields(Object, String)',NULL),(4230,'TODO: proper support for custom context qualifiers','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelBeanPostProcessor.java',112,112,'org.apache.camel.cdi.CdiCamelBeanPostProcessor','getOrLookupCamelContext(String)',NULL),(4231,'TODO: remove when Camel Metrics component looks up for the Metrics registry by type only','Line','examples/camel-example-metrics-cdi/src/main/java/org/apache/camel/example/metrics/cdi/MetricsCdiConfig.java',37,37,'org.apache.camel.example.metrics.cdi.MetricsCdiConfig','None',NULL),(4232,'TODO: Should we not unsubscribe first?','Line','components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConsumer.java',66,66,'org.apache.camel.component.nats.NatsConsumer','getEndpoint()','DESIGN'),(4233,'None','None','components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConsumer.java',-1,-1,'None','None',NULL),(4234,'TODO: the host header is removed in bridgeEndpoint in the http4 producer, that seems wrong\nas Camel as a reverse-proxy should update the host header accordingly','Line','tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyBridgeHostHeaderIssueTest.java',34,35,'org.apache.camel.itest.jetty.JettyBridgeHostHeaderIssueTest','testHostHeader()',NULL),(4235,'XXX assumes there is only one stream','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumer.java',104,104,'org.apache.camel.component.aws.ddbstream.DdbStreamConsumer','getShardItertor()',NULL),(4236,'XXX assumes there is only one stream','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandler.java',36,36,'org.apache.camel.component.aws.ddbstream.ShardIteratorHandler','getShardIterator()',NULL),(4237,'XXX assumes there is only one stream','Line','components/camel-aws/src/main/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandler.java',52,52,'org.apache.camel.component.aws.ddbstream.ShardIteratorHandler','getShardIterator()',NULL),(4238,'TODO: would be more correct to add a bean for each Camel context bean','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelExtension.java',218,218,'org.apache.camel.cdi.CdiCamelExtension','cdiCamelFactoryProducers(AfterBeanDiscovery)',NULL),(4239,'TODO: would be more correct to add a bean for each Camel context bean','Line','components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelExtension.java',241,241,'org.apache.camel.cdi.CdiCamelExtension','afterBeanDiscovery(AfterBeanDiscovery, BeanManager)',NULL),(4240,'this channel is maybe closing graceful and the exchange is already done\nand if so we should not trigger an exception','Line','components/camel-netty4/src/main/java/org/apache/camel/component/netty4/handlers/ClientChannelHandler.java',114,115,'org.apache.camel.component.netty4.handlers.ClientChannelHandler','channelInactive(ChannelHandlerContext)',NULL),(4241,'this channel is maybe closing graceful and the exchange is already done\nand if so we should not trigger an exception','Line','components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ClientChannelHandler.java',117,118,'org.apache.camel.component.netty.handlers.ClientChannelHandler','channelClosed(ChannelHandlerContext, ChannelStateEvent)',NULL),(4242,'TODO: use some template like velocity or freemarker','Line','tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java',112,112,'org.apache.camel.maven.packaging.ReadmeComponentMojo','updateReadMeFile(File, String, String)','DESIGN'),(4243,'None','None','tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java',-1,-1,'None','None',NULL),(4244,'TODO: reloading all type converters when one service is removed is suboptimal...','Line','components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java',84,84,'org.apache.camel.core.osgi.OsgiTypeConverter','removedService(ServiceReference<TypeConverterLoader>, Object)',NULL),(4245,'TODO: remove when Camel Metrics component looks up for the Metrics registry by type only','Line','examples/camel-example-metrics-cdi/src/main/java/org/apache/camel/example/metrics/cdi/MetricsCdiConfig.java',39,39,'org.apache.camel.example.metrics.cdi.MetricsCdiConfig','None',NULL),(4246,'TODO: remove when Camel Metrics component looks up for the Metrics registry by type only','Line','examples/camel-example-cdi-metrics/src/main/java/org/apache/camel/example/cdi/metrics/MetricsCdiConfig.java',39,39,'org.apache.camel.example.cdi.metrics.MetricsCdiConfig','None',NULL),(4247,'TODO: remove when Camel Metrics component looks up for the Metrics registry by type only','Line','examples/camel-example-cdi-metrics/src/main/java/org/apache/camel/example/cdi/metrics/Application.java',96,96,'org.apache.camel.example.cdi.metrics.Application','configure()',NULL),(4248,'Register a custom gauge that\'s the ratio of the \'success\' meter on the \'generated\' meter\nTODO: use a lambda expression and parameter names when Java 8 is a pre-requisite','Line','examples/camel-example-cdi-metrics/src/main/java/org/apache/camel/example/cdi/metrics/Application.java',101,102,'org.apache.camel.example.cdi.metrics.Application','successRatio(Meter, Meter)',NULL),(4249,'depending on what kind of error handler we should','Line','camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java',1103,1103,'org.apache.camel.processor.RedeliveryErrorHandler','logFailedDelivery(boolean, boolean, boolean, boolean, boolean, Exchange, String, RedeliveryData, Throwable)','NOT_DESIGN'),(4250,'do not log handled','Line','camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java',1104,1104,'org.apache.camel.processor.RedeliveryErrorHandler','logFailedDelivery(boolean, boolean, boolean, boolean, boolean, Exchange, String, RedeliveryData, Throwable)',NULL),(4251,'TODO: favor using mapper readValue\nif the input is string or input stream','Line','components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java',78,79,'org.apache.camel.component.jackson.converter.JacksonTypeConverters','convertTo(Class<T>, Exchange, Object, TypeConverterRegistry)','DESIGN'),(4252,'if the source value type is readable by the mapper then use its read operation','Line','components/camel-jackson/src/main/java/org/apache/camel/component/jackson/converter/JacksonTypeConverters.java',102,102,'org.apache.camel.component.jackson.converter.JacksonTypeConverters','convertTo(Class<T>, Exchange, Object, TypeConverterRegistry)',NULL),(4253,'Potentially EntityManager could be in an inconsistent state after transaction rollback,\nso disposing it to have it recreated in next poll. cf. Java Persistence API 3.3.2 Transaction Rollback','Line','components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java',139,140,'org.apache.camel.component.jpa.JpaConsumer','poll()',NULL),(4254,'TODO: remove when Camel Metrics component looks up for the Metrics registry by type only','Line','examples/camel-example-cdi-metrics/src/main/java/org/apache/camel/example/cdi/metrics/Application.java',97,97,'org.apache.camel.example.cdi.metrics.Application','configure()','DESIGN'),(4255,'None','None','examples/camel-example-cdi-metrics/src/main/java/org/apache/camel/example/cdi/metrics/Application.java',-1,-1,'None','None',NULL),(4256,'TODO: This is supported out of the box from ActiveMQ 5.14 onwards, and hence remove OriginalDestinationPropagateStrategy','Line','components/camel-jms/src/test/java/org/apache/camel/component/jms/ActiveMQOriginalDestinationTest.java',97,97,'org.apache.camel.component.jms.ActiveMQOriginalDestinationTest','onMessageCreated(Message, Session, Exchange, Throwable)',NULL),(4257,'TODO: why only object or text messages?','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/SjmsBatchConsumer.java',286,286,'org.apache.camel.component.sjms.batch.SjmsBatchConsumer','consumeBatchesOnLoop(Session, MessageConsumer, AtomicBoolean)',NULL),(4258,'TODO: why only object or text messages?','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/SjmsBatchConsumer.java',319,319,'org.apache.camel.component.sjms.batch.SjmsBatchConsumer','consumeBatchesOnLoop(Session, MessageConsumer)',NULL),(4259,'TODO: why only object or text messages?','Line','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/SjmsBatchConsumer.java',330,330,'org.apache.camel.component.sjms.batch.SjmsBatchConsumer','consumeBatchesOnLoop(Session, MessageConsumer)','DESIGN'),(4260,'None','None','components/camel-sjms/src/main/java/org/apache/camel/component/sjms/batch/SjmsBatchConsumer.java',-1,-1,'None','None',NULL),(4261,'TODO: document me','Line','components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdEndpoint.java',37,37,'org.apache.camel.component.etcd.AbstractEtcdEndpoint','None','NOT_DESIGN'),(4262,'None','None','components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdEndpoint.java',-1,-1,'None','None',NULL),(4263,'regular REST service should still work','Line','components/camel-spark-rest/src/test/java/org/apache/camel/component/sparkrest/RestApiSparkTest.java',40,40,'org.apache.camel.component.sparkrest.RestApiSparkTest','testApi()',NULL),(4264,'None','None','src/main/java/org/apache/camel/component/gridfs/GridFsProducer.java',-1,-1,'None','None',NULL),(4265,'TODO: Logging','Line','src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java',93,93,'org.apache.camel.component.gridfs.GridFsConsumer','run()',NULL),(4266,'[TODO] Remove in 3.0','Line','camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java',299,299,'org.apache.camel.impl.DefaultCamelContext','adapt(Class<T>)','DESIGN'),(4267,'Note: This is done on context start as we want to avoid doing it during object construction\nwhere we could be dealing with CDI proxied camel contexts which may never be started (CAMEL-9657)\n[TODO] Remove in 3.0','Line','camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java',2796,2798,'org.apache.camel.impl.DefaultCamelContext','start()',NULL),(4268,'TODO set the corralationID','Line','components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/adapter/CamelSourceAdapter.java',78,78,'org.apache.camel.component.spring.integration.adapter.CamelSourceAdapter','process(Exchange)',NULL),(4269,'TODO set the correlationID','Line','components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/adapter/CamelSourceAdapter.java',79,79,'org.apache.camel.component.spring.integration.adapter.CamelSourceAdapter','process(Exchange)',NULL),(4270,'TODO: Logging','Line','components/camel-gridfs/src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java',91,91,'org.apache.camel.component.gridfs.GridFsConsumer','run()',NULL),(4271,'TODO: Logging','Line','components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java',91,91,'org.apache.camel.component.gridfs.GridFsConsumer','run()',NULL),(4272,'TODO: use a proper CreationalContext...','Line','components/camel-test-cdi/src/main/java/org/apache/camel/test/cdi/FrameworkMethodCdiInjection.java',45,45,'org.apache.camel.test.cdi.FrameworkMethodCdiInjection','evaluate()',NULL),(4273,'TODO: check parallel execution','Line','components/camel-test-cdi/src/main/java/org/apache/camel/test/cdi/CamelCdiDeployment.java',37,37,'org.apache.camel.test.cdi.CamelCdiDeployment','apply(Statement, Description)',NULL),(4274,'TODO: manage lifecycle of @Dependent beans','Line','components/camel-test-cdi/src/main/java/org/apache/camel/test/cdi/CamelCdiRunner.java',88,88,'org.apache.camel.test.cdi.CamelCdiRunner','createTest()',NULL),(4275,'it cannot be converted so give up','Line','camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java',340,340,'org.apache.camel.impl.converter.BaseTypeConverterRegistry','getTypeConverterLoaders()',NULL),(4276,'it cannot be converted so give up','Line','camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java',353,353,'org.apache.camel.impl.converter.BaseTypeConverterRegistry','getCamelContext()',NULL),(4277,'TODO: add support for async callback in the send','Line','components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java',100,100,'org.apache.camel.component.kafka.KafkaProducer','process(Exchange)',NULL),(4278,'ignore as filter is maybe not a pattern','Line','platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CatalogComponentInfoCommand.java',135,135,'org.apache.camel.commands.CatalogComponentInfoCommand','matchLabel(Map<String, Object>)',NULL),(4279,'KarafDistributionOption.keepRuntimeFolder(),\noverride the config.properties (to fix pax-exam bug)\nKarafDistributionOption.replaceConfigurationFile(\\\"etc/config.properties\\\", new File(\\\"src/test/resources/org/apache/camel/itest/karaf/config.properties\\\")),\nUpdate the jre.properties to export the sun.misc package','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java',233,236,'org.apache.camel.itest.karaf.AbstractFeatureTest','configure(String, String...)','NOT_DESIGN'),(4280,'install the unit test','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java',244,244,'org.apache.camel.itest.karaf.AbstractFeatureTest','configure(String, String...)',NULL),(4281,'install the features','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java',247,247,'org.apache.camel.itest.karaf.AbstractFeatureTest','configure(String, String...)',NULL),(4282,'TODO:  Add tests for dataSetIndex URI parameters','Line','camel-core/src/test/java/org/apache/camel/component/dataset/DataSetConsumerTest.java',94,94,'org.apache.camel.component.dataset.DataSetConsumerTest','testWithDisableDataSetIndexUriParameterUnset()','NOT_DESIGN'),(4283,'None','None','camel-core/src/test/java/org/apache/camel/component/dataset/DataSetConsumerTest.java',-1,-1,'None','None',NULL),(4284,'We don\'t use Reader#read(CharBuffer) here because it is more efficient\nto write directly to the underlying char array (the default implementation\ncopies data to a temporary char array).','Line','components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/ReaderInputStream.java',194,196,'org.apache.camel.component.cxf.util.ReaderInputStream','fillBuffer()',NULL),(4285,'Has to be done later, maybe CamelTestSupport should','Line','components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanClusterTestSupport.java',102,102,'org.apache.camel.component.infinispan.InfinispanClusterTestSupport','tearDown()',NULL),(4286,'TODO: use a ID generator?','Line','components/camel-cm/src/main/java/org/apache/camel/component/cm/CMMessage.java',31,31,'org.apache.camel.component.cm.CMMessage','None',NULL),(4287,'This is the camel exchange processor. Allows to send messages to CM\nAPI.\nTODO: Should i provide a CMSender factory? Dynamically choose\nCMSender implementation? Sending strategy?\nConsider:\n1. single - Single Message strategy.\n2. Multi - CM Api supports to 1000 messages per call.\n3. sliding - sliding window? 1000 messages or time thresold?\n4. mocked - in order to fake cm responses','Line','components/camel-cm/src/main/java/org/apache/camel/component/cm/CMEndpoint.java',77,85,'org.apache.camel.component.cm.CMEndpoint','createProducer()',NULL),(4288,'TODO: Have a look at\nhttps:// github.com/apache/camel/blob/master/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppUtils.java','Line','components/camel-cm/src/main/java/org/apache/camel/component/cm/CMUtils.java',28,29,'org.apache.camel.component.cm.CMUtils','None',NULL),(4289,'TODO: Review this pattern.\nor it should be foundnd an alternative to jcharset to check if a message is GSM 03.38 encodable\nSee:\nhttps://en.wikipedia.org/wiki/GSM_03.38\nhttp://frightanic.com/software-development/regex-for-gsm-03-38-7bit-character-set/','Line','components/camel-cm/src/main/java/org/apache/camel/component/cm/CMConstants.java',37,41,'org.apache.camel.component.cm.CMConstants','None',NULL),(4290,'TODO: use a ID generator?','Line','components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMMessage.java',31,31,'org.apache.camel.component.cm.CMMessage','None',NULL),(4291,'TODO: Review this pattern.\nor it should be foundnd an alternative to jcharset to check if a message is GSM 03.38 encodable\nSee:\nhttps://en.wikipedia.org/wiki/GSM_03.38\nhttp://frightanic.com/software-development/regex-for-gsm-03-38-7bit-character-set/','Line','components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMConstants.java',37,41,'org.apache.camel.component.cm.CMConstants','None',NULL),(4292,'TODO: Have a look at\nhttps:// github.com/apache/camel/blob/master/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppUtils.java','Line','components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMUtils.java',28,29,'org.apache.camel.component.cm.CMUtils','None',NULL),(4293,'This is the camel exchange processor. Allows to send messages to CM\nAPI.\nTODO: Should i provide a CMSender factory? Dynamically choose\nCMSender implementation? Sending strategy?\nConsider:\n1. single - Single Message strategy.\n2. Multi - CM Api supports to 1000 messages per call.\n3. sliding - sliding window? 1000 messages or time thresold?\n4. mocked - in order to fake cm responses','Line','components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMEndpoint.java',53,61,'org.apache.camel.component.cm.CMEndpoint','createProducer()',NULL),(4294,'TODO: Must not rely on dependency injection as it should work out of the box','Line','components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMComponent.java',42,42,'org.apache.camel.component.cm.CMComponent','None',NULL),(4295,'Workaround for the case when the entry is zero bytes big','Line','components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipIterator.java',111,111,'org.apache.camel.dataformat.zipfile.ZipIterator','getNextElement()',NULL),(4296,'TODO : sleep before joinChannels() may be another useful config param (even when not identifying)\nsleep for a few seconds as the server sometimes takes a moment to fully connect, print banners, etc after connection established','Line','components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConsumer.java',65,66,'org.apache.camel.component.irc.IrcConsumer','doStart()',NULL),(4297,'do not refresh bundles causing out bundle context to be invalid\nTODO: see if we can find a way maybe to install camel.xml as bundle/feature instead of part of unit test (see src/test/resources/OSGI-INF/blueprint)','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java',104,105,'org.apache.camel.itest.karaf.AbstractFeatureTest','testComponent(String, String)','DESIGN'),(4298,'TODO: spring javaconfig is being removed in Camel 3.0','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelSpringJavaconfigTest.java',32,32,'org.apache.camel.itest.karaf.CamelSpringJavaconfigTest','test()','DESIGN'),(4299,'None','None','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelSpringJavaconfigTest.java',-1,-1,'None','None',NULL),(4300,'None','None','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelBamTest.java',-1,-1,'None','None',NULL),(4301,'None','None','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelGuiceTest.java',-1,-1,'None','None',NULL),(4302,'None','None','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelScalaTest.java',-1,-1,'None','None',NULL),(4303,'None','None','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelJosqlTest.java',-1,-1,'None','None',NULL),(4304,'do not refresh bundles causing out bundle context to be invalid\nTODO: see if we can find a way maybe to install camel.xml as bundle/feature instead of part of unit test (see src/test/resources/OSGI-INF/blueprint)','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java',99,100,'org.apache.camel.itest.karaf.AbstractFeatureTest','installCamelFeature(String)',NULL),(4305,'TODO: the lucene bundle do not work - a new SMX bundle is on the way','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelLuceneTest.java',30,30,'org.apache.camel.itest.karaf.CamelLuceneTest','test()',NULL),(4306,'TODO: fails as javax bean validator must be installed also','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelCmSmsTest.java',30,30,'org.apache.camel.itest.karaf.CamelCmSmsTest','test()',NULL),(4307,'TODO: need to expose com.sun.tools.xjc in jre.properties','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelJbpmTest.java',32,32,'org.apache.camel.itest.karaf.CamelJbpmTest','test()',NULL),(4308,'TODO: we need to install some ignite stuff first (see the info of camel feature)','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelIgniteTest.java',32,32,'org.apache.camel.itest.karaf.CamelIgniteTest','test()',NULL),(4309,'TODO: need to expose com.sun.source.tree in jre.properties','Line','tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelOptaplannerTest.java',30,30,'org.apache.camel.itest.karaf.CamelOptaplannerTest','test()',NULL),(4310,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.','Line','mgrapp/src/com/google/codereview/manager/merge/MergeOp.java',188,195,'com.google.codereview.manager.merge.MergeOp','validateChangeList()',NULL),(4311,'TODO show error','Line','webapp/src/com/google/gerrit/client/Link.java',44,44,'com.google.gerrit.client.Link','onHistoryChanged(String)',NULL),(4312,'TODO on bad URL','Line','webapp/src/com/google/gerrit/client/Link.java',46,46,'com.google.gerrit.client.Link','onHistoryChanged(String)',NULL),(4313,'TODO We shouldn\'t hard-code the XRDS discovery result.\n','Line','webapp/src/com/google/gerrit/server/GoogleAccountDiscovery.java',39,40,'com.google.gerrit.server.GoogleAccountDiscovery','discover(String, OpenIdContext)',NULL),(4314,'Assume the schema doesn\'t exist, and create it.\nTODO Implement schema upgrades and/or exporting to a script file.\n','Line','webapp/src/com/google/gerrit/server/GerritServer.java',161,163,'com.google.gerrit.server.GerritServer','readSystemConfig()',NULL),(4315,'TODO on bad URL','Line','webapp/src/com/google/gerrit/client/Link.java',54,54,'com.google.gerrit.client.Link','onHistoryChanged(String)','NOT_DESIGN'),(4316,'None','None','webapp/src/com/google/gerrit/client/Link.java',-1,-1,'None','None',NULL),(4317,'TODO Someday this should be a menu of choices.','Line','webapp/src/com/google/gerrit/server/UrlRewriteFilter.java',213,213,'com.google.gerrit.server.UrlRewriteFilter','bareRevisionId(String, HttpServletRequest, HttpServletResponse)',NULL),(4318,'TODO Someday this should be a menu of choices.','Line','webapp/src/com/google/gerrit/server/UrlRewriteFilter.java',250,250,'com.google.gerrit.server.UrlRewriteFilter','bareUserEmailDashboard(String, HttpServletRequest, HttpServletResponse)',NULL),(4319,'TODO Actually we want to cancel the RPC if detached.','Line','webapp/src/com/google/gerrit/client/changes/AccountDashboardScreen.java',65,65,'com.google.gerrit.client.changes.AccountDashboardScreen','onLoad()',NULL),(4320,'TODO Actually we want to cancel the RPC if detached.','Line','webapp/src/com/google/gerrit/client/changes/ChangeScreen.java',99,99,'com.google.gerrit.client.changes.ChangeScreen','onLoad()',NULL),(4321,'Assume the schema doesn\'t exist, and create it.\nTODO Implement schema upgrades and/or exporting to a script file.\n','Line','webapp/src/com/google/gerrit/server/GerritServer.java',185,187,'com.google.gerrit.server.GerritServer','readSystemConfig()',NULL),(4322,'Assume the schema doesn\'t exist, and create it.\nTODO Implement schema upgrades and/or exporting to a script file.\n','Line','webapp/src/com/google/gerrit/server/GerritServer.java',187,189,'com.google.gerrit.server.GerritServer','loadSystemConfig()',NULL),(4323,'TODO populate the account role','Line','webapp/src/com/google/gerrit/client/changes/ApprovalTable.java',97,97,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4324,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/changes/ChangeScreen.java',255,255,'com.google.gerrit.client.changes.ChangeScreen','addMessages(ChangeDetail)',NULL),(4325,'TODO Mark self-approved, self-verified if permitted.','Line','webapp/src/com/google/gerrit/client/data/ChangeDetail.java',63,63,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)',NULL),(4326,'TODO Sort starred changes by something other than just Id','Line','webapp/src/com/google/gerrit/client/changes/ChangeListServiceImpl.java',97,97,'com.google.gerrit.client.changes.ChangeListServiceImpl','myStarredChanges(AsyncCallback<MineStarredInfo>)',NULL),(4327,'TODO sort neededBy by something more reasonable than Id','Line','webapp/src/com/google/gerrit/client/data/ChangeDetail.java',130,130,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)',NULL),(4328,'TODO Actually we want to cancel the RPC if detached.','Line','webapp/src/com/google/gerrit/client/patches/PatchUnifiedScreen.java',39,39,'com.google.gerrit.client.patches.PatchUnifiedScreen','onLoad()',NULL),(4329,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/patches/UnifiedDiffTable.java',106,106,'com.google.gerrit.client.patches.UnifiedDiffTable','populate(int, PatchLineComment, boolean)',NULL),(4330,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/patches/SideBySideTable.java',279,279,'com.google.gerrit.client.patches.SideBySideTable','bindComment(int, int, PatchLineComment, boolean)',NULL),(4331,'TODO Actually we want to cancel the RPC if detached.','Line','webapp/src/com/google/gerrit/client/patches/PatchSideBySideScreen.java',40,40,'com.google.gerrit.client.patches.PatchSideBySideScreen','onLoad()',NULL),(4332,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/patches/AbstractPatchContentTable.java',68,68,'com.google.gerrit.client.patches.AbstractPatchContentTable','bindComment(int, int, PatchLineComment, boolean)',NULL),(4333,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/patches/UnifiedDiffTable.java',115,115,'com.google.gerrit.client.patches.UnifiedDiffTable','populate(int, PatchLineComment, boolean)',NULL),(4334,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/patches/AbstractPatchContentTable.java',74,74,'com.google.gerrit.client.patches.AbstractPatchContentTable','getRowItemKey(Object)',NULL),(4335,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/patches/AbstractPatchContentTable.java',134,134,'com.google.gerrit.client.patches.AbstractPatchContentTable','createFlexTable()',NULL),(4336,'Assume the schema doesn\'t exist, and create it.\nTODO Implement schema upgrades and/or exporting to a script file.\n','Line','webapp/src/com/google/gerrit/server/GerritServer.java',198,200,'com.google.gerrit.server.GerritServer','loadSystemConfig()',NULL),(4337,'Assume the schema doesn\'t exist, and create it.\nTODO Implement schema upgrades and/or exporting to a script file.\n','Line','appjar/src/main/java/com/google/gerrit/server/GerritServer.java',198,200,'com.google.gerrit.server.GerritServer','loadSystemConfig()',NULL),(4338,'TODO We shouldn\'t hard-code the XRDS discovery result.\n','Line','appjar/src/main/java/com/google/gerrit/server/GoogleAccountDiscovery.java',39,40,'com.google.gerrit.server.GoogleAccountDiscovery','discover(String, OpenIdContext)',NULL),(4339,'TODO populate the account role','Line','webapp/src/com/google/gerrit/client/changes/ApprovalTable.java',110,110,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4340,'TODO populate the account role','Line','appjar/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',110,110,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4341,'TODO Actually we want to cancel the RPC if detached.','Line','webapp/src/com/google/gerrit/client/changes/ChangeScreen.java',100,100,'com.google.gerrit.client.changes.ChangeScreen','onLoad()',NULL),(4342,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',100,100,'com.google.gerrit.client.changes.ChangeScreen','onLoad()',NULL),(4343,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','webapp/src/com/google/gerrit/client/changes/ChangeScreen.java',269,269,'com.google.gerrit.client.changes.ChangeScreen','addMessages(ChangeDetail)',NULL),(4344,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',269,269,'com.google.gerrit.client.changes.ChangeScreen','addMessages(ChangeDetail)',NULL),(4345,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/patches/PatchSideBySideScreen.java',40,40,'com.google.gerrit.client.patches.PatchSideBySideScreen','onLoad()',NULL),(4346,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','appjar/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',134,134,'com.google.gerrit.client.patches.AbstractPatchContentTable','createFlexTable()',NULL),(4347,'TODO Someday this should be a menu of choices.','Line','webapp/src/com/google/gerrit/server/UrlRewriteFilter.java',208,208,'com.google.gerrit.server.UrlRewriteFilter','bareRevisionId(String, HttpServletRequest, HttpServletResponse)',NULL),(4348,'TODO Someday this should be a menu of choices.','Line','appjar/src/main/java/com/google/gerrit/server/UrlRewriteFilter.java',208,208,'com.google.gerrit.server.UrlRewriteFilter','bareRevisionId(String, HttpServletRequest, HttpServletResponse)',NULL),(4349,'TODO Someday this should be a menu of choices.','Line','webapp/src/com/google/gerrit/server/UrlRewriteFilter.java',245,245,'com.google.gerrit.server.UrlRewriteFilter','bareUserEmailDashboard(String, HttpServletRequest, HttpServletResponse)',NULL),(4350,'TODO Someday this should be a menu of choices.','Line','appjar/src/main/java/com/google/gerrit/server/UrlRewriteFilter.java',245,245,'com.google.gerrit.server.UrlRewriteFilter','bareUserEmailDashboard(String, HttpServletRequest, HttpServletResponse)',NULL),(4351,'TODO Mark self-approved, self-verified if permitted.','Line','webapp/src/com/google/gerrit/client/data/ChangeDetail.java',67,67,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)',NULL),(4352,'TODO Mark self-approved, self-verified if permitted.','Line','appjar/src/main/java/com/google/gerrit/client/data/ChangeDetail.java',67,67,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)','NOT_DESIGN'),(4353,'TODO sort neededBy by something more reasonable than Id','Line','webapp/src/com/google/gerrit/client/data/ChangeDetail.java',131,131,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)',NULL),(4354,'TODO sort neededBy by something more reasonable than Id','Line','appjar/src/main/java/com/google/gerrit/client/data/ChangeDetail.java',131,131,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)',NULL),(4355,'TODO Sort starred changes by something other than just Id','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeListServiceImpl.java',97,97,'com.google.gerrit.client.changes.ChangeListServiceImpl','myStarredChanges(AsyncCallback<MineStarredInfo>)',NULL),(4356,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java',65,65,'com.google.gerrit.client.changes.AccountDashboardScreen','onLoad()',NULL),(4357,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/patches/PatchUnifiedScreen.java',39,39,'com.google.gerrit.client.patches.PatchUnifiedScreen','onLoad()',NULL),(4358,'TODO log mark invalid failure','Line','appjar/src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',76,76,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','markInvalid(AccountSshKey)',NULL),(4359,'TODO log update last used failure','Line','appjar/src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',90,90,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','updateLastUsed(AccountSshKey)',NULL),(4360,'TODO log accounts with duplicate emails','Line','appjar/src/main/java/com/google/gerrit/server/ssh/SshUtil.java',97,97,'com.google.gerrit.server.ssh.SshUtil','keysFor(SchemaFactory<ReviewDb>, String)',NULL),(4361,'TODO log database query error','Line','appjar/src/main/java/com/google/gerrit/server/ssh/SshUtil.java',105,105,'com.google.gerrit.server.ssh.SshUtil','keysFor(SchemaFactory<ReviewDb>, String)',NULL),(4362,'TODO verify user has signed a CLA for this project','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',106,106,'com.google.gerrit.server.ssh.Receive','run(String[])','DESIGN'),(4363,'TODO create new change records','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',119,119,'com.google.gerrit.server.ssh.Receive','run(String[])',NULL),(4364,'TODO Append new commits to existing changes','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',123,123,'com.google.gerrit.server.ssh.Receive','run(String[])',NULL),(4365,'None','None','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',-1,-1,'None','None',NULL),(4366,'TODO verify user has signed a CLA for this project','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',62,62,'com.google.gerrit.server.ssh.Receive','runImpl()',NULL),(4367,'TODO create new change records','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',75,75,'com.google.gerrit.server.ssh.Receive','runImpl()','NOT_DESIGN'),(4368,'TODO Append new commits to existing changes','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',79,79,'com.google.gerrit.server.ssh.Receive','runImpl()','NOT_DESIGN'),(4369,'TODO Verify the user can access this project.','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Upload.java',27,27,'com.google.gerrit.server.ssh.Upload','runImpl()','NOT_DESIGN'),(4370,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',286,288,'com.google.gerrit.server.ssh.Receive','createNewChanges(ReceivePack)',NULL),(4371,'TODO list the new change id','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',323,323,'com.google.gerrit.server.ssh.Receive','createChange(RevWalk, RevCommit)',NULL),(4372,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',288,290,'com.google.gerrit.server.ssh.Receive','createNewChanges()',NULL),(4373,'TODO list the new change id','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',325,325,'com.google.gerrit.server.ssh.Receive','createChange(RevWalk, RevCommit)','NOT_DESIGN'),(4374,'TODO verify user has signed a CLA for this project','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',84,84,'com.google.gerrit.server.ssh.Receive','runImpl()','DESIGN'),(4375,'TODO log accounts with duplicate emails','Line','appjar/src/main/java/com/google/gerrit/server/ssh/SshUtil.java',173,173,'com.google.gerrit.server.ssh.SshUtil','keysFor(SchemaFactory<ReviewDb>, String)','NOT_DESIGN'),(4376,'None','None','appjar/src/main/java/com/google/gerrit/server/ssh/SshUtil.java',-1,-1,'None','None',NULL),(4377,'TODO log mark invalid failure','Line','appjar/src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',79,79,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','markInvalid(AccountSshKey)',NULL),(4378,'TODO log mark invalid failure','Line','appjar/src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',103,103,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','markInvalid(String, AccountSshKey)',NULL),(4379,'None','None','appjar/src/main/java/com/google/gerrit/client/data/ChangeDetail.java',-1,-1,'None','None',NULL),(4380,'TODO sort neededBy by something more reasonable than Id','Line','appjar/src/main/java/com/google/gerrit/client/data/ChangeDetail.java',136,136,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, RightRule, Change)',NULL),(4381,'Contains a path separator. Don\'t serve it as the client\nmight be trying something evil like \\\"/../../etc/passwd\\\".\nThis static servlet is just meant to facilitate simple\nassets like banner images.\n','Line','appjar/src/main/java/com/google/gerrit/server/StaticServlet.java',119,123,'com.google.gerrit.server.StaticServlet','local(HttpServletRequest)',NULL),(4382,'TODO log database query error','Line','appjar/src/main/java/com/google/gerrit/server/ssh/SshUtil.java',190,190,'com.google.gerrit.server.ssh.SshUtil','keysFor(SchemaFactory<ReviewDb>, String)',NULL),(4383,'TODO log database query error','Line','appjar/src/main/java/com/google/gerrit/server/ssh/SshUtil.java',189,189,'com.google.gerrit.server.ssh.SshUtil','keysFor(String)',NULL),(4384,'TODO sort neededBy by something more reasonable than Id','Line','appjar/src/main/java/com/google/gerrit/client/data/ChangeDetail.java',138,138,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, RightRule, Change)',NULL),(4385,'TODO sort neededBy by something more reasonable than Id','Line','appjar/src/main/java/com/google/gerrit/client/data/ChangeDetail.java',146,146,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)',NULL),(4386,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',102,102,'com.google.gerrit.client.changes.ChangeScreen','onLoad()',NULL),(4387,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',118,118,'com.google.gerrit.client.changes.ChangeScreen','refresh()',NULL),(4388,'No set of actions, perhaps the user is not signed in?','Line','appjar/src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',126,126,'com.google.gerrit.client.changes.PatchSetPanel','populateActions(PatchSetDetail)',NULL),(4389,'TODO refresh change screen','Line','appjar/src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',149,149,'com.google.gerrit.client.changes.PatchSetPanel','populateActions(PatchSetDetail)','NOT_DESIGN'),(4390,'TODO Sort starred changes by something other than just Id','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeListServiceImpl.java',92,92,'com.google.gerrit.client.changes.ChangeListServiceImpl','myStarredChanges(AsyncCallback<MineStarredInfo>)','NOT_DESIGN'),(4391,'None','None','appjar/src/main/java/com/google/gerrit/client/changes/ChangeListServiceImpl.java',-1,-1,'None','None',NULL),(4392,'None','None','appjar/src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',-1,-1,'None','None',NULL),(4393,'This is *not* a good idea to change away from administrators.\n','Line','appjar/src/main/java/com/google/gerrit/server/ProjectAdminServiceImpl.java',107,108,'com.google.gerrit.server.ProjectAdminServiceImpl','changeProjectOwner(Project.Id, String, AsyncCallback<VoidResult>)',NULL),(4394,'None','None','appjar/src/main/java/com/google/gerrit/server/ssh/Upload.java',-1,-1,'None','None',NULL),(4395,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','appjar/src/main/java/com/google/gerrit/client/rpc/BaseServiceImplementation.java',103,107,'com.google.gerrit.client.rpc.BaseServiceImplementation','canRead(Project.NameKey)',NULL),(4396,'TODO Should be in init so we can cache.','Line','appjar/src/main/java/com/google/gerrit/server/LoginServlet.java',238,238,'com.google.gerrit.server.LoginServlet','chooseProvider(HttpServletRequest, HttpServletResponse)',NULL),(4397,'The hosted mode debugger chokes on our return redirect now,\nand I cannot figure out why. So we use a top level page\ninstead, even if the site would have allowed it.\n\nNot all OpenID providers permit their login pages to be\nembedded into an IFRAME. Only those that we know work\nare permitted to stay inside of the IFRAME, everyone else\nhas to use this logic to replace the page with that of the\nprovider, and eventually redirect back to the same anchor.\n','Line','appjar/src/main/java/com/google/gerrit/client/openid/Login.java',158,167,'com.google.gerrit.client.openid.Login','onSubmit(FormSubmitEvent)',NULL),(4398,'TODO Should be in init so we can cache.','Line','appjar/src/main/java/com/google/gerrit/server/LoginServlet.java',249,249,'com.google.gerrit.server.LoginServlet','chooseProvider(HttpServletRequest, HttpServletResponse)','NOT_DESIGN'),(4399,'None','None','appjar/src/main/java/com/google/gerrit/server/LoginServlet.java',-1,-1,'None','None',NULL),(4400,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','appjar/src/main/java/com/google/gerrit/server/GerritCall.java',134,137,'com.google.gerrit.server.GerritCall','assumeHttp()',NULL),(4401,'We cannot merge n as it would bring something we\naren\'t permitted to merge at this time. Drop n.\n','Line','appjar/src/main/java/com/google/gerrit/git/MergeSorter.java',77,79,'com.google.gerrit.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4402,'Anything reachable through us is better merged by just\nmerging us directly. So prune our ancestors out and let\nus merge instead.\n','Line','appjar/src/main/java/com/google/gerrit/git/MergeSorter.java',94,97,'com.google.gerrit.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4403,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','appjar/src/main/java/com/google/gerrit/git/MergeOp.java',193,201,'com.google.gerrit.git.MergeOp','validateChangeList()',NULL),(4404,'TODO Don\'t write this message on every attempt.','Line','appjar/src/main/java/com/google/gerrit/git/MergeOp.java',414,414,'com.google.gerrit.git.MergeOp','updateChangeStatus()','NOT_DESIGN'),(4405,'TODO we should have better logging than stderr','Line','appjar/src/main/java/com/google/gerrit/git/MergeQueue.java',126,126,'com.google.gerrit.git.MergeQueue','terminate()','DESIGN'),(4406,'None','None','appjar/src/main/java/com/google/gerrit/git/MergeOp.java',-1,-1,'None','None',NULL),(4407,'Insert any approval I haven\'t earlier recorded, using the\nabsolute maximum value, ignoring permissions. It truncates\nat display time and when the issue is closed.\n','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',564,567,'com.google.gerrit.server.ssh.Receive','appendPatchSet(Change.Id, ReceiveCommand)',NULL),(4408,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','appjar/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',149,149,'com.google.gerrit.client.patches.AbstractPatchContentTable','createFlexTable()',NULL),(4409,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','appjar/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',200,200,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4410,'TODO we should probably confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','appjar/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',60,63,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4411,'Assume the schema doesn\'t exist, and create it.\nTODO Implement schema upgrades and/or exporting to a script file.\n','Line','appjar/src/main/java/com/google/gerrit/server/GerritServer.java',338,340,'com.google.gerrit.server.GerritServer','loadSystemConfig()','DESIGN'),(4412,'Assume the schema doesn\'t exist.\n','Line','appjar/src/main/java/com/google/gerrit/server/GerritServer.java',340,341,'com.google.gerrit.server.GerritServer','loadSystemConfig()',NULL),(4413,'TODO We shouldn\'t hard-code the XRDS discovery result.\n','Line','appjar/src/main/java/com/google/gerrit/server/GoogleAccountDiscovery.java',41,42,'com.google.gerrit.server.GoogleAccountDiscovery','discover(String, OpenIdContext)',NULL),(4414,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','appjar/src/main/java/com/google/gerrit/client/rpc/BaseServiceImplementation.java',114,118,'com.google.gerrit.client.rpc.BaseServiceImplementation','canRead(Project.NameKey)',NULL),(4415,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','appjar/src/main/java/com/google/gerrit/client/rpc/BaseServiceImplementation.java',119,123,'com.google.gerrit.client.rpc.BaseServiceImplementation','canRead(Account.Id, Project.NameKey)',NULL),(4416,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',181,183,'com.google.gerrit.server.ChangeMail','commentTo()',NULL),(4417,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',301,304,'com.google.gerrit.server.ChangeMail','gerritHost()',NULL),(4418,'If the only recipient is because we CC\'d the user we are sending\nfrom, this message isn\'t very worthwhile. Users shouldn\'t use\nus in order to email themselves.\n','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',337,340,'com.google.gerrit.server.ChangeMail','send()','DESIGN'),(4419,'If the only recipient is also the sender, don\'t bother.\n','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',517,518,'com.google.gerrit.server.ChangeMail','haveRcptTo()',NULL),(4420,'TODO Log (like everything else) email send failures','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',511,511,'com.google.gerrit.server.ssh.Receive','createChange(RevWalk, RevCommit)',NULL),(4421,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',278,280,'com.google.gerrit.server.ChangeMail','newChangeTo()',NULL),(4422,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/patches/PatchSideBySideScreen.java',61,61,'com.google.gerrit.client.patches.PatchSideBySideScreen','None',NULL),(4423,'TODO Fix this gross hack so we aren\'t running git diff-tree for\nan interdiff file side by side view.\n','Line','appjar/src/main/java/com/google/gerrit/server/patch/PatchDetailAction.java',135,137,'com.google.gerrit.server.patch.PatchDetailAction','readFileHeader(ReviewDb)',NULL),(4424,'TODO Log (like everything else) email send failures','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',535,535,'com.google.gerrit.server.ssh.Receive','createChange(RevWalk, RevCommit)','NOT_DESIGN'),(4425,'None','None','appjar/src/main/java/com/google/gerrit/git/MergeQueue.java',-1,-1,'None','None',NULL),(4426,'We\'re too short and there are no horizontal tabs, line is fine\nas-is so bypass the longer line wrapping code below.','Line','appjar/src/main/java/com/google/gerrit/client/patches/PatchUtil.java',59,60,'com.google.gerrit.client.patches.PatchUtil','wrapLines(String, boolean, int)',NULL),(4427,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','appjar/src/main/java/com/google/gerrit/client/rpc/BaseServiceImplementation.java',122,126,'com.google.gerrit.client.rpc.BaseServiceImplementation','canRead(Account.Id, Project.NameKey)',NULL),(4428,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','appjar/src/main/java/com/google/gerrit/client/rpc/BaseServiceImplementation.java',127,131,'com.google.gerrit.client.rpc.BaseServiceImplementation','canPerform(Set<AccountGroup.Id>, ProjectCache.Entry, ApprovalCategory.Id, short, boolean)',NULL),(4429,'Insert any approval I haven\'t earlier recorded, using the\nabsolute maximum value, ignoring permissions. It truncates\nat display time and when the issue is closed.\n','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',786,789,'com.google.gerrit.server.ssh.Receive','runImpl()','NOT_DESIGN'),(4430,'TODO sort neededBy by something more reasonable than Id','Line','appjar/src/main/java/com/google/gerrit/client/data/ChangeDetail.java',162,162,'com.google.gerrit.client.data.ChangeDetail','load(ReviewDb, AccountInfoCacheFactory, Change)','DESIGN'),(4431,'Anonymous Git is claimed to be available, and this project\nisn\'t secured. The anonymous Git daemon will be much more\nefficient than our own SSH daemon, so prefer offering it.\n','Line','appjar/src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',190,193,'com.google.gerrit.client.changes.PatchSetPanel','displayDownload()',NULL),(4432,'TODO Actually we want to cancel the RPC if detached.','Line','src/main/java/com/google/gerrit/client/patches/PatchUnifiedScreen.java',39,39,'com.google.gerrit.client.patches.PatchUnifiedScreen','onLoad()','DESIGN'),(4433,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','appjar/src/main/java/com/google/gerrit/git/MergeOp.java',195,203,'com.google.gerrit.git.MergeOp','validateChangeList()',NULL),(4434,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','src/main/java/com/google/gerrit/git/MergeOp.java',195,203,'com.google.gerrit.git.MergeOp','validateChangeList()',NULL),(4435,'TODO Fix this gross hack so we aren\'t running git diff-tree for\nan interdiff file side by side view.\n','Line','src/main/java/com/google/gerrit/server/patch/PatchDetailAction.java',135,137,'com.google.gerrit.server.patch.PatchDetailAction','readFileHeader(ReviewDb)',NULL),(4436,'TODO Someday this should be a menu of choices.','Line','src/main/java/com/google/gerrit/server/UrlRewriteFilter.java',208,208,'com.google.gerrit.server.UrlRewriteFilter','bareRevisionId(String, HttpServletRequest, HttpServletResponse)','DESIGN'),(4437,'TODO Someday this should be a menu of choices.','Line','src/main/java/com/google/gerrit/server/UrlRewriteFilter.java',245,245,'com.google.gerrit.server.UrlRewriteFilter','bareUserEmailDashboard(String, HttpServletRequest, HttpServletResponse)',NULL),(4438,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',303,305,'com.google.gerrit.server.ChangeMail','newChangeTo()',NULL),(4439,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',303,305,'com.google.gerrit.server.ChangeMail','newChangeTo()',NULL),(4440,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',358,360,'com.google.gerrit.server.ChangeMail','commentTo()',NULL),(4441,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',358,360,'com.google.gerrit.server.ChangeMail','commentTo()',NULL),(4442,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','appjar/src/main/java/com/google/gerrit/server/ChangeMail.java',486,489,'com.google.gerrit.server.ChangeMail','gerritHost()',NULL),(4443,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',486,489,'com.google.gerrit.server.ChangeMail','gerritHost()',NULL),(4444,'We cannot merge n as it would bring something we\naren\'t permitted to merge at this time. Drop n.\n','Line','src/main/java/com/google/gerrit/git/MergeSorter.java',77,79,'com.google.gerrit.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4445,'Anything reachable through us is better merged by just\nmerging us directly. So prune our ancestors out and let\nus merge instead.\n','Line','src/main/java/com/google/gerrit/git/MergeSorter.java',94,97,'com.google.gerrit.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4446,'TODO log database query error','Line','src/main/java/com/google/gerrit/server/ssh/SshUtil.java',189,189,'com.google.gerrit.server.ssh.SshUtil','keysFor(String)',NULL),(4447,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','src/main/java/com/google/gerrit/client/rpc/BaseServiceImplementation.java',127,131,'com.google.gerrit.client.rpc.BaseServiceImplementation','canPerform(Set<AccountGroup.Id>, ProjectCache.Entry, ApprovalCategory.Id, short, boolean)',NULL),(4448,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',112,112,'com.google.gerrit.client.changes.ChangeScreen','refresh()',NULL),(4449,'TODO Actually we want to cancel the RPC if detached.','Line','src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',112,112,'com.google.gerrit.client.changes.ChangeScreen','refresh()',NULL),(4450,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','appjar/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',266,266,'com.google.gerrit.client.changes.ChangeScreen','addMessages(ChangeDetail)',NULL),(4451,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',266,266,'com.google.gerrit.client.changes.ChangeScreen','addMessages(ChangeDetail)',NULL),(4452,'TODO Actually we want to cancel the RPC if detached.','Line','appjar/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java',72,72,'com.google.gerrit.client.changes.AccountDashboardScreen','onLoad()',NULL),(4453,'TODO Actually we want to cancel the RPC if detached.','Line','src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java',72,72,'com.google.gerrit.client.changes.AccountDashboardScreen','onLoad()','DESIGN'),(4454,'Contains a path separator. Don\'t serve it as the client\nmight be trying something evil like \\\"/../../etc/passwd\\\".\nThis static servlet is just meant to facilitate simple\nassets like banner images.\n','Line','src/main/java/com/google/gerrit/server/StaticServlet.java',119,123,'com.google.gerrit.server.StaticServlet','local(HttpServletRequest)',NULL),(4455,'TODO log mark invalid failure','Line','appjar/src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',97,97,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','markInvalid(String, AccountSshKey)',NULL),(4456,'TODO log mark invalid failure','Line','src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',97,97,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','markInvalid(String, AccountSshKey)','NOT_DESIGN'),(4457,'TODO log update last used failure','Line','appjar/src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',113,113,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','updateLastUsed(AccountSshKey)',NULL),(4458,'TODO log update last used failure','Line','src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',113,113,'com.google.gerrit.server.ssh.DatabasePubKeyAuth','updateLastUsed(AccountSshKey)','NOT_DESIGN'),(4459,'Anonymous Git is claimed to be available, and this project\nisn\'t secured. The anonymous Git daemon will be much more\nefficient than our own SSH daemon, so prefer offering it.\n','Line','src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',190,193,'com.google.gerrit.client.changes.PatchSetPanel','displayDownload()',NULL),(4460,'No set of actions, perhaps the user is not signed in?','Line','appjar/src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',276,276,'com.google.gerrit.client.changes.PatchSetPanel','populateActions(PatchSetDetail)',NULL),(4461,'No set of actions, perhaps the user is not signed in?','Line','src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',276,276,'com.google.gerrit.client.changes.PatchSetPanel','populateActions(PatchSetDetail)',NULL),(4462,'TODO Actually we want to cancel the RPC if detached.','Line','src/main/java/com/google/gerrit/client/patches/PatchSideBySideScreen.java',61,61,'com.google.gerrit.client.patches.PatchSideBySideScreen','None','DESIGN'),(4463,'This is *not* a good idea to change away from administrators.\n','Line','appjar/src/main/java/com/google/gerrit/server/ProjectAdminServiceImpl.java',150,151,'com.google.gerrit.server.ProjectAdminServiceImpl','changeProjectOwner(Project.Id, String, AsyncCallback<VoidResult>)',NULL),(4464,'This is *not* a good idea to change away from administrators.\n','Line','src/main/java/com/google/gerrit/server/ProjectAdminServiceImpl.java',150,151,'com.google.gerrit.server.ProjectAdminServiceImpl','changeProjectOwner(Project.Id, String, AsyncCallback<VoidResult>)',NULL),(4465,'We\'re too short and there are no horizontal tabs, line is fine\nas-is so bypass the longer line wrapping code below.','Line','src/main/java/com/google/gerrit/client/patches/PatchUtil.java',59,60,'com.google.gerrit.client.patches.PatchUtil','wrapLines(String, boolean, int)',NULL),(4466,'TODO populate the account role','Line','appjar/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',143,143,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4467,'TODO populate the account role','Line','src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',143,143,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4468,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','appjar/src/main/java/com/google/gerrit/server/ssh/Receive.java',567,569,'com.google.gerrit.server.ssh.Receive','runImpl()',NULL),(4469,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',567,569,'com.google.gerrit.server.ssh.Receive','runImpl()',NULL),(4470,'TODO we should probably confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','appjar/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',63,66,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4471,'TODO we should probably confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',63,66,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4472,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','appjar/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',346,346,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4473,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',346,346,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4474,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','src/main/java/com/google/gerrit/server/GerritCall.java',134,137,'com.google.gerrit.server.GerritCall','assumeHttp()',NULL),(4475,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/GerritServer.java',76,77,'com.google.gerrit.server.GerritServer','None',NULL),(4476,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',497,499,'com.google.gerrit.server.ChangeMail','submittedTo()',NULL),(4477,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',516,518,'com.google.gerrit.server.ChangeMail','starredTo()',NULL),(4478,'TODO Fix this gross hack so we aren\'t running git diff-tree for\nan interdiff file side by side view.\n','Line','src/main/java/com/google/gerrit/server/patch/PatchFile.java',297,299,'com.google.gerrit.server.patch.PatchFile','parseExecute()',NULL),(4479,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','src/main/java/com/google/gerrit/git/MergeOp.java',494,494,'com.google.gerrit.git.MergeOp','writeCherryPickCommit(Merger, CodeReviewCommit)',NULL),(4480,'None','None','src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java',-1,-1,'None','None',NULL),(4481,'None','None','src/main/java/com/google/gerrit/client/patches/PatchUnifiedScreen.java',-1,-1,'None','None',NULL),(4482,'TODO Actually we want to cancel the RPC if detached.','Line','src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',129,129,'com.google.gerrit.client.changes.ChangeScreen','refresh()','DESIGN'),(4483,'None','None','src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',-1,-1,'None','None',NULL),(4484,'None','None','src/main/java/com/google/gerrit/client/patches/PatchSideBySideScreen.java',-1,-1,'None','None',NULL),(4485,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',765,768,'com.google.gerrit.server.ssh.Receive','runImpl()',NULL),(4486,'Actually, we have too much context in this hunk.\n','Line','src/main/java/com/google/gerrit/server/patch/SideBySidePatchDetailAction.java',106,107,'com.google.gerrit.server.patch.SideBySidePatchDetailAction','run(ReviewDb)',NULL),(4487,'Hack to obtain visibility to package level methods only.\nThese aren\'t yet part of the public JGit API.','Line','src/main/java/org/spearce/jgit/lib/WindowCacheStatAccessor.java',17,18,'None','None',NULL),(4488,'TODO Fix this gross hack so we aren\'t running git diff-tree for\nan interdiff file side by side view.\n','Line','src/main/java/com/google/gerrit/server/patch/PatchFile.java',295,297,'com.google.gerrit.server.patch.PatchFile','parseExecute()','DESIGN'),(4489,'None','None','src/main/java/com/google/gerrit/server/patch/PatchFile.java',-1,-1,'None','None',NULL),(4490,'Its really binary, but Git couldn\'t see the nul early enough\nto realize its binary, and instead produced the diff.\n','Line','src/main/java/com/google/gerrit/git/PatchSetImporter.java',254,256,'com.google.gerrit.git.PatchSetImporter','importFile(FileHeader)',NULL),(4491,'None','None','src/main/java/com/google/gerrit/server/ssh/DatabasePubKeyAuth.java',-1,-1,'None','None',NULL),(4492,'TODO log database query error','Line','src/main/java/com/google/gerrit/server/ssh/SshUtil.java',201,201,'com.google.gerrit.server.ssh.SshUtil','keysFor(String)','NOT_DESIGN'),(4493,'None','None','src/main/java/com/google/gerrit/server/ssh/SshUtil.java',-1,-1,'None','None',NULL),(4494,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',652,654,'com.google.gerrit.server.ssh.Receive','runImpl()',NULL),(4495,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',612,614,'com.google.gerrit.server.ssh.Receive','addReviewer(String)',NULL),(4496,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',827,830,'com.google.gerrit.server.ssh.Receive','runImpl()',NULL),(4497,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',787,790,'com.google.gerrit.server.ssh.Receive','addReviewer(String)',NULL),(4498,'TODO we should probably confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',55,58,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4499,'TODO we should probably confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',58,61,'com.google.gerrit.client.patches.AbstractPatchContentTable','None','DESIGN'),(4500,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',320,320,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignIn()',NULL),(4501,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',322,322,'com.google.gerrit.client.patches.AbstractPatchContentTable','onSignOut()',NULL),(4502,'None','None','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',-1,-1,'None','None',NULL),(4503,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',331,331,'com.google.gerrit.client.patches.AbstractPatchContentTable','onLoad()',NULL),(4504,'TODO we should confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',90,93,'com.google.gerrit.client.patches.AbstractPatchContentTable','None',NULL),(4505,'TODO we should confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',93,96,'com.google.gerrit.client.patches.AbstractPatchContentTable','None',NULL),(4506,'TODO we should confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',104,107,'com.google.gerrit.client.patches.AbstractPatchContentTable','notifyDraftDelta(int)',NULL),(4507,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',464,466,'com.google.gerrit.server.ChangeMail','newChangeTo()',NULL),(4508,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/ChangeMail.java',465,467,'com.google.gerrit.server.mail.ChangeMail','newChangeTo()',NULL),(4509,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',519,521,'com.google.gerrit.server.ChangeMail','commentTo()',NULL),(4510,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/ChangeMail.java',520,522,'com.google.gerrit.server.mail.ChangeMail','commentTo()',NULL),(4511,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',563,565,'com.google.gerrit.server.ChangeMail','submittedTo()',NULL),(4512,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/ChangeMail.java',564,566,'com.google.gerrit.server.mail.ChangeMail','submittedTo()',NULL),(4513,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',577,579,'com.google.gerrit.server.ChangeMail','starredTo()',NULL),(4514,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/ChangeMail.java',578,580,'com.google.gerrit.server.mail.ChangeMail','starredTo()',NULL),(4515,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','src/main/java/com/google/gerrit/server/ChangeMail.java',704,707,'com.google.gerrit.server.ChangeMail','gerritHost()',NULL),(4516,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','src/main/java/com/google/gerrit/server/mail/ChangeMail.java',705,708,'com.google.gerrit.server.mail.ChangeMail','gerritHost()',NULL),(4517,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',262,265,'com.google.gerrit.server.mail.OutgoingEmail','getGerritHost()',NULL),(4518,'Just don\'t BCC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',470,472,'com.google.gerrit.server.mail.OutgoingEmail','bccStarredBy()',NULL),(4519,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',491,493,'com.google.gerrit.server.mail.OutgoingEmail','bccWatchesNotifyAllComments()',NULL),(4520,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java',71,73,'com.google.gerrit.server.mail.CreateChangeSender','bccWatchers()',NULL),(4521,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/MergedSender.java',157,159,'com.google.gerrit.server.mail.MergedSender','bccWatchesNotifySubmittedChanges()',NULL),(4522,'None','None','src/main/java/com/google/gerrit/server/UrlRewriteFilter.java',-1,-1,'None','None',NULL),(4523,'Binary search for the range, since we know its a sorted list.\n','Line','src/main/java/com/google/gerrit/client/data/SparseFileContent.java',78,79,'com.google.gerrit.client.data.SparseFileContent','size()',NULL),(4524,'Green check mark if the user is logged in and they reviewed that file','Line','src/main/java/com/google/gerrit/client/changes/PatchTable.java',367,367,'com.google.gerrit.client.changes.PatchTable','display(PatchSet.Id, List<Patch>)',NULL),(4525,'Mark this file reviewed as soon we display the diff screen','Line','src/main/java/com/google/gerrit/client/patches/PatchScreen.java',386,386,'com.google.gerrit.client.patches.PatchScreen','refresh(boolean)',NULL),(4526,'Get all the reviewed patches in one query','Line','src/main/java/com/google/gerrit/client/data/PatchSetDetail.java',67,67,'com.google.gerrit.client.data.PatchSetDetail','load(ReviewDb, PatchSet)',NULL),(4527,'This is *not* a good idea to change away from administrators.\n','Line','src/main/java/com/google/gerrit/server/ProjectAdminServiceImpl.java',166,167,'com.google.gerrit.server.ProjectAdminServiceImpl','changeProjectOwner(Project.Id, String, AsyncCallback<VoidResult>)','DESIGN'),(4528,'None','None','src/main/java/com/google/gerrit/server/ProjectAdminServiceImpl.java',-1,-1,'None','None',NULL),(4529,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',1098,1101,'com.google.gerrit.server.ssh.Receive','validCommitter(ReceiveCommand, RevCommit)',NULL),(4530,'We\'re too short and there are no horizontal tabs, line is fine\nas-is so bypass the longer line wrapping code below.','Line','src/main/java/com/google/gerrit/client/patches/PatchUtil.java',68,69,'com.google.gerrit.client.patches.PatchUtil','wrapLines(String, boolean, int)',NULL),(4531,'We\'re too short and there are no horizontal tabs, line is fine\nas-is so bypass the longer line wrapping code below.','Line','src/main/java/com/google/gwtexpui/safehtml/client/PrettyFormatter.java',85,86,'com.google.gwtexpui.safehtml.client.PrettyFormatter','getCommentStyle(String)',NULL),(4532,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','src/main/java/com/google/gerrit/client/rpc/BaseServiceImplementation.java',126,130,'com.google.gerrit.client.rpc.BaseServiceImplementation','run(AsyncCallback<T>, Action<T>)',NULL),(4533,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','src/main/java/com/google/gerrit/server/BaseServiceImplementation.java',129,133,'com.google.gerrit.server.BaseServiceImplementation','run(AsyncCallback<T>, Action<T>)',NULL),(4534,'This is a hack to force the GerritConfig to install itself into\nCommon.setGerritConfig. If we don\'t do this here in the daemon\nit won\'t inject in time for things that demand it. This must die.\n','Line','src/main/java/com/google/gerrit/pgm/Daemon.java',33,36,'com.google.gerrit.pgm.Daemon','run()',NULL),(4535,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/GerritServer.java',103,104,'com.google.gerrit.server.GerritServer','None',NULL),(4536,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/GerritServletConfig.java',242,243,'com.google.gerrit.server.GerritServletConfig','contextDestroyed(ServletContextEvent)',NULL),(4537,'FIXME: This code has to be moved to separate method when patchSetInfo\ncreation is removed','Line','src/main/java/com/google/gerrit/git/PatchSetImporter.java',166,167,'com.google.gerrit.git.PatchSetImporter','importInfo()',NULL),(4538,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/GerritServletConfig.java',173,174,'com.google.gerrit.server.GerritServletConfig','contextDestroyed(ServletContextEvent)','NOT_DESIGN'),(4539,'None','None','src/main/java/com/google/gerrit/server/GerritServletConfig.java',-1,-1,'None','None',NULL),(4540,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/GerritServletConfig.java',185,186,'com.google.gerrit.server.GerritServletConfig','closeDataSource(DataSource)',NULL),(4541,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',677,679,'com.google.gerrit.server.ssh.Receive','addReviewer(String)',NULL),(4542,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',677,679,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(String)',NULL),(4543,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',912,915,'com.google.gerrit.server.ssh.Receive','addReviewer(String)',NULL),(4544,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',912,915,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(String)',NULL),(4545,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','src/main/java/com/google/gerrit/server/ssh/Receive.java',1120,1123,'com.google.gerrit.server.ssh.Receive','validCommitter(ReceiveCommand, RevCommit)',NULL),(4546,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',1120,1123,'com.google.gerrit.server.ssh.commands.Receive','validCommitter(ReceiveCommand, RevCommit)',NULL),(4547,'Temporary hack to make Common.getAccountId() honor the Guice\nmanaged request state in either SSH or HTTP environments.\n','Line','src/main/java/com/google/gerrit/server/GerritServletConfig.java',128,130,'com.google.gerrit.server.GerritServletConfig','contextInitialized(ServletContextEvent)',NULL),(4548,'Temporary hack to make Common.getAccountId() honor the Guice\nmanaged request state in either SSH or HTTP environments.\n','Line','src/main/java/com/google/gerrit/server/GerritServletConfig.java',153,155,'com.google.gerrit.server.GerritServletConfig','contextInitialized(ServletContextEvent)',NULL),(4549,'Temporary hack to make Common.getAccountId() honor the Guice\nmanaged request state in either SSH or HTTP environments.\n','Line','src/main/java/com/google/gerrit/server/http/GerritServletConfig.java',156,158,'com.google.gerrit.server.http.GerritServletConfig','contextInitialized(ServletContextEvent)',NULL),(4550,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/GerritServletConfig.java',256,257,'com.google.gerrit.server.GerritServletConfig','closeDataSource(DataSource)',NULL),(4551,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/http/GerritServletConfig.java',259,260,'com.google.gerrit.server.http.GerritServletConfig','closeDataSource(DataSource)',NULL),(4552,'TODO Someday this should be a menu of choices.','Line','src/main/java/com/google/gerrit/server/UrlRewriteFilter.java',218,218,'com.google.gerrit.server.UrlRewriteFilter','bareUserEmailDashboard(String, HttpServletRequest, HttpServletResponse)',NULL),(4553,'TODO Someday this should be a menu of choices.','Line','src/main/java/com/google/gerrit/server/http/UrlRewriteFilter.java',218,218,'com.google.gerrit.server.http.UrlRewriteFilter','bareUserEmailDashboard(String, HttpServletRequest, HttpServletResponse)',NULL),(4554,'Contains a path separator. Don\'t serve it as the client\nmight be trying something evil like \\\"/../../etc/passwd\\\".\nThis static servlet is just meant to facilitate simple\nassets like banner images.\n','Line','src/main/java/com/google/gerrit/server/StaticServlet.java',108,112,'com.google.gerrit.server.StaticServlet','local(HttpServletRequest)',NULL),(4555,'Contains a path separator. Don\'t serve it as the client\nmight be trying something evil like \\\"/../../etc/passwd\\\".\nThis static servlet is just meant to facilitate simple\nassets like banner images.\n','Line','src/main/java/com/google/gerrit/server/http/StaticServlet.java',108,112,'com.google.gerrit.server.http.StaticServlet','local(HttpServletRequest)',NULL),(4556,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','src/main/java/com/google/gerrit/server/GerritCall.java',150,153,'com.google.gerrit.server.GerritCall','assumeHttp()',NULL),(4557,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','src/main/java/com/google/gerrit/server/http/GerritCall.java',150,153,'com.google.gerrit.server.http.GerritCall','assumeHttp()',NULL),(4558,'No canonical URL configured? Maybe we can get a reasonable\nguess from the incoming HTTP request, if we are currently\ninside of an HTTP request scope.\n','Line','src/main/java/com/google/gerrit/server/config/CanonicalWebUrlProvider.java',52,55,'com.google.gerrit.server.config.CanonicalWebUrlProvider','get()',NULL),(4559,'Get all the reviewed patches in one query','Line','src/main/java/com/google/gerrit/client/data/PatchSetDetail.java',64,64,'com.google.gerrit.client.data.PatchSetDetail','load(ReviewDb, PatchSet)',NULL),(4560,'Get all the reviewed patches in one query','Line','src/main/java/com/google/gerrit/server/rpc/PatchSetDetailFactory.java',95,95,'com.google.gerrit.server.rpc.PatchSetDetailFactory','run(ReviewDb)',NULL),(4561,'FIXME: This code has to be moved to separate method when patchSetInfo\ncreation is removed','Line','src/main/java/com/google/gerrit/git/PatchSetImporter.java',164,165,'com.google.gerrit.git.PatchSetImporter','importInfo()','DESIGN'),(4562,'None','None','src/main/java/com/google/gerrit/git/PatchSetImporter.java',-1,-1,'None','None',NULL),(4563,'Get all the reviewed patches in one query','Line','src/main/java/com/google/gerrit/server/rpc/PatchSetDetailFactory.java',93,93,'com.google.gerrit.server.rpc.PatchSetDetailFactory','call()',NULL),(4564,'Get all the reviewed patches in one query','Line','src/main/java/com/google/gerrit/server/rpc/changedetail/PatchSetDetailFactory.java',94,94,'com.google.gerrit.server.rpc.changedetail.PatchSetDetailFactory','call()',NULL),(4565,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','src/main/java/com/google/gerrit/server/CurrentUser.java',72,76,'com.google.gerrit.server.CurrentUser','canPerform(ProjectCache.Entry, ApprovalCategory.Id, short)',NULL),(4566,'Our default encoding is required by the specifications for the\nruntime APIs, this should never, ever happen.\n','Line','src/main/java/com/google/gerrit/server/ssh/BaseCommand.java',280,282,'com.google.gerrit.server.ssh.BaseCommand','setInputStream(InputStream)',NULL),(4567,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','src/main/java/com/google/gerrit/server/BaseServiceImplementation.java',145,149,'com.google.gerrit.server.BaseServiceImplementation','run(AsyncCallback<T>, Action<T>)',NULL),(4568,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','src/main/java/com/google/gerrit/server/project/ProjectControl.java',136,140,'com.google.gerrit.server.project.ProjectControl','canPerform(ApprovalCategory.Id, short)',NULL),(4569,'Unused, but we need to force it to load before we do, otherwise we risk\nreading an empty database without the wild project being in the database.\nAsking for it should ensures Guice loads it first.','Block','src/main/java/com/google/gerrit/server/config/WildProjectNameProvider.java',20,24,'com.google.gerrit.server.config.WildProjectNameProvider','get()',NULL),(4570,'Grab the current GerritCall to gain access to the XSRF token\ngenerator, and force a token to be constructed for this user.\nWe can then send the XSRF token as part of the initial data\nvector in the host page, saving the client 1 round trip as it\nbootstraps itself.\n','Line','src/main/java/com/google/gerrit/server/http/HostPageServlet.java',213,218,'com.google.gerrit.server.http.HostPageServlet','doGet(HttpServletRequest, HttpServletResponse)','DESIGN'),(4571,'Unused, but we need to force it to load before we do, otherwise we risk\nreading an empty database without the wild project being in the database.\nAsking for it should ensures Guice loads it first.','Block','src/main/java/com/google/gerrit/server/config/TrustedExternalIdsProvider.java',21,25,'com.google.gerrit.server.config.TrustedExternalIdsProvider','get()',NULL),(4572,'Temporary hack to make Common.getAccountId() honor the Guice\nmanaged request state in either SSH or HTTP environments.\n','Line','src/main/java/com/google/gerrit/server/http/GerritServletConfig.java',155,157,'com.google.gerrit.server.http.GerritServletConfig','contextInitialized(ServletContextEvent)','DESIGN'),(4573,'None','None','src/main/java/com/google/gerrit/server/http/GerritServletConfig.java',-1,-1,'None','None',NULL),(4574,'This is a hack to force the GerritConfig to install itself into\nCommon.setGerritConfig. If we don\'t do this here in the daemon\nit won\'t inject in time for things that demand it. This must die.\n','Line','src/main/java/com/google/gerrit/pgm/Daemon.java',46,49,'com.google.gerrit.pgm.Daemon','run()','NOT_DESIGN'),(4575,'None','None','src/main/java/com/google/gerrit/pgm/Daemon.java',-1,-1,'None','None',NULL),(4576,'We shouldn\'t have to do this extra decode pass, but somehow we\nare now receiving our \\\"^1\\\" suffix as \\\"%5E1\\\", which confuses us\ndownstream. Other times we get our embedded \\\",\\\" as \\\"%2C\\\", which\nis equally bad. And yet when these happen a \\\"%2F\\\" is left as-is,\nrather than escaped as \\\"%252F\\\", which makes me feel really really\nuncomfortable with a blind decode right here.\n','Line','src/main/java/com/google/gerrit/server/http/CatServlet.java',89,95,'com.google.gerrit.server.http.CatServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(4577,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','src/main/java/com/google/gerrit/server/http/GerritCall.java',153,156,'com.google.gerrit.server.http.GerritCall','assumeHttp()',NULL),(4578,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','src/main/java/com/google/gerrit/server/http/HttpLoginServlet.java',122,125,'com.google.gerrit.server.http.HttpLoginServlet','getRemoteUser(HttpServletRequest)',NULL),(4579,'Not signed in yet. Since the browser state might have an anchor\ntoken which we want to capture and carry through the auth process\nwe send back JavaScript now to capture that, and do the real work\nof redirecting to the authentication area.\n','Line','src/main/java/com/google/gerrit/server/http/HttpAuthFilter.java',72,76,'com.google.gerrit.server.http.HttpAuthFilter','doFilter(ServletRequest, ServletResponse, FilterChain)',NULL),(4580,'TODO we should confirm with the user before sign out starts\nthat its OK to sign out if any of our editors are unsaved.\n(bug GERRIT-16)\n','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',117,120,'com.google.gerrit.client.patches.AbstractPatchContentTable','notifyDraftDelta(int)','DESIGN'),(4581,'None','None','src/main/java/com/google/gerrit/server/http/HostPageServlet.java',-1,-1,'None','None',NULL),(4582,'TODO Someday this should be a menu of choices.','Line','src/main/java/com/google/gerrit/server/http/UrlRewriteFilter.java',222,222,'com.google.gerrit.server.http.UrlRewriteFilter','bareUserEmailDashboard(String, HttpServletRequest, HttpServletResponse)','DESIGN'),(4583,'None','None','src/main/java/com/google/gerrit/server/http/UrlRewriteFilter.java',-1,-1,'None','None',NULL),(4584,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',733,735,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(String)',NULL),(4585,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',720,722,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(Account.Id)',NULL),(4586,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',959,962,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(String)',NULL),(4587,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',946,949,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(Account.Id)',NULL),(4588,'Oh well, its not a c3p0 pooled connection. Too bad its\nnot standardized how \\\"good applications cleanup\\\".','Line','src/main/java/com/google/gerrit/server/http/GerritServletConfig.java',205,206,'com.google.gerrit.server.http.GerritServletConfig','closeDataSource(DataSource)','NOT_DESIGN'),(4589,'Oh well, its not a c3p0 pooled connection.','Line','src/main/java/com/google/gerrit/server/http/GerritServletConfig.java',215,215,'com.google.gerrit.server.http.GerritServletConfig','closeDataSource(DataSource)',NULL),(4590,'Its really binary, but Git couldn\'t see the nul early enough\nto realize its binary, and instead produced the diff.\n','Line','src/main/java/com/google/gerrit/git/PatchSetImporter.java',218,220,'com.google.gerrit.git.PatchSetImporter','importFile(FileHeader)',NULL),(4591,'Its really binary, but Git couldn\'t see the nul early enough\nto realize its binary, and instead produced the diff.\n','Line','src/main/java/com/google/gerrit/server/patch/PatchListEntry.java',251,253,'com.google.gerrit.server.patch.PatchListEntry','toPatchType(FileHeader)',NULL),(4592,'Get all the reviewed patches in one query','Line','src/main/java/com/google/gerrit/server/rpc/changedetail/PatchSetDetailFactory.java',104,104,'com.google.gerrit.server.rpc.changedetail.PatchSetDetailFactory','call()','NOT_DESIGN'),(4593,'None','None','src/main/java/com/google/gerrit/server/rpc/changedetail/PatchSetDetailFactory.java',-1,-1,'None','None',NULL),(4594,'I\'m not sure why JGit is calling this binary, it may be because\nthere are no edits on the file, which is fine.\n','Line','src/test/java/com/google/gerrit/server/patch/PatchListEntryTest.java',29,31,'com.google.gerrit.server.patch.PatchListEntryTest','testEmpty1()','NOT_DESIGN'),(4595,'merge commit, return null to force combined diff behavior','Line','src/main/java/com/google/gerrit/server/patch/PatchListCache.java',181,181,'com.google.gerrit.server.patch.PatchListCache','aFor(PatchListKey, Repository, RevCommit)',NULL),(4596,'TODO This should really be a compile time type error, but I\'m\ntoo lazy to create the mess of permutations required to setup\ntype safe returns for bindings in our little DSL.\n','Line','src/main/java/com/google/gerrit/server/cache/CacheProvider.java',95,98,'com.google.gerrit.server.cache.CacheProvider','diskLimit(int)',NULL),(4597,'None','None','src/test/java/com/google/gerrit/server/patch/PatchListEntryTest.java',-1,-1,'None','None',NULL),(4598,'Run a test encryption to verify the proper algorithms exist in\nour JVM and we are able to invoke them. This helps to identify\na system configuration problem early at startup, rather than a\nlot later during runtime.\n','Line','src/main/java/com/google/gerrit/server/contact/EncryptedContactStore.java',88,92,'com.google.gerrit.server.contact.EncryptedContactStore','isEnabled()',NULL),(4599,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',313,313,'com.google.gerrit.client.changes.ChangeScreen','addMessages(ChangeDetail)',NULL),(4600,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',317,317,'com.google.gerrit.client.changes.ChangeScreen','addComments(ChangeDetail)',NULL),(4601,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java',453,453,'com.google.gerrit.client.patches.AbstractPatchContentTable','notifyDraftDelta(int)','NOT_DESIGN'),(4602,'merge commit, return null to force combined diff behavior','Line','src/main/java/com/google/gerrit/server/patch/PatchListCache.java',185,185,'com.google.gerrit.server.patch.PatchListCache','aFor(PatchListKey, Repository, RevCommit)',NULL),(4603,'merge commit, return null to force combined diff behavior','Line','src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',186,186,'com.google.gerrit.server.patch.PatchListCacheImpl','aFor(PatchListKey, Repository, RevCommit)',NULL),(4604,'No canonical URL configured? Maybe we can get a reasonable\nguess from the incoming HTTP request, if we are currently\ninside of an HTTP request scope.\n','Line','src/main/java/com/google/gerrit/server/http/HttpCanonicalWebUrlProvider.java',51,54,'com.google.gerrit.server.http.HttpCanonicalWebUrlProvider','get()',NULL),(4605,'It would be possible to submit the change if the missing\ndependencies are also submitted. Perhaps the user just\nforgot to submit those.\n','Line','src/main/java/com/google/gerrit/git/MergeOp.java',930,933,'com.google.gerrit.git.MergeOp','dependencyError(CodeReviewCommit)',NULL),(4606,'It is impossible to submit this change as-is. The author\nneeds to rebase it in order to work around the missing\ndependencies.\n','Line','src/main/java/com/google/gerrit/git/MergeOp.java',956,959,'com.google.gerrit.git.MergeOp','dependencyError(CodeReviewCommit)',NULL),(4607,'No set of actions, perhaps the user is not signed in?','Line','src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',244,244,'com.google.gerrit.client.changes.PatchSetPanel','populateActions(PatchSetDetail)','NOT_DESIGN'),(4608,'None','None','src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',-1,-1,'None','None',NULL),(4609,'Hack to obtain visibility to package level methods only.\nThese aren\'t yet part of the public JGit API.','Line','src/main/java/org/eclipse/jgit/lib/WindowCacheStatAccessor.java',17,18,'None','None',NULL),(4610,'We\'re too short and there are no horizontal tabs, line is fine\nas-is so bypass the longer line wrapping code below.','Line','src/main/java/com/google/gwtexpui/safehtml/client/PrettyFormatter.java',86,87,'com.google.gwtexpui.safehtml.client.PrettyFormatter','getCommentStyle(String)',NULL),(4611,'We\'re too short and there are no horizontal tabs, line is fine\nas-is so bypass the longer line wrapping code below.','Line','gerrit-patch-gwtexpui/src/main/java/com/google/gwtexpui/safehtml/client/PrettyFormatter.java',86,87,'com.google.gwtexpui.safehtml.client.PrettyFormatter','getCommentStyle(String)',NULL),(4612,'Hack to obtain visibility to package level methods only.\nThese aren\'t yet part of the public JGit API.','Line','gerrit-patch-jgit/src/main/java/org/eclipse/jgit/lib/WindowCacheStatAccessor.java',17,18,'None','None',NULL),(4613,'Anonymous Git is claimed to be available, and this project\nisn\'t secured. The anonymous Git daemon will be much more\nefficient than our own SSH daemon, so prefer offering it.\n','Line','src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',142,145,'com.google.gerrit.client.changes.PatchSetPanel','displayDownload()',NULL),(4614,'Green check mark if the user is logged in and they reviewed that file','Line','src/main/java/com/google/gerrit/client/changes/PatchTable.java',397,397,'com.google.gerrit.client.changes.PatchTable','display(PatchSet.Id, List<Patch>)',NULL),(4615,'Our default encoding is required by the specifications for the\nruntime APIs, this should never, ever happen.\n','Line','src/main/java/com/google/gerrit/server/ssh/BaseCommand.java',300,302,'com.google.gerrit.server.ssh.BaseCommand','setInputStream(InputStream)',NULL),(4616,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',750,752,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(Account.Id)',NULL),(4617,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',972,975,'com.google.gerrit.server.ssh.commands.Receive','addReviewer(Account.Id)',NULL),(4618,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','src/main/java/com/google/gerrit/server/ssh/commands/Receive.java',1214,1217,'com.google.gerrit.server.ssh.commands.Receive','validCommitter(ReceiveCommand, RevCommit)',NULL),(4619,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','src/main/java/com/google/gerrit/server/project/ProjectControl.java',195,199,'com.google.gerrit.server.project.ProjectControl','canPerform(ApprovalCategory.Id, short)',NULL),(4620,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','src/main/java/com/google/gerrit/git/MergeOp.java',320,328,'com.google.gerrit.git.MergeOp','validateChangeList()',NULL),(4621,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','src/main/java/com/google/gerrit/git/MergeOp.java',641,641,'com.google.gerrit.git.MergeOp','writeCherryPickCommit(Merger, CodeReviewCommit)',NULL),(4622,'We cannot merge n as it would bring something we\naren\'t permitted to merge at this time. Drop n.\n','Line','src/main/java/com/google/gerrit/git/MergeSorter.java',58,60,'com.google.gerrit.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4623,'Anything reachable through us is better merged by just\nmerging us directly. So prune our ancestors out and let\nus merge instead.\n','Line','src/main/java/com/google/gerrit/git/MergeSorter.java',75,78,'com.google.gerrit.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4624,'Its really binary, but Git couldn\'t see the nul early enough\nto realize its binary, and instead produced the diff.\n','Line','src/main/java/com/google/gerrit/server/patch/PatchListEntry.java',250,252,'com.google.gerrit.server.patch.PatchListEntry','toPatchType(FileHeader)',NULL),(4625,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java',76,78,'com.google.gerrit.server.mail.CreateChangeSender','bccWatchers()',NULL),(4626,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','src/main/java/com/google/gerrit/server/http/HttpLoginServlet.java',136,139,'com.google.gerrit.server.http.HttpLoginServlet','getRemoteUser(HttpServletRequest)',NULL),(4627,'TODO populate the account role','Line','src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',242,242,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4628,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',312,312,'com.google.gerrit.client.changes.ChangeScreen','addComments(ChangeDetail)',NULL),(4629,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/MergedSender.java',172,174,'com.google.gerrit.server.mail.MergedSender','bccWatchesNotifySubmittedChanges()',NULL),(4630,'TODO This should really be a compile time type error, but I\'m\ntoo lazy to create the mess of permutations required to setup\ntype safe returns for bindings in our little DSL.\n','Line','src/main/java/com/google/gerrit/server/cache/CacheProvider.java',102,105,'com.google.gerrit.server.cache.CacheProvider','diskLimit(int)',NULL),(4631,'TODO This should really be a compile time type error, but I\'m\ntoo lazy to create the mess of permutations required to setup\ntype safe returns for bindings in our little DSL.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/cache/CacheProvider.java',102,105,'com.google.gerrit.server.cache.CacheProvider','diskLimit(int)',NULL),(4632,'Mark this file reviewed as soon we display the diff screen','Line','src/main/java/com/google/gerrit/client/patches/PatchScreen.java',408,408,'com.google.gerrit.client.patches.PatchScreen','refresh(boolean)',NULL),(4633,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',334,337,'com.google.gerrit.server.mail.OutgoingEmail','getGerritHost()',NULL),(4634,'Just don\'t BCC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',539,541,'com.google.gerrit.server.mail.OutgoingEmail','bccStarredBy()',NULL),(4635,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',560,562,'com.google.gerrit.server.mail.OutgoingEmail','bccWatchesNotifyAllComments()',NULL),(4636,'Mark this file reviewed as soon we display the diff screen','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java',410,410,'com.google.gerrit.client.patches.PatchScreen','refresh(boolean)',NULL),(4637,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java',76,78,'com.google.gerrit.server.mail.CreateChangeSender','bccWatchers()',NULL),(4638,'No canonical URL configured? Maybe we can get a reasonable\nguess from the incoming HTTP request, if we are currently\ninside of an HTTP request scope.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/HttpCanonicalWebUrlProvider.java',51,54,'com.google.gerrit.httpd.HttpCanonicalWebUrlProvider','get()',NULL),(4639,'We shouldn\'t have to do this extra decode pass, but somehow we\nare now receiving our \\\"^1\\\" suffix as \\\"%5E1\\\", which confuses us\ndownstream. Other times we get our embedded \\\",\\\" as \\\"%2C\\\", which\nis equally bad. And yet when these happen a \\\"%2F\\\" is left as-is,\nrather than escaped as \\\"%252F\\\", which makes me feel really really\nuncomfortable with a blind decode right here.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/CatServlet.java',89,95,'com.google.gerrit.httpd.raw.CatServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(4640,'Its really binary, but Git couldn\'t see the nul early enough\nto realize its binary, and instead produced the diff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListEntry.java',250,252,'com.google.gerrit.server.patch.PatchListEntry','toPatchType(FileHeader)',NULL),(4641,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java',195,199,'com.google.gerrit.server.project.ProjectControl','canPerform(ApprovalCategory.Id, short)',NULL),(4642,'Binary search for the range, since we know its a sorted list.\n','Line','gerrit-common/src/main/java/com/google/gerrit/common/data/SparseFileContent.java',78,79,'com.google.gerrit.common.data.SparseFileContent','size()',NULL),(4643,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',320,328,'com.google.gerrit.server.git.MergeOp','validateChangeList()',NULL),(4644,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',641,641,'com.google.gerrit.server.git.MergeOp','writeCherryPickCommit(Merger, CodeReviewCommit)',NULL),(4645,'It would be possible to submit the change if the missing\ndependencies are also submitted. Perhaps the user just\nforgot to submit those.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',930,933,'com.google.gerrit.server.git.MergeOp','dependencyError(CodeReviewCommit)',NULL),(4646,'It is impossible to submit this change as-is. The author\nneeds to rebase it in order to work around the missing\ndependencies.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',956,959,'com.google.gerrit.server.git.MergeOp','dependencyError(CodeReviewCommit)',NULL),(4647,'Anonymous Git is claimed to be available, and this project\nisn\'t secured. The anonymous Git daemon will be much more\nefficient than our own SSH daemon, so prefer offering it.\n','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',142,145,'com.google.gerrit.client.changes.PatchSetPanel','displayDownload()','DESIGN'),(4648,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java',172,174,'com.google.gerrit.server.mail.MergedSender','bccWatchesNotifySubmittedChanges()',NULL),(4649,'TODO populate the account role','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',242,242,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4650,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/container/HttpLoginServlet.java',137,140,'com.google.gerrit.httpd.auth.container.HttpLoginServlet','getRemoteUser(HttpServletRequest)',NULL),(4651,'We cannot merge n as it would bring something we\naren\'t permitted to merge at this time. Drop n.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeSorter.java',58,60,'com.google.gerrit.server.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4652,'Anything reachable through us is better merged by just\nmerging us directly. So prune our ancestors out and let\nus merge instead.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeSorter.java',75,78,'com.google.gerrit.server.git.MergeSorter','sort(Collection<CodeReviewCommit>)',NULL),(4653,'Fall back onto whatever the local operating system thinks\nthis server is called. We hopefully didn\'t get here as a\ngood admin would have configured the canonical url.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',334,337,'com.google.gerrit.server.mail.OutgoingEmail','getGerritHost()',NULL),(4654,'Just don\'t BCC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',539,541,'com.google.gerrit.server.mail.OutgoingEmail','bccStarredBy()',NULL),(4655,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',560,562,'com.google.gerrit.server.mail.OutgoingEmail','bccWatchesNotifyAllComments()',NULL),(4656,'Try to derive the name of the temporary file so it\ndoesn\'t completely suck. Best if we can make it\nmatch the name it was in the archive.\n','Line','gerrit-main/src/main/java/com/google/gerrit/main/GerritLauncher.java',293,296,'com.google.gerrit.main.GerritLauncher','main(String[])',NULL),(4657,'Maybe this is a local class file, running under a debugger?\n','Line','gerrit-main/src/main/java/com/google/gerrit/main/GerritLauncher.java',351,352,'com.google.gerrit.main.GerritLauncher','main(String[])',NULL),(4658,'Unused, but we need to force it to load before we do, otherwise we risk\nreading an empty database without the wild project being in the database.\nAsking for it should ensures Guice loads it first.','Block','gerrit-server/src/main/java/com/google/gerrit/server/config/WildProjectNameProvider.java',20,24,'com.google.gerrit.server.config.WildProjectNameProvider','get()','DESIGN'),(4659,'Contains a path separator. Don\'t serve it as the client\nmight be trying something evil like \\\"/../../etc/passwd\\\".\nThis static servlet is just meant to facilitate simple\nassets like banner images.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/StaticServlet.java',108,112,'com.google.gerrit.httpd.raw.StaticServlet','local(HttpServletRequest)','DESIGN'),(4660,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',313,313,'com.google.gerrit.client.changes.ChangeScreen','addComments(ChangeDetail)',NULL),(4661,'Green check mark if the user is logged in and they reviewed that file','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java',397,397,'com.google.gerrit.client.changes.PatchTable','display(PatchSet.Id, List<Patch>)',NULL),(4662,'Not signed in yet. Since the browser state might have an anchor\ntoken which we want to capture and carry through the auth process\nwe send back JavaScript now to capture that, and do the real work\nof redirecting to the authentication area.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/container/HttpAuthFilter.java',75,79,'com.google.gerrit.httpd.auth.container.HttpAuthFilter','doFilter(ServletRequest, ServletResponse, FilterChain)',NULL),(4663,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/Receive.java',750,752,'com.google.gerrit.sshd.commands.Receive','addReviewer(Account.Id)',NULL),(4664,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/Receive.java',972,975,'com.google.gerrit.sshd.commands.Receive','addReviewer(Account.Id)',NULL),(4665,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/Receive.java',1214,1217,'com.google.gerrit.sshd.commands.Receive','validCommitter(ReceiveCommand, RevCommit)',NULL),(4666,'Our default encoding is required by the specifications for the\nruntime APIs, this should never, ever happen.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/BaseCommand.java',300,302,'com.google.gerrit.sshd.BaseCommand','setInputStream(InputStream)',NULL),(4667,'merge commit, return null to force combined diff behavior','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',186,186,'com.google.gerrit.server.patch.PatchListCacheImpl','aFor(PatchListKey, Repository, RevCommit)',NULL),(4668,'Run a test encryption to verify the proper algorithms exist in\nour JVM and we are able to invoke them. This helps to identify\na system configuration problem early at startup, rather than a\nlot later during runtime.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/contact/EncryptedContactStore.java',88,92,'com.google.gerrit.server.contact.EncryptedContactStore','isEnabled()',NULL),(4669,'TODO Support HTTP without SSH.','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java',91,91,'com.google.gerrit.pgm.Daemon','run()',NULL),(4670,'Serve static resources directly from our JAR. This way we don\'t\nneed to unpack them into yet another temporary directory prior to\nserving to clients.\n','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java',275,278,'com.google.gerrit.pgm.http.jetty.JettyServer','makeContext(String, JettyEnv)',NULL),(4671,'The identity information reported about the connection by a\nRFC 1413 [11] request to the remote agent, if\navailable. Servers MAY choose not to support this feature, or\nnot to request the data for efficiency reasons.\n\\\"REMOTE_IDENT\\\" => \\\"NYI\\\"\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',426,431,'com.google.gerrit.httpd.gitweb.GitWebServlet','makeSiteConfig(File, GerritConfig)',NULL),(4672,'Try to find the user\'s home directory. If we can\'t find it\nreturn null so the JVM\'s default temporary directory is used\ninstead. This is probably /tmp or /var/tmp.\n','Line','gerrit-main/src/main/java/com/google/gerrit/main/GerritLauncher.java',374,377,'com.google.gerrit.main.GerritLauncher','tmproot()',NULL),(4673,'The identity information reported about the connection by a\nRFC 1413 [11] request to the remote agent, if\navailable. Servers MAY choose not to support this feature, or\nnot to request the data for efficiency reasons.\n\\\"REMOTE_IDENT\\\" => \\\"NYI\\\"\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',425,430,'com.google.gerrit.httpd.gitweb.GitWebServlet','makeSiteConfig(File, GerritConfig)',NULL),(4674,'The identity information reported about the connection by a\nRFC 1413 [11] request to the remote agent, if\navailable. Servers MAY choose not to support this feature, or\nnot to request the data for efficiency reasons.\n\\\"REMOTE_IDENT\\\" => \\\"NYI\\\"\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',424,429,'com.google.gerrit.httpd.gitweb.GitWebServlet','makeSiteConfig(SitePaths, GerritConfig)',NULL),(4675,'Try to derive the name of the temporary file so it\ndoesn\'t completely suck. Best if we can make it\nmatch the name it was in the archive.\n','Line','gerrit-main/src/main/java/com/google/gerrit/main/GerritLauncher.java',230,233,'com.google.gerrit.main.GerritLauncher','main(String[])',NULL),(4676,'Try to derive the name of the temporary file so it\ndoesn\'t completely suck. Best if we can make it\nmatch the name it was in the archive.\n','Line','gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java',230,233,'com.google.gerrit.launcher.GerritLauncher','main(String[])',NULL),(4677,'Maybe this is a local class file, running under a debugger?\n','Line','gerrit-main/src/main/java/com/google/gerrit/main/GerritLauncher.java',288,289,'com.google.gerrit.main.GerritLauncher','main(String[])',NULL),(4678,'Maybe this is a local class file, running under a debugger?\n','Line','gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java',288,289,'com.google.gerrit.launcher.GerritLauncher','main(String[])',NULL),(4679,'Try to find the user\'s home directory. If we can\'t find it\nreturn null so the JVM\'s default temporary directory is used\ninstead. This is probably /tmp or /var/tmp.\n','Line','gerrit-main/src/main/java/com/google/gerrit/main/GerritLauncher.java',406,409,'com.google.gerrit.main.GerritLauncher','tmproot()',NULL),(4680,'Try to find the user\'s home directory. If we can\'t find it\nreturn null so the JVM\'s default temporary directory is used\ninstead. This is probably /tmp or /var/tmp.\n','Line','gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java',406,409,'com.google.gerrit.launcher.GerritLauncher','tmproot()',NULL),(4681,'defer attribute here is to workaround IE running immediately.\n\n','Line','src/main/java/com/google/gwtexpui/linker/server/Permutation.java',115,117,'com.google.gwtexpui.linker.server.Permutation','inject(Document)',NULL),(4682,'If s=0 is used in the URL, the user has explicitly asked us\nto not perform selection on the server side, perhaps due to\nit incorrectly guessing their user agent.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java',192,195,'com.google.gerrit.httpd.raw.HostPageServlet','json(Object, StringWriter)',NULL),(4683,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/config/WildProjectNameProvider.java',-1,-1,'None','None',NULL),(4684,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/Receive.java',753,755,'com.google.gerrit.sshd.commands.Receive','addReviewer(Account.Id)',NULL),(4685,'Should never happen, the core receive process would have\nidentified the missing object earlier before we got control.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',764,766,'com.google.gerrit.server.git.ReceiveCommits','create(ProjectControl, Repository)',NULL),(4686,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/Receive.java',970,973,'com.google.gerrit.sshd.commands.Receive','addReviewer(Account.Id)',NULL),(4687,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',981,984,'com.google.gerrit.server.git.ReceiveCommits','create(ProjectControl, Repository)',NULL),(4688,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/Receive.java',1257,1260,'com.google.gerrit.sshd.commands.Receive','validCommitter(ReceiveCommand, RevCommit)',NULL),(4689,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1266,1269,'com.google.gerrit.server.git.ReceiveCommits','validCommitter(ReceiveCommand, RevCommit)',NULL),(4690,'TODO We should alert the user to this message on the HTTP\nresponse channel, assuming Git will even report it to them.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java',193,195,'com.google.gerrit.httpd.ProjectServlet','create(HttpServletRequest, Repository)',NULL),(4691,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetPanel.java',-1,-1,'None','None',NULL),(4692,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java',167,171,'com.google.gerrit.server.project.ProjectControl','canPerform(ApprovalCategory.Id, short, String)',NULL),(4693,'TODO Support per-branch READ access.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/AddRefRight.java',152,152,'com.google.gerrit.httpd.rpc.project.AddRefRight','call()',NULL),(4694,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java',190,194,'com.google.gerrit.server.project.RefControl','canPerform(ApprovalCategory.Id, short)',NULL),(4695,'TODO Support per-branch READ access.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectRightsPanel.java',304,304,'com.google.gerrit.client.admin.ProjectRightsPanel','updateCategorySelection()',NULL),(4696,'Unfortunately this validation isn\'t entirely complete. Clients\ncan have exceptions trying to evaluate the pattern if they don\'t\nsupport a token used, even if the server does support the token.\n\nAt the minimum, we can trap problems related to unmatched groups.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java',116,120,'com.google.gerrit.httpd.GerritConfigProvider','create()',NULL),(4697,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1253,1256,'com.google.gerrit.server.git.ReceiveCommits','validCommitter(ReceiveCommand, RevCommit)',NULL),(4698,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1287,1290,'com.google.gerrit.server.git.ReceiveCommits','validCommit(RefControl, ReceiveCommand, RevCommit)',NULL),(4699,'Don\'t grant FORGE_COMMITTER to existing PUSH_HEAD rights. That\nis considered a bug that we are fixing with this schema upgrade.\nAdministrators might need to relax permissions manually after the\nupgrade if that forgery is critical to their workflow.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_28.java',50,53,'com.google.gerrit.server.schema.Schema_28','migrateData(ReviewDb)',NULL),(4700,'We\'re too short and there are no horizontal tabs, line is fine\nas-is so bypass the longer line wrapping code below.','Line','gerrit-patch-gwtexpui/src/main/java/com/google/gwtexpui/safehtml/client/PrettyFormatter.java',89,90,'com.google.gwtexpui.safehtml.client.PrettyFormatter','getCommentStyle(String)',NULL),(4701,'Binary search for the range, since we know its a sorted list.\n','Line','gerrit-common/src/main/java/com/google/gerrit/common/data/SparseFileContent.java',80,81,'com.google.gerrit.common.data.SparseFileContent','size()',NULL),(4702,'Binary search for the range, since we know its a sorted list.\n','Line','gerrit-prettify/src/main/java/com/google/gerrit/prettify/common/SparseFileContent.java',111,112,'com.google.gerrit.prettify.common.SparseFileContent','size()',NULL),(4703,'In order to syntax highlight the file properly we need to\ngive the client the complete file contents. So force our\ncontext temporarily to the complete file size.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptBuilder.java',151,154,'com.google.gerrit.httpd.rpc.patch.PatchScriptBuilder','compare(Edit, Edit)',NULL),(4704,'Mark this file reviewed as soon we display the diff screen','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java',414,414,'com.google.gerrit.client.patches.PatchScreen','refresh(boolean)','DESIGN'),(4705,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java',-1,-1,'None','None',NULL),(4706,'Mark this file reviewed as soon we display the diff screen','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java',495,495,'com.google.gerrit.client.patches.PatchScreen','onResult(boolean)','DESIGN'),(4707,'Mark this file reviewed as soon we display the diff screen','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java',466,466,'com.google.gerrit.client.patches.PatchScreen','onResult(PatchScript, boolean)',NULL),(4708,'This seems like a cheap trick. It doesn\'t properly account for a\nfile that gets renamed between patch set 1 and patch set 2. We\nwill wind up packing the wrong Patch object because we didn\'t do\nproper rename detection between the patch sets.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptFactory.java',231,235,'com.google.gerrit.httpd.rpc.patch.PatchScriptFactory','loadCommentsAndHistory(ChangeType, String, String)',NULL),(4709,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',233,236,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, RevTree, RevTree, FileHeader)',NULL),(4710,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',257,260,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, RevTree, RevTree, FileHeader)',NULL),(4711,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',269,272,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, RevTree, RevTree, FileHeader)',NULL),(4712,'Combine edits that are really close together. Right now our rule\nis, coalesce two line edits which are only one line apart if that\ncommon context line is either a \\\"pointless line\\\", or is identical\non both sides and starts a new block of code. These are mostly\nblock reindents to add or remove control flow operators.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',395,400,'com.google.gerrit.server.patch.PatchListCacheImpl','combineLineEdits(List<Edit>, Text, Text)',NULL),(4713,'Don\'t grant FORGE_COMMITTER to existing PUSH_HEAD rights. That\nis considered a bug that we are fixing with this schema upgrade.\nAdministrators might need to relax permissions manually after the\nupgrade if that forgery is critical to their workflow.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_28.java',46,49,'com.google.gerrit.server.schema.Schema_28','migrateData(ReviewDb)',NULL),(4714,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java',173,177,'com.google.gerrit.server.project.ProjectControl','canPerform(ApprovalCategory.Id, short, String)','NOT_DESIGN'),(4715,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java',-1,-1,'None','None',NULL),(4716,'TODO Support per-branch READ access.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/AddRefRight.java',159,159,'com.google.gerrit.httpd.rpc.project.AddRefRight','call()','NOT_DESIGN'),(4717,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/AddRefRight.java',-1,-1,'None','None',NULL),(4718,'TODO Support per-branch READ access.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectRightsPanel.java',324,324,'com.google.gerrit.client.admin.ProjectRightsPanel','updateCategorySelection()','NOT_DESIGN'),(4719,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectRightsPanel.java',-1,-1,'None','None',NULL),(4720,'TODO populate the account role','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',244,244,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail)',NULL),(4721,'TODO populate the account role','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',245,245,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail, Change)','NOT_DESIGN'),(4722,'','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',232,232,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail, Change)',NULL),(4723,'If one of the user\'s groups had denied them access, but\nthis group grants them access, prefer the grant over\nthe denial. We have to break the tie somehow and we\nprefer being \\\"more open\\\" to being \\\"more closed\\\".\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java',245,249,'com.google.gerrit.server.project.RefControl','canPerform(ApprovalCategory.Id, short)','NOT_DESIGN'),(4724,'Sort in descending refPattern length','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java',239,239,'com.google.gerrit.server.project.RefControl','canPerform(ApprovalCategory.Id, short)',NULL),(4725,'The user could no longer modify access after deleting a ref right.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectRightsPanel.java',269,269,'com.google.gerrit.client.admin.ProjectRightsPanel','onLoad()','NOT_DESIGN'),(4726,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java',-1,-1,'None','None',NULL),(4727,'Green check mark if the user is logged in and they reviewed that file','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java',433,433,'com.google.gerrit.client.changes.PatchTable','display(PatchSet.Id, List<Patch>)',NULL),(4728,'Green check mark if the user is logged in and they reviewed that file','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java',444,444,'com.google.gerrit.client.changes.PatchTable','indexOf(Patch.Key)',NULL),(4729,'TODO This should really be a compile time type error, but I\'m\ntoo lazy to create the mess of permutations required to setup\ntype safe returns for bindings in our little DSL.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/cache/CacheProvider.java',105,108,'com.google.gerrit.server.cache.CacheProvider','V> diskLimit(int)',NULL),(4730,'TODO(spearce) This probably should be more lazy.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/AndSource.java',89,90,'com.google.gerrit.server.query.change.AndSource','read()',NULL),(4731,'If its not an account, maybe its a group?\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java',265,266,'com.google.gerrit.server.query.change.ChangeQueryBuilder','visibleto(String)',NULL),(4732,'TODO(spearce) This probably should be more lazy.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/OrSource.java',37,38,'com.google.gerrit.server.query.change.OrSource','read()',NULL),(4733,'Just don\'t BCC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',591,593,'com.google.gerrit.server.mail.OutgoingEmail','bccStarredBy()',NULL),(4734,'Just don\'t BCC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',366,368,'com.google.gerrit.server.mail.ChangeEmail','bccStarredBy()',NULL),(4735,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java',608,610,'com.google.gerrit.server.mail.OutgoingEmail','bccWatchesNotifyAllComments()',NULL),(4736,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',383,385,'com.google.gerrit.server.mail.ChangeEmail','bccWatchesNotifyAllComments()',NULL),(4737,'Hack to obtain visibility to package level methods only.\nThese aren\'t yet part of the public JGit API.','Line','gerrit-patch-jgit/src/main/java/org/eclipse/jgit/storage/file/WindowCacheStatAccessor.java',17,18,'None','None',NULL),(4738,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',286,289,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, RevTree, RevTree, FileHeader)',NULL),(4739,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',347,350,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4740,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',313,316,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, RevTree, RevTree, FileHeader)',NULL),(4741,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',374,377,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4742,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',345,348,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, RevTree, RevTree, FileHeader)',NULL),(4743,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',406,409,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4744,'merge commit, return null to force combined diff behavior','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',557,557,'com.google.gerrit.server.patch.PatchListCacheImpl','aFor(PatchListKey, Repository, RevCommit)',NULL),(4745,'merge commit, return null to force combined diff behavior','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',622,622,'com.google.gerrit.server.patch.PatchListCacheImpl','aFor(PatchListKey, Repository, RevWalk, RevCommit)',NULL),(4746,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',348,351,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4747,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',355,358,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(ObjectReader, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4748,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',375,378,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4749,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',382,385,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(ObjectReader, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4750,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',407,410,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(Repository, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4751,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',414,417,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(ObjectReader, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4752,'Don\'t permit receive-pack to be executed if a refs/for/branch_name\nreference exists in the destination repository. These block the\nclient from being able to even send us a pack file, as it is very\nunlikely the user passed the --force flag and the new commit is\nprobably not going to fast-forward the branch.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',236,241,'com.google.gerrit.server.git.ReceiveCommits','create(ProjectControl, Repository)',NULL),(4753,'TODO (anatol.pomazau): Try to merge this method with similar RefRightsForPattern#canPerform','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java',194,194,'com.google.gerrit.server.project.ProjectControl','canPerformOnAnyRef(ApprovalCategory.Id, short)',NULL),(4754,'This may have been triggered by branch level access controls.\nLog what the heck is going on, as detailed as we can.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/Receive.java',94,96,'com.google.gerrit.sshd.commands.Receive','runImpl()',NULL),(4755,'entered user name and password were correct, but user name could not be\nset for the newly created account and this is why the login fails,\nerror screen with error message should be shown to the user','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/UserPassAuthServiceImpl.java',60,62,'com.google.gerrit.httpd.auth.ldap.UserPassAuthServiceImpl','authenticate(String, String, AsyncCallback<LoginResult>)',NULL),(4756,'CTRL-V Pastes in Chrome seem only detectable via BrowserEvents or\nKeyDownEvents, the latter is better.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/OnEditEnabler.java',96,97,'com.google.gerrit.client.ui.OnEditEnabler','listenTo(TextBoxBase)',NULL),(4757,'For some reason keeping track of preferredWidth keeps the width better,\nbut using 100% for height works better.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyWatchedProjectsScreen.java',158,159,'com.google.gerrit.client.account.MyWatchedProjectsScreen','onResize(ResizeEvent)',NULL),(4758,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',352,355,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(ObjectReader, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4759,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',398,401,'com.google.gerrit.server.patch.PatchListCacheImpl','createEntry(IntraLineDiffKey)',NULL),(4760,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',379,382,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(ObjectReader, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4761,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',425,428,'com.google.gerrit.server.patch.PatchListCacheImpl','createEntry(IntraLineDiffKey)',NULL),(4762,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',411,414,'com.google.gerrit.server.patch.PatchListCacheImpl','newEntry(ObjectReader, Text, Text, List<Edit>, RevTree, RevTree, FileHeader)',NULL),(4763,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',457,460,'com.google.gerrit.server.patch.PatchListCacheImpl','createEntry(IntraLineDiffKey)',NULL),(4764,'If two or more projects contains \\\"query\\\" as substring create an\nOrPredicate holding predicates for all these projects, otherwise if\nonly one contains that, return only that one predicate by itself.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java',497,499,'com.google.gerrit.server.query.change.ChangeQueryBuilder','defaultField(String)',NULL),(4765,'TODO(jeffschu) correctly handle merge commits','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',232,232,'com.google.gerrit.server.patch.PatchListCacheImpl','readPatchList(PatchListKey, Repository)',NULL),(4766,'TODO(jeffschu) correctly handle merge commits','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',88,88,'com.google.gerrit.server.patch.PatchListLoader','readPatchList(PatchListKey, Repository)','NOT_DESIGN'),(4767,'merge commit, return null to force combined diff behavior','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',364,364,'com.google.gerrit.server.patch.PatchListCacheImpl','aFor(PatchListKey, Repository, RevWalk, RevCommit)',NULL),(4768,'merge commit, return null to force combined diff behavior','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',220,220,'com.google.gerrit.server.patch.PatchListLoader','aFor(PatchListKey, Repository, RevWalk, RevCommit)',NULL),(4769,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',400,403,'com.google.gerrit.server.patch.PatchListCacheImpl','createEntry(IntraLineDiffKey)',NULL),(4770,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',52,55,'com.google.gerrit.server.patch.IntraLineLoader','createEntry(IntraLineDiffKey)',NULL),(4771,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',427,430,'com.google.gerrit.server.patch.PatchListCacheImpl','createEntry(IntraLineDiffKey)',NULL),(4772,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',79,82,'com.google.gerrit.server.patch.IntraLineLoader','createEntry(IntraLineDiffKey)',NULL),(4773,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',459,462,'com.google.gerrit.server.patch.PatchListCacheImpl','createEntry(IntraLineDiffKey)',NULL),(4774,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',111,114,'com.google.gerrit.server.patch.IntraLineLoader','createEntry(IntraLineDiffKey)',NULL),(4775,'Combine edits that are really close together. Right now our rule\nis, coalesce two line edits which are only one line apart if that\ncommon context line is either a \\\"pointless line\\\", or is identical\non both sides and starts a new block of code. These are mostly\nblock reindents to add or remove control flow operators.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListCacheImpl.java',579,584,'com.google.gerrit.server.patch.PatchListCacheImpl','combineLineEdits(List<Edit>, Text, Text)',NULL),(4776,'Combine edits that are really close together. Right now our rule\nis, coalesce two line edits which are only one line apart if that\ncommon context line is either a \\\"pointless line\\\", or is identical\non both sides and starts a new block of code. These are mostly\nblock reindents to add or remove control flow operators.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',231,236,'com.google.gerrit.server.patch.IntraLineLoader','combineLineEdits(List<Edit>, Text, Text)',NULL),(4777,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',228,231,'com.google.gerrit.server.patch.IntraLineLoader','compute(IntraLineDiffKey)',NULL),(4778,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',255,258,'com.google.gerrit.server.patch.IntraLineLoader','compute(IntraLineDiffKey)',NULL),(4779,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',287,290,'com.google.gerrit.server.patch.IntraLineLoader','compute(IntraLineDiffKey)',NULL),(4780,'If the git base path is itself a git repository working\ndirectory, this is a bit nonsensical for Gerrit Code Review.\nSkip the path and do the next one.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/GitProjectImporter.java',83,85,'com.google.gerrit.server.git.GitProjectImporter','importProjects(File, String, ReviewDb, Set<String>)',NULL),(4781,'Link back to Gerrit (when possible, to matching review record).\nSupported Gitweb\'s hash values are:\n- (missing),\n- HEAD,\n- refs/heads/<branch>,\n- refs/changes/*/<change>/*,\n- <revision>.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',227,234,'com.google.gerrit.httpd.gitweb.GitWebServlet','None',NULL),(4782,'TODO We should alert the user to this message on the HTTP\nresponse channel, assuming Git will even report it to them.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java',228,230,'com.google.gerrit.httpd.ProjectServlet','create(HttpServletRequest, Repository)',NULL),(4783,'TODO We should alert the user to this message on the HTTP\nresponse channel, assuming Git will even report it to them.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java',258,260,'com.google.gerrit.httpd.ProjectServlet','configure()',NULL),(4784,'TODO: use category.getLabel() when available','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReviewNoteHeaderFormatter.java',55,55,'com.google.gerrit.server.git.ReviewNoteHeaderFormatter','appendApproval(ApprovalCategory, short, Account)',NULL),(4785,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/AddReviewer.java',133,135,'com.google.gerrit.httpd.rpc.patch.AddReviewer','call()',NULL),(4786,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'-- All Projects --\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_53.java',65,66,'com.google.gerrit.server.schema.Schema_53','migrateData(ReviewDb, UpdateUI)',NULL),(4787,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'-- All Projects --\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_53.java',110,111,'com.google.gerrit.server.schema.Schema_53','exportProjectConfig(ReviewDb)',NULL),(4788,'TODO This should never be null when initializing a site.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/SchemaCreator.java',115,115,'com.google.gerrit.server.schema.SchemaCreator','create(ReviewDb)',NULL),(4789,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'-- All Projects --\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/SchemaCreator.java',207,208,'com.google.gerrit.server.schema.SchemaCreator','initWildCardProject()',NULL),(4790,'TODO We really should take advantage of the Git commit DAG and\nensure the current version matches the old version the caller read.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectSettings.java',78,80,'com.google.gerrit.httpd.rpc.project.ChangeProjectSettings','call()',NULL),(4791,'The user could no longer modify access after deleting a ref right.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java',160,160,'com.google.gerrit.client.admin.ProjectAccessScreen','onInitUI()',NULL),(4792,'TODO (anatol.pomazau): Try to merge this method with similar RefRightsForPattern#canPerform','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java',197,197,'com.google.gerrit.server.project.ProjectControl','canPerformOnAnyRef(ApprovalCategory.Id, short)','NOT_DESIGN'),(4793,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'-- All Projects --\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_53.java',157,158,'com.google.gerrit.server.schema.Schema_53','migrateData(ReviewDb, UpdateUI)',NULL),(4794,'TODO: use category.getLabel() when available','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReviewNoteHeaderFormatter.java',54,54,'com.google.gerrit.server.git.ReviewNoteHeaderFormatter','appendApproval(ApprovalCategory, short, Account)','NOT_DESIGN'),(4795,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/ReviewNoteHeaderFormatter.java',-1,-1,'None','None',NULL),(4796,'TODO: this is a non-standard label. Offer it without the type.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PublishCommentScreen.java',236,236,'com.google.gerrit.client.changes.PublishCommentScreen','onInitUI()',NULL),(4797,'Only permit exclusive group behavior on non OWNER permissions,\notherwise an owner might lose access to a delegated subspace.\n','Line','gerrit-common/src/main/java/com/google/gerrit/common/data/Permission.java',98,100,'com.google.gerrit.common.data.Permission','getExclusiveGroup()',NULL),(4798,'Special case: If the section list is empty, this project has no current\naccess control information. Rely on what ProjectControl determines\nis ownership, which probably means falling back to site administrators.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAccessFactory.java',115,117,'com.google.gerrit.httpd.rpc.project.ProjectAccessFactory','call()',NULL),(4799,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'All-Projects\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_53.java',157,158,'com.google.gerrit.server.schema.Schema_53','migrateData(ReviewDb, UpdateUI)',NULL),(4800,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'-- All Projects --\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/SchemaCreator.java',218,219,'com.google.gerrit.server.schema.SchemaCreator','initWildCardProject()',NULL),(4801,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'All-Projects\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/SchemaCreator.java',218,219,'com.google.gerrit.server.schema.SchemaCreator','initWildCardProject()',NULL),(4802,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/AddReviewer.java',136,138,'com.google.gerrit.server.patch.AddReviewer','call()',NULL),(4803,'TODO Replace this with a per-project ClassLoader to isolate rules.','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java',125,125,'com.google.gerrit.server.project.ProjectState','newPrologEnvironment()',NULL),(4804,'If the owner can edit the Global Capabilities but they don\'t exist in this\nproject, create an empty one at the beginning of the list making it\npossible to add permissions to it.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessEditor.java',83,85,'com.google.gerrit.client.admin.ProjectAccessEditor','onAddSection(ClickEvent)',NULL),(4805,'FIXME Assign low priority to this group.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java',131,131,'com.google.gerrit.server.schema.Schema_57','migrateData(ReviewDb, UpdateUI)','DESIGN'),(4806,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java',-1,-1,'None','None',NULL),(4807,'TODO Replace this with a per-project ClassLoader to isolate rules.','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java',129,129,'com.google.gerrit.server.project.ProjectState','newPrologEnvironment()','DESIGN'),(4808,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java',-1,-1,'None','None',NULL),(4809,'TODO: this is a non-standard label. Offer it without the type.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PublishCommentScreen.java',235,235,'com.google.gerrit.client.changes.PublishCommentScreen','onInitUI()',NULL),(4810,'TODO Newer style label.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PublishCommentScreen.java',229,229,'com.google.gerrit.client.changes.PublishCommentScreen','onInitUI()',NULL),(4811,'TODO Push this selection of labels down into the Prolog interpreter.\nIdeally we discover the labels the user can apply here based on doing\na findall() over the space of labels they can apply combined against\nthe submit rule, thereby skipping any mutually exclusive cases. However\nthose are not common, so it might just be reasonable to take this\nsimple approach.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java',101,106,'com.google.gerrit.httpd.rpc.changedetail.PatchSetPublishDetailFactory','call()',NULL),(4812,'Ensure that the requested file is *actually* within the static dir base.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/StaticServlet.java',117,117,'com.google.gerrit.httpd.raw.StaticServlet','local(HttpServletRequest)',NULL),(4813,'Only permit a refresh if all new references start from the tip of\nan existing references. This happens some of the time within a\nGerrit Code Review server, perhaps about 50% of new references.\nSince a complete rebuild is so costly, try this approach first.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/TagSet.java',234,237,'com.google.gerrit.server.git.TagSet','lookupTag(AnyObjectId)',NULL),(4814,'If exactly one change matches, link to that change.\nTODO Link to a specific patch set, if one matched.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/DirectChangeByCommit.java',79,80,'com.google.gerrit.httpd.DirectChangeByCommit','doGet(HttpServletRequest, HttpServletResponse)',NULL),(4815,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',-1,-1,'None','None',NULL),(4816,'TODO(sop) handle an octopus merge.','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',235,235,'com.google.gerrit.server.patch.PatchListLoader','aFor(PatchListKey, Repository, RevWalk, RevCommit)',NULL),(4817,'For a file with content merge conflict that we produced a result\nabove on, collapse the file down to a single stage 0 with just\nthe blob content, and a randomly selected mode (the lowest stage,\nwhich should be the merge base, or ours).','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',312,315,'com.google.gerrit.server.patch.PatchListLoader','automerge(Repository, RevWalk, RevCommit)',NULL),(4818,'It would be possible to submit the change if the missing\ndependencies are also submitted. Perhaps the user just\nforgot to submit those.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1076,1079,'com.google.gerrit.server.git.MergeOp','dependencyError(CodeReviewCommit)',NULL),(4819,'It would be possible to submit the change if the missing\ndependencies are also submitted. Perhaps the user just\nforgot to submit those.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1107,1110,'com.google.gerrit.server.git.MergeOp','isSubmitStillPossible(CodeReviewCommit)',NULL),(4820,'It is impossible to submit this change as-is. The author\nneeds to rebase it in order to work around the missing\ndependencies.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1102,1105,'com.google.gerrit.server.git.MergeOp','dependencyError(CodeReviewCommit)',NULL),(4821,'It is impossible to submit this change as-is. The author\nneeds to rebase it in order to work around the missing\ndependencies.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1131,1134,'com.google.gerrit.server.git.MergeOp','isSubmitStillPossible(CodeReviewCommit)',NULL),(4822,'TODO Support HTTP without SSH.','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java',118,118,'com.google.gerrit.pgm.Daemon','run()','NOT_DESIGN'),(4823,'None','None','gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java',-1,-1,'None','None',NULL),(4824,'TODO We should alert the user to this message on the HTTP\nresponse channel, assuming Git will even report it to them.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java',272,274,'com.google.gerrit.httpd.ProjectServlet','configure()','DESIGN'),(4825,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java',-1,-1,'None','None',NULL),(4826,'Don\'t permit receive-pack to be executed if a refs/for/branch_name\nreference exists in the destination repository. These block the\nclient from being able to even send us a pack file, as it is very\nunlikely the user passed the --force flag and the new commit is\nprobably not going to fast-forward the branch.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',308,313,'com.google.gerrit.server.git.ReceiveCommits','create(ProjectControl, Repository)','DESIGN'),(4827,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',-1,-1,'None','None',NULL),(4828,'Does not account for draft status as a user might want to let a\nreviewer see a draft.','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/AddReviewer.java',162,163,'com.google.gerrit.server.patch.AddReviewer','call()',NULL),(4829,'Clean up the path. Users seem to like putting extra slashes into the URL\nwhich can break redirections by misinterpreting at either client or server.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java',274,275,'com.google.gerrit.client.Gerrit','upgradeUI(String)',NULL),(4830,'TODO since this is performed \\\"in the background\\\" no mail will be\nsent to inform users about the updated branch','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java',335,336,'com.google.gerrit.server.git.SubmoduleOp','updateGitlinks(Branch.NameKey, Map<Branch.NameKey, ObjectId>, Map<Branch.NameKey, String>, String)',NULL),(4831,'Subscription really related to this running server.','Line','gerrit-server/src/main/java/com/google/gerrit/server/util/SubmoduleSectionParser.java',92,92,'com.google.gerrit.server.util.SubmoduleSectionParser','parse(String)',NULL),(4832,'Mark this file reviewed as soon we display the diff screen','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java',453,453,'com.google.gerrit.client.patches.PatchScreen','onResult(PatchScript, boolean)','DESIGN'),(4833,'ReceiveCommits has tried its best to catch errors, so anything at this\npoint is very bad.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/AsyncReceiveCommits.java',125,126,'com.google.gerrit.server.git.AsyncReceiveCommits','onPreReceive(ReceivePack, Collection<ReceiveCommand>)',NULL),(4834,'Send an update on every wakeup (manual or spurious), but only move\nthe spinner every maxInterval.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MultiProgressMonitor.java',162,163,'com.google.gerrit.server.git.MultiProgressMonitor','waitFor(Future<?>)',NULL),(4835,'Send an update on every wakeup (manual or spurious), but only move\nthe spinner every maxInterval.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MultiProgressMonitor.java',183,184,'com.google.gerrit.server.git.MultiProgressMonitor','waitFor(Future<?>, long, TimeUnit)',NULL),(4836,'TODO(cranger): remove once the schema is migrated in the next patch.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',76,76,'com.google.gerrit.server.mail.ChangeEmail','setFrom(Account.Id)','NOT_DESIGN'),(4837,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',-1,-1,'None','None',NULL),(4838,'TODO(sop): Highlight changes I haven\'t reviewed on my dashboard.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java',276,276,'com.google.gerrit.client.changes.ChangeTable2','onClick(ClickEvent)',NULL),(4839,'Hard-code a default maximum number of queries to prevent\nusers from submitting too much to the server in a single call.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ListChanges.java',122,123,'com.google.gerrit.server.query.change.ListChanges','setLimit(int)',NULL),(4840,'The server doesn\'t tell us who the dashboard is for. Try to guess\nby looking at a change started by the owner and extract the name.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java',100,101,'com.google.gerrit.client.changes.AccountDashboardScreen','display(NativeList<ChangeList>)',NULL),(4841,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java',83,85,'com.google.gerrit.server.mail.CreateChangeSender','bccWatchers()',NULL),(4842,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java',65,67,'com.google.gerrit.server.mail.CreateChangeSender','init()',NULL),(4843,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java',154,156,'com.google.gerrit.server.mail.MergedSender','bccWatchesNotifySubmittedChanges()',NULL),(4844,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',330,332,'com.google.gerrit.server.mail.ChangeEmail','setFrom(Account.Id)',NULL),(4845,'Just don\'t BCC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',312,314,'com.google.gerrit.server.mail.ChangeEmail','setFrom(Account.Id)',NULL),(4846,'TODO: Replace with a loop iterating over possible formatters','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java',195,195,'com.google.gerrit.httpd.plugins.HttpPluginServlet','init(ServletConfig)','DESIGN'),(4847,'TODO: Add a cache','Line','gerrit-server/src/main/java/com/google/gerrit/server/documentation/MarkdownFormatter.java',34,34,'com.google.gerrit.server.documentation.MarkdownFormatter','None',NULL),(4848,'TODO Log failed member of DynamicSet.','Line','gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/DynamicSet.java',150,150,'com.google.gerrit.extensions.registration.DynamicSet','setOf(Binder, Class<T>)','NOT_DESIGN'),(4849,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java',-1,-1,'None','None',NULL),(4850,'TODO: Add a cache','Line','gerrit-server/src/main/java/com/google/gerrit/server/documentation/MarkdownFormatter.java',35,35,'com.google.gerrit.server.documentation.MarkdownFormatter','None','DESIGN'),(4851,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/documentation/MarkdownFormatter.java',-1,-1,'None','None',NULL),(4852,'TODO This should really be a compile time type error, but I\'m\ntoo lazy to create the mess of permutations required to setup\ntype safe returns for bindings in our little DSL.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/cache/CacheProvider.java',110,113,'com.google.gerrit.server.cache.CacheProvider','V> diskLimit(int)','DESIGN'),(4853,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/cache/CacheProvider.java',-1,-1,'None','None',NULL),(4854,'TODO(cranger): maybe get the state through the accountCache instead.','Line','gerrit-server/src/main/java/com/google/gerrit/server/IdentifiedUser.java',208,208,'com.google.gerrit.server.IdentifiedUser','state()',NULL),(4855,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/Natives.java',39,39,'com.google.gerrit.client.rpc.Natives','keys(JavaScriptObject)',NULL),(4856,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/RestApi.java',127,127,'com.google.gerrit.client.rpc.RestApi','send(AsyncCallback<T>)',NULL),(4857,'For some reason keeping track of preferredWidth keeps the width better,\nbut using 100% for height works better.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyWatchedProjectsScreen.java',160,161,'com.google.gerrit.client.account.MyWatchedProjectsScreen','onResize(ResizeEvent)','NOT_DESIGN'),(4858,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyWatchedProjectsScreen.java',-1,-1,'None','None',NULL),(4859,'TODO(sop): Highlight changes I haven\'t reviewed on my dashboard.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java',287,287,'com.google.gerrit.client.changes.ChangeTable2','onClick(ClickEvent)','NOT_DESIGN'),(4860,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java',-1,-1,'None','None',NULL),(4861,'On the AllProjects project the owner access right cannot be assigned,\nthis why for the AllProjects project we allow administrators to push\nconfiguration changes if they have push without being project owner.','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java',159,161,'com.google.gerrit.server.project.RefControl','canUpdate()',NULL),(4862,'None','None','gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/DynamicSet.java',-1,-1,'None','None',NULL),(4863,'Green check mark if the user is logged in and they reviewed that file','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java',557,557,'com.google.gerrit.client.changes.PatchTable','indexOf(Patch.Key)',NULL),(4864,'Green check mark if the user is logged in and they reviewed that file','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java',575,575,'com.google.gerrit.client.changes.PatchTable','isValid(Patch)',NULL),(4865,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1314,1317,'com.google.gerrit.server.git.ReceiveCommits','get()','DESIGN'),(4866,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1440,1443,'com.google.gerrit.server.git.ReceiveCommits','validate(boolean)',NULL),(4867,'Hard-code a default maximum number of queries to prevent\nusers from submitting too much to the server in a single call.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ListChanges.java',121,122,'com.google.gerrit.server.query.change.ListChanges','setLimit(int)',NULL),(4868,'Hard-code a default maximum number of queries to prevent\nusers from submitting too much to the server in a single call.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ListChanges.java',204,205,'com.google.gerrit.server.query.change.ListChanges','ensureSlash(String)',NULL),(4869,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/RestApi.java',131,131,'com.google.gerrit.client.rpc.RestApi','send(AsyncCallback<T>)','NOT_DESIGN'),(4870,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/RestApi.java',-1,-1,'None','None',NULL),(4871,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/RestApi.java',89,89,'com.google.gerrit.client.rpc.RestApi','None',NULL),(4872,'Users with the remove reviewer permission, the branch owner, project\nowner and site admin can remove anyone\nhas removal permissions\nbranch owner\nproject owner','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',285,289,'com.google.gerrit.server.project.ChangeControl','canRemoveReviewer(PatchSetApproval)',NULL),(4873,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',598,598,'com.google.gerrit.server.git.MergeOp','writeCherryPickCommit(Merger, CodeReviewCommit)',NULL),(4874,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/CherryPick.java',179,179,'com.google.gerrit.server.git.CherryPick','writeCherryPickCommit(Merger, CodeReviewCommit, CodeReviewCommit)',NULL),(4875,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',405,413,'com.google.gerrit.server.git.MergeOp','validateChangeList()',NULL),(4876,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',417,425,'com.google.gerrit.server.git.MergeOp','validateChangeList(List<Change>)',NULL),(4877,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',516,524,'com.google.gerrit.server.git.MergeOp','List<Change>> validateChangeList(List<Change>)',NULL),(4878,'Should never occur for a well written rule','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',482,482,'com.google.gerrit.server.project.ChangeControl','getSubmitTypeRecord(ReviewDb, PatchSet, ChangeData)',NULL),(4879,'TODO since this is performed \\\"in the background\\\" no mail will be\nsent to inform users about the updated branch','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java',339,340,'com.google.gerrit.server.git.SubmoduleOp','updateGitlinks(Branch.NameKey, Map<Branch.NameKey, ObjectId>, Map<Branch.NameKey, String>, String)',NULL),(4880,'TODO since this is performed \\\"in the background\\\" no mail will be\nsent to inform users about the updated branch','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java',340,341,'com.google.gerrit.server.git.SubmoduleOp','updateGitlinks(Branch.NameKey, RevWalk, Map<Branch.NameKey, ObjectId>, Map<Branch.NameKey, String>, String)',NULL),(4881,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',518,526,'com.google.gerrit.server.git.MergeOp','List<Change>> validateChangeList(List<Change>)',NULL),(4882,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',512,520,'com.google.gerrit.server.git.MergeOp','Change> validateChangeList(List<Change>)',NULL),(4883,'We cannot merge n as it would bring something we\naren\'t permitted to merge at this time. Drop n.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/RebaseSorter.java',60,62,'com.google.gerrit.server.git.RebaseSorter','sort(Collection<CodeReviewCommit>)',NULL),(4884,'no \\\"l../etc/passwd\\\"\nno \\\"foo/../etc/passwd\\\"\n\\\"foo/./foo\\\" is insane to ask\nwindows UNC path can be \\\"//...\\\"\ncommon unix wildcard\nwildcard or string parameter\nwildcard\nCould be used for aboslute paths in windows?\nredirect input\nredirect output\npipe\ndollar sign\ncarriage return','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',297,309,'com.google.gerrit.server.git.LocalDiskRepositoryManager','isUnreasonableName(Project.NameKey)',NULL),(4885,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/CherryPick.java',188,188,'com.google.gerrit.server.git.CherryPick','writeCherryPickCommit(Merger, CodeReviewCommit, CodeReviewCommit)',NULL),(4886,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',179,179,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(CodeReviewCommit, ApprovalTypes, Provider<String>, ReviewDb, IdentifiedUser.GenericFactory)',NULL),(4887,'Hard-code a default maximum number of queries to prevent\nusers from submitting too much to the server in a single call.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ListChanges.java',215,216,'com.google.gerrit.server.query.change.ListChanges','ensureSlash(String)','DESIGN'),(4888,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',-1,-1,'None','None',NULL),(4889,'This is a hack to detect an operator that requires authentication.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryChanges.java',108,108,'com.google.gerrit.server.query.change.QueryChanges','apply(TopLevelResource)',NULL),(4890,'Hard-code a default maximum number of queries to prevent\nusers from submitting too much to the server in a single call.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryChanges.java',155,156,'com.google.gerrit.server.query.change.QueryChanges','query()',NULL),(4891,'If there are path components still remaining after this projection\nis chosen, look for the projection based upon GET as the method as\nthe client thinks it is a nested collection.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/restapi/RestApiServlet.java',520,522,'com.google.gerrit.httpd.restapi.RestApiServlet','view(RestCollection<RestResource, RestResource>, String, List<String>)',NULL),(4892,'TODO: once the other users of ActionDialog have converted to\nREST APIs, we can use createCallback() rather than providing\nthem directly.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java',529,531,'com.google.gerrit.client.changes.PatchSetComplexDisclosurePanel','populateActions(PatchSetDetail)',NULL),(4893,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',146,146,'com.google.gerrit.server.change.PostReview','apply(RevisionResource, Input)',NULL),(4894,'TODO Support more generic label assignments.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',174,174,'com.google.gerrit.server.change.PostReview','checkLabels(RevisionResource, boolean, Map<String, Short>)',NULL),(4895,'TODO Support arbitrary label names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',322,322,'com.google.gerrit.server.change.PostReview','updateLabels(RevisionResource, Map<String, Short>)',NULL),(4896,'TODO: Implement delete of dashboards by API.','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/DeleteDashboard.java',53,53,'com.google.gerrit.server.project.DeleteDashboard','apply(DashboardResource, Input)',NULL),(4897,'TODO: Implement creation/update of dashboards by API.','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/SetDashboard.java',54,54,'com.google.gerrit.server.project.SetDashboard','apply(DashboardResource, Input)',NULL),(4898,'Should never occur for a well written rule','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitRule.java',52,52,'com.google.gerrit.sshd.commands.TestSubmitRule','processResults(ListTerm, Term)',NULL),(4899,'Should never occur for a well written rule','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitType.java',46,46,'com.google.gerrit.sshd.commands.TestSubmitType','processResults(ListTerm, Term)',NULL),(4900,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/RestApi.java',87,87,'com.google.gerrit.client.rpc.RestApi','None','NOT_DESIGN'),(4901,'TODO Switch to triplet project~branch~id format in URI.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeApi.java',62,62,'com.google.gerrit.client.changes.ChangeApi','api(int, String)',NULL),(4902,'Disallow processing query parameters as input body fields.\nImplementations of views should avoid duplicate naming.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/restapi/ParameterParser.java',174,175,'com.google.gerrit.httpd.restapi.ParameterParser','formToJson(Map<String, String[]>, Set<String>)',NULL),(4903,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',144,144,'com.google.gerrit.server.change.PostReview','apply(RevisionResource, Input)','NOT_DESIGN'),(4904,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',-1,-1,'None','None',NULL),(4905,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',340,340,'com.google.gerrit.server.change.PostReview','updateLabels(RevisionResource, Map<String, Short>)',NULL),(4906,'TODO Find another way to link reviewers to changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',388,388,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(4907,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide ApprovalType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',390,391,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(4908,'TODO Switch to triplet project~branch~id format in URI.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeApi.java',99,99,'com.google.gerrit.client.changes.ChangeApi','api(int, String, String)',NULL),(4909,'TODO Allow submitting non-current revision by changing the current.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java',106,106,'com.google.gerrit.server.change.Submit','inputType()',NULL),(4910,'TODO Remove RemoteJsonException from Gerrit sources.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java',126,126,'com.google.gerrit.client.ErrorDialog','setText(String)',NULL),(4911,'TODO Fix callers of ErrorDialog to stop passing random types.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java',131,131,'com.google.gerrit.client.ErrorDialog','setText(String)',NULL),(4912,'CTRL-V Pastes in Chrome seem only detectable via BrowserEvents or\nKeyDownEvents, the latter is better.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/TextBoxChangeListener.java',54,55,'com.google.gerrit.client.ui.TextBoxChangeListener','onKeyPress(KeyPressEvent)',NULL),(4913,'Don\'t allow the user to amend a merge created by Gerrit Code Review.\nThis seems to happen all too often, due to users not paying any\nattention to what they are doing.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1901,1904,'com.google.gerrit.server.git.ReceiveCommits','validCommit(RefControl, ReceiveCommand, RevCommit)','DESIGN'),(4914,'Hack off leading \'/\'','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/AvatarServlet.java',68,68,'com.google.gerrit.httpd.raw.AvatarServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(4915,'TODO(spearce) This probably should be more lazy.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/AndSource.java',86,87,'com.google.gerrit.server.query.change.AndSource','read()','DESIGN'),(4916,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/query/change/AndSource.java',-1,-1,'None','None',NULL),(4917,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/RestApi.java',130,130,'com.google.gerrit.client.rpc.RestApi','isNotFound(Throwable)',NULL),(4918,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',326,328,'com.google.gerrit.server.mail.ChangeEmail','includeWatchers(NotifyType)',NULL),(4919,'Just don\'t CC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/NotificationEmail.java',53,55,'com.google.gerrit.server.mail.NotificationEmail','includeWatchers(NotifyType)',NULL),(4920,'Might be a group name. Try to be nice and accept unique names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java',102,102,'com.google.gerrit.server.group.GroupsCollection','parse(String)',NULL),(4921,'Might be a group name. Try to be nice and accept unique names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java',116,116,'com.google.gerrit.server.group.GroupsCollection','parse(String)',NULL),(4922,'Might be a group name, be nice and accept unique names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java',115,115,'com.google.gerrit.server.group.GroupsCollection','parse(String)',NULL),(4923,'no \\\"l../etc/passwd\\\"\nno \\\"foo/../etc/passwd\\\"\n\\\"foo/./foo\\\" is insane to ask\nwindows UNC path can be \\\"//...\\\"\ncommon unix wildcard\nwildcard or string parameter\nwildcard\nCould be used for aboslute paths in windows?\nredirect input\nredirect output\npipe\ndollar sign\ncarriage return','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',294,306,'com.google.gerrit.server.git.LocalDiskRepositoryManager','isUnreasonableName(Project.NameKey)','DESIGN'),(4924,'no windows/dos style paths\nno absolute paths\nno absolute paths','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',290,292,'com.google.gerrit.server.git.LocalDiskRepositoryManager','isUnreasonableName(Project.NameKey)',NULL),(4925,'no \\\"l../etc/passwd\\\"\nno \\\"foo/../etc/passwd\\\"\n\\\"foo/./foo\\\" is insane to ask\nwindows UNC path can be \\\"//...\\\"\ncommon unix wildcard\nwildcard or string parameter\nwildcard\nCould be used for absolute paths in windows?\nredirect input\nredirect output\npipe\ndollar sign\ncarriage return','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',294,306,'com.google.gerrit.server.git.LocalDiskRepositoryManager','isUnreasonableName(Project.NameKey)',NULL),(4926,'is a reasonable name','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',308,308,'com.google.gerrit.server.git.LocalDiskRepositoryManager','isUnreasonableName(Project.NameKey)',NULL),(4927,'TODO Switch to triplet project~branch~id format in URI.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeApi.java',94,94,'com.google.gerrit.client.changes.ChangeApi','api(int, String)','NOT_DESIGN'),(4928,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeApi.java',-1,-1,'None','None',NULL),(4929,'TODO Switch to triplet project~branch~id format in URI.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeApi.java',102,102,'com.google.gerrit.client.changes.ChangeApi','change(int)',NULL),(4930,'The server doesn\'t tell us who the dashboard is for. Try to guess\nby looking at a change started by the owner and extract the name.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java',101,102,'com.google.gerrit.client.changes.AccountDashboardScreen','display(JsArray<ChangeList>)',NULL),(4931,'TODO: Support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',311,311,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)',NULL),(4932,'TODO: support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',401,401,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)',NULL),(4933,'TODO Newer style label.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PublishCommentScreen.java',240,240,'com.google.gerrit.client.changes.PublishCommentScreen','onInitUI()','NOT_DESIGN'),(4934,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PublishCommentScreen.java',-1,-1,'None','None',NULL),(4935,'TODO','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/RestSession.java',45,45,'com.google.gerrit.acceptance.RestSession','post(String)',NULL),(4936,'deprecated alias to review command','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/MasterCommandModule.java',40,40,'com.google.gerrit.sshd.commands.MasterCommandModule','configure()',NULL),(4937,'TODO: Support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ReviewerJson.java',93,93,'com.google.gerrit.server.change.ReviewerJson','format(Collection<ReviewerResource>)',NULL),(4938,'Does not account for draft status as a user might want to let a\nreviewer see a draft.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',196,197,'com.google.gerrit.server.change.PostReviewers','putGroup(ChangeResource, Input)',NULL),(4939,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',255,257,'com.google.gerrit.server.change.PostReviewers','postAdd(Change, PostResult)',NULL),(4940,'TODO: support arbitrary labels.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',374,374,'com.google.gerrit.client.changes.ApprovalTable','displayRow(int, ApprovalDetail, ChangeInfo, AccountInfo)','NOT_DESIGN'),(4941,'Does not account for draft status as a user might want to let a\nreviewer see a draft.','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/AddReviewer.java',170,171,'com.google.gerrit.server.patch.AddReviewer','call()',NULL),(4942,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/AddReviewer.java',230,232,'com.google.gerrit.server.patch.AddReviewer','call()',NULL),(4943,'We can only approximately reconstruct what the submit rule evaluator\nwould have done. These should really come from a stored submit record.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',468,469,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)',NULL),(4944,'Users with the remove reviewer permission, the branch owner, project\nowner and site admin can remove anyone\nhas removal permissions\nbranch owner\nproject owner','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',281,285,'com.google.gerrit.server.project.ChangeControl','canRemoveReviewer(PatchSetApproval)',NULL),(4945,'We can only approximately reconstruct what the submit rule evaluator\nwould have done. These should really come from a stored submit record.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',472,473,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)','DESIGN'),(4946,'We can only approximately reconstruct what the submit rule evaluator\nwould have done. These should really come from a stored submit record.\n\nDon\'t use Maps.newTreeMap(Comparator) due to OpenJDK bug 100167.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',474,477,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)',NULL),(4947,'admin is the owner of the change and should not appear as reviewer','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/ssh/PushForReviewIT.java',175,175,'com.google.gerrit.acceptance.git.ssh.PushForReviewIT','setUp()','NOT_DESIGN'),(4948,'TODO: Support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',259,259,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(CodeReviewCommit, ApprovalTypes, Provider<String>, ReviewDb, IdentifiedUser.GenericFactory)',NULL),(4949,'TODO: Convert keys to label names.','Line','gerrit-common/src/main/java/com/google/gerrit/common/data/ApprovalSummary.java',40,40,'com.google.gerrit.common.data.ApprovalSummary','PatchSetApproval> getApprovalMap()',NULL),(4950,'TODO: Support arbitrary labels','Line','gerrit-server/src/main/java/com/google/gerrit/server/workflow/FunctionState.java',73,73,'com.google.gerrit.server.workflow.FunctionState','getApprovalTypes()',NULL),(4951,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide ApprovalType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',404,405,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(4952,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide LabelType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',404,405,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(4953,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java',-1,-1,'None','None',NULL),(4954,'Should never occur for a well written rule','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitRule.java',54,54,'com.google.gerrit.sshd.commands.TestSubmitRule','processResults(ListTerm, Term)',NULL),(4955,'Should never occur for a well written rule','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitType.java',48,48,'com.google.gerrit.sshd.commands.TestSubmitType','processResults(ListTerm, Term)',NULL),(4956,'If s=0 is used in the URL, the user has explicitly asked us\nto not perform selection on the server side, perhaps due to\nit incorrectly guessing their user agent.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java',238,241,'com.google.gerrit.httpd.raw.HostPageServlet','json(Object, StringWriter)',NULL),(4957,'If s=0 is used in the URL, the user has explicitly asked us\nto not perform selection on the server side, perhaps due to\nit incorrectly guessing their user agent.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java',241,243,'com.google.gerrit.httpd.raw.HostPageServlet','json(Object, StringWriter)',NULL),(4958,'None','None','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/PushForReviewIT.java',-1,-1,'None','None',NULL),(4959,'TODO: support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',448,448,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)','NOT_DESIGN'),(4960,'TODO Support arbitrary labels placed by a reviewer.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',449,449,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)',NULL),(4961,'Might be a group name, be nice and accept unique names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java',112,112,'com.google.gerrit.server.group.GroupsCollection','parse(String)',NULL),(4962,'Might be a group name, be nice and accept unique names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java',158,158,'com.google.gerrit.server.group.GroupsCollection','_parse(String)',NULL),(4963,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/container/HttpLoginServlet.java',184,187,'com.google.gerrit.httpd.auth.container.HttpLoginServlet','getRemoteUser(HttpServletRequest)',NULL),(4964,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/container/HttpAuthFilter.java',140,143,'com.google.gerrit.httpd.auth.container.HttpAuthFilter','getRemoteUser(HttpServletRequest)',NULL),(4965,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',181,181,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(CodeReviewCommit, LabelTypes, Provider<String>, ReviewDb, IdentifiedUser.GenericFactory)',NULL),(4966,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',220,220,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(CodeReviewCommit)',NULL),(4967,'TODO: Support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',261,261,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(CodeReviewCommit, LabelTypes, Provider<String>, ReviewDb, IdentifiedUser.GenericFactory)',NULL),(4968,'TODO: Support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',301,301,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(CodeReviewCommit)','NOT_DESIGN'),(4969,'TODO This should never be null when initializing a site.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/SchemaCreator.java',117,117,'com.google.gerrit.server.schema.SchemaCreator','create(ReviewDb)','DESIGN'),(4970,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/schema/SchemaCreator.java',-1,-1,'None','None',NULL),(4971,'TODO: Support arbitrary labels','Line','gerrit-server/src/main/java/com/google/gerrit/server/workflow/FunctionState.java',69,69,'com.google.gerrit.server.workflow.FunctionState','getLabelTypes()','NOT_DESIGN'),(4972,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/workflow/FunctionState.java',-1,-1,'None','None',NULL),(4973,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',-1,-1,'None','None',NULL),(4974,'TODO Support more generic label assignments.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',176,176,'com.google.gerrit.server.change.PostReview','checkLabels(RevisionResource, boolean, Map<String, Short>)','NOT_DESIGN'),(4975,'TODO Support arbitrary label names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',342,342,'com.google.gerrit.server.change.PostReview','updateLabels(RevisionResource, Map<String, Short>)','NOT_DESIGN'),(4976,'TODO: Support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',338,338,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)','NOT_DESIGN'),(4977,'TODO Support arbitrary labels placed by a reviewer.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',447,447,'com.google.gerrit.server.change.ChangeJson','ensureSlash(String)','NOT_DESIGN'),(4978,'TODO: Support arbitrary labels.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ReviewerJson.java',95,95,'com.google.gerrit.server.change.ReviewerJson','format(Collection<ReviewerResource>)','NOT_DESIGN'),(4979,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/ReviewerJson.java',-1,-1,'None','None',NULL),(4980,'TODO','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/RestSession.java',59,59,'com.google.gerrit.acceptance.RestSession','post(String)','NOT_DESIGN'),(4981,'None','None','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/RestSession.java',-1,-1,'None','None',NULL),(4982,'Hack to obtain visibility to package level methods only.\nThese aren\'t yet part of the public JGit API.','Line','gerrit-patch-jgit/src/main/java/org/eclipse/jgit/internal/storage/file/WindowCacheStatAccessor.java',19,20,'None','None',NULL),(4983,'If the limit is at least 5 MiB but is not a whole multiple\nof MiB round up to the next one full megabyte. This is a very\ntiny memory increase in exchange for nice round units.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',106,108,'com.google.gerrit.server.git.LocalDiskRepositoryManager','configure()',NULL),(4984,'entered user name and password were correct, but user name could not be\nset for the newly created account and this is why the login fails,\nerror screen with error message should be shown to the user','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/ldap/UserPassAuthServiceImpl.java',71,73,'com.google.gerrit.httpd.auth.ldap.UserPassAuthServiceImpl','authenticate(String, String, AsyncCallback<LoginResult>)',NULL),(4985,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'All-Projects\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/SchemaCreator.java',186,187,'com.google.gerrit.server.schema.SchemaCreator','initWildCardProject()',NULL),(4986,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'All-Projects\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/AllProjectsCreator.java',88,89,'com.google.gerrit.server.schema.AllProjectsCreator','create()',NULL),(4987,'Unfortunately this validation isn\'t entirely complete. Clients\ncan have exceptions trying to evaluate the pattern if they don\'t\nsupport a token used, even if the server does support the token.\n\nAt the minimum, we can trap problems related to unmatched groups.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java',155,159,'com.google.gerrit.httpd.GerritConfigProvider','create()',NULL),(4988,'Unfortunately this validation isn\'t entirely complete. Clients\ncan have exceptions trying to evaluate the pattern if they don\'t\nsupport a token used, even if the server does support the token.\n\nAt the minimum, we can trap problems related to unmatched groups.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java',163,167,'com.google.gerrit.httpd.GerritConfigProvider','buildCommentLinks(Config)','DESIGN'),(4989,'Hack to pass FindReplace across the JSON serialization boundary, which\ndoesn\'t work with interfaces.','Line','gerrit-common/src/main/java/com/google/gerrit/common/data/GerritConfig.java',56,57,'com.google.gerrit.common.data.GerritConfig','None','DESIGN'),(4990,'Unfortunately this validation isn\'t entirely complete. Clients\ncan have exceptions trying to evaluate the pattern if they don\'t\nsupport a token used, even if the server does support the token.\n\nAt the minimum, we can trap problems related to unmatched groups.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java',162,166,'com.google.gerrit.server.git.ProjectConfig','buildCommentLink(Config, String)',NULL),(4991,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java',-1,-1,'None','None',NULL),(4992,'None','None','gerrit-common/src/main/java/com/google/gerrit/common/data/GerritConfig.java',-1,-1,'None','None',NULL),(4993,'Unfortunately this validation isn\'t entirely complete. Clients\ncan have exceptions trying to evaluate the pattern if they don\'t\nsupport a token used, even if the server does support the token.\n\nAt the minimum, we can trap problems related to unmatched groups.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java',166,170,'com.google.gerrit.server.git.ProjectConfig','buildCommentLink(Config, String, boolean)',NULL),(4994,'admin is the owner of the change and should not appear as reviewer','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/PushForReviewIT.java',175,175,'com.google.gerrit.acceptance.git.PushForReviewIT','testPushForMasterWithReviewer()',NULL),(4995,'In order to syntax highlight the file properly we need to\ngive the client the complete file contents. So force our\ncontext temporarily to the complete file size.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptBuilder.java',202,205,'com.google.gerrit.httpd.rpc.patch.PatchScriptBuilder','compare(Edit, Edit)',NULL),(4996,'In order to expand the skipped common lines or syntax highlight the\nfile properly we need to give the client the complete file contents.\nSo force our context temporarily to the complete file size.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptBuilder.java',202,205,'com.google.gerrit.httpd.rpc.patch.PatchScriptBuilder','compare(Edit, Edit)',NULL),(4997,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1734,1737,'com.google.gerrit.server.git.ReceiveCommits','validate(boolean)','DESIGN'),(4998,'Don\'t allow a change to directly depend upon itself. This is a\nvery common error due to users making a new commit rather than\namending when trying to address review comments.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1729,1731,'com.google.gerrit.server.git.ReceiveCommits','validate(boolean)',NULL),(4999,'admin is the owner of the change and should not appear as reviewer','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/PushForReviewIT.java',207,207,'com.google.gerrit.acceptance.git.PushForReviewIT','testPushForMasterWithReviewer(Protocol)','NOT_DESIGN'),(5000,'TODO: propagate this exception','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',76,76,'com.google.gerrit.server.project.ChangeControl','None',NULL),(5001,'In order to expand the skipped common lines or syntax highlight the\nfile properly we need to give the client the complete file contents.\nSo force our context temporarily to the complete file size.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptBuilder.java',207,210,'com.google.gerrit.httpd.rpc.patch.PatchScriptBuilder','compare(Edit, Edit)',NULL),(5002,'In order to expand the skipped common lines or syntax highlight the\nfile properly we need to give the client the complete file contents.\nSo force our context temporarily to the complete file size.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptBuilder.java',202,205,'com.google.gerrit.server.patch.PatchScriptBuilder','compare(Edit, Edit)',NULL),(5003,'This seems like a cheap trick. It doesn\'t properly account for a\nfile that gets renamed between patch set 1 and patch set 2. We\nwill wind up packing the wrong Patch object because we didn\'t do\nproper rename detection between the patch sets.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptFactory.java',229,233,'com.google.gerrit.httpd.rpc.patch.PatchScriptFactory','loadCommentsAndHistory(ChangeType, String, String)',NULL),(5004,'This seems like a cheap trick. It doesn\'t properly account for a\nfile that gets renamed between patch set 1 and patch set 2. We\nwill wind up packing the wrong Patch object because we didn\'t do\nproper rename detection between the patch sets.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptFactory.java',224,228,'com.google.gerrit.server.patch.PatchScriptFactory','loadCommentsAndHistory(ChangeType, String, String)',NULL),(5005,'TODO skip may need to be handled','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffInfo.java',66,66,'com.google.gerrit.client.diff.DiffInfo','text_a()',NULL),(5006,'TODO skip may need to be handled','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffInfo.java',81,81,'com.google.gerrit.client.diff.DiffInfo','text_b()',NULL),(5007,'TODO: Handle empty contents','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',134,134,'com.google.gerrit.client.diff.CodeMirrorDemo','displaySide(DiffInfo.FileMeta, String)',NULL),(5008,'TODO: Handle empty contents','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',137,137,'com.google.gerrit.client.diff.CodeMirrorDemo','displaySide(DiffInfo.FileMeta, String, Element)',NULL),(5009,'TODO: Handle intraline edit.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',202,202,'com.google.gerrit.client.diff.CodeMirrorDemo','render(DiffInfo)','NOT_DESIGN'),(5010,'TODO(dborowitz): Wrap predicates in query rewriter, not here.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java',300,300,'com.google.gerrit.server.query.change.ChangeQueryBuilder','file(String)','NOT_DESIGN'),(5011,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',180,180,'com.google.gerrit.lucene.LuceneChangeIndex','start()',NULL),(5012,'TODO(dborowitz): estimate from Lucene?','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',191,191,'com.google.gerrit.lucene.LuceneChangeIndex','getCardinality()',NULL),(5013,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java',-1,-1,'None','None',NULL),(5014,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',221,221,'com.google.gerrit.lucene.LuceneChangeIndex','start()',NULL),(5015,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',212,212,'com.google.gerrit.lucene.LuceneChangeIndex','close()',NULL),(5016,'TODO: Handle empty contents','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',143,143,'com.google.gerrit.client.diff.CodeMirrorDemo','displaySide(DiffInfo.FileMeta, String, Element)','NOT_DESIGN'),(5017,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',-1,-1,'None','None',NULL),(5018,'TODO: Implement intraline','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',174,174,'com.google.gerrit.client.diff.CodeMirrorDemo','render(DiffInfo)','NOT_DESIGN'),(5019,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',214,214,'com.google.gerrit.lucene.LuceneChangeIndex','close()',NULL),(5020,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',219,219,'com.google.gerrit.lucene.LuceneChangeIndex','start()',NULL),(5021,'Serve static resources directly from our JAR. This way we don\'t\nneed to unpack them into yet another temporary directory prior to\nserving to clients.\n','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java',341,344,'com.google.gerrit.pgm.http.jetty.JettyServer','makeContext(String, JettyEnv)',NULL),(5022,'Serve static resources directly from our JAR. This way we don\'t\nneed to unpack them into yet another temporary directory prior to\nserving to clients.\n','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java',342,345,'com.google.gerrit.pgm.http.jetty.JettyServer','makeContext(String, JettyEnv, Config)',NULL),(5023,'TODO: Format the comment box differently based on whether isDraft\nis true.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBox.java',74,75,'com.google.gerrit.client.diff.CommentBox','onLoad()',NULL),(5024,'TODO: Set avatar\'s display to none if we get a 404.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBox.java',112,112,'com.google.gerrit.client.diff.CommentBox','setAuthorNameText(AccountInfo)',NULL),(5025,'TODO: Change to use setInnerHtml','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBox.java',124,124,'com.google.gerrit.client.diff.CommentBox','setMessageText(String)','DESIGN'),(5026,'TODO: Probably need horizontal resize','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',174,174,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5027,'Common\nTODO: Handle skips.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',216,217,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5028,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBox.java',-1,-1,'None','None',NULL),(5029,'Special case: If the section list is empty, this project has no current\naccess control information. Rely on what ProjectControl determines\nis ownership, which probably means falling back to site administrators.','Line','gerrit-server/src/main/java/com/google/gerrit/server/access/ListAccess.java',225,227,'com.google.gerrit.server.access.ListAccess','ProjectAccessInfo> apply(TopLevelResource)',NULL),(5030,'TODO: estimate from solr?','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',219,219,'com.google.gerrit.solr.SolrChangeIndex','getCardinality()',NULL),(5031,'TODO Sort documents during merge to select only top N.','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',230,230,'com.google.gerrit.solr.SolrChangeIndex','read()',NULL),(5032,'TODO Move the schema version information to a special meta-document','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',309,309,'com.google.gerrit.solr.SolrChangeIndex','finishIndex()',NULL),(5033,'TODO Query schema version from a special meta-document','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/IndexVersionCheck.java',50,50,'com.google.gerrit.solr.IndexVersionCheck','start()',NULL),(5034,'TODO: Format the comment box differently based on whether isDraft\nis true.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBox.java',79,80,'com.google.gerrit.client.diff.CommentBox','onLoad()','NOT_DESIGN'),(5035,'TODO: Set avatar\'s display to none if we get a 404.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBox.java',118,118,'com.google.gerrit.client.diff.CommentBox','setAuthorNameText(AccountInfo)',NULL),(5036,'TODO: Set avatar\'s display to none if we get a 404.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBoxHeader.java',51,51,'com.google.gerrit.client.diff.CommentBoxHeader','setSummaryText(String)',NULL),(5037,'TODO: Make the buttons functional.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PublishedBox.java',26,26,'None','None','DESIGN'),(5038,'TODO: Make the buttons functional.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DraftBox.java',32,32,'None','None','DESIGN'),(5039,'TODO: Need a resize handler on editArea.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DraftBox.java',56,56,'com.google.gerrit.client.diff.DraftBox','onLoad()','NOT_DESIGN'),(5040,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PublishedBox.java',-1,-1,'None','None',NULL),(5041,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DraftBox.java',-1,-1,'None','None',NULL),(5042,'TODO(dborowitz): Parallelize these','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexerImpl.java',88,88,'com.google.gerrit.server.index.ChangeIndexerImpl','call()',NULL),(5043,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',253,253,'com.google.gerrit.lucene.LuceneChangeIndex','getIndexWriterConfig(Config, String)',NULL),(5044,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',260,260,'com.google.gerrit.lucene.LuceneChangeIndex','create(Schema<ChangeData>, String)',NULL),(5045,'TODO Move the schema version information to a special meta-document','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',326,326,'com.google.gerrit.solr.SolrChangeIndex','finishIndex()',NULL),(5046,'TODO Move the schema version information to a special meta-document','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',329,329,'com.google.gerrit.solr.SolrChangeIndex','markReady()',NULL),(5047,'TODO(dborowitz): Opening all repositories in a live server may be','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeBatchIndexer.java',231,231,'com.google.gerrit.server.index.ChangeBatchIndexer','call()','DESIGN'),(5048,'Common\nTODO: Handle skips.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',262,263,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()','NOT_DESIGN'),(5049,'Common','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',275,275,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5050,'Insert, Delete or Edit','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',287,287,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5051,'Ugly workaround because CodeMirror never hides lines completely.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',604,604,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5052,'Ugly workaround because CodeMirror never hides lines completely.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',605,605,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()','NOT_DESIGN'),(5053,'TODO: Re-implement necessary GlobalKey bindings.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',115,115,'com.google.gerrit.client.diff.CodeMirrorDemo','None',NULL),(5054,'TODO: Examine if a better way exists.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',241,241,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()','NOT_DESIGN'),(5055,'TODO: Set avatar\'s display to none if we get a 404.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBoxHeader.java',58,58,'com.google.gerrit.client.diff.CommentBoxHeader','setDate(Timestamp)','DESIGN'),(5056,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentBoxHeader.java',-1,-1,'None','None',NULL),(5057,'TODO Replace CherryPickDialog with a nicer looking display.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CherryPickAction.java',31,31,'com.google.gerrit.client.change.CherryPickAction','call(Button, Change.Id, String, String, String)',NULL),(5058,'TODO Support better UI on UiCommand results.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ActionButton.java',89,89,'com.google.gerrit.client.change.ActionButton','send()',NULL),(5059,'TODO Fix approximation of reviewers and CC list(s).','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java',390,390,'com.google.gerrit.client.change.ChangeScreen2','renderReviewers(ChangeInfo)',NULL),(5060,'TODO info card hover','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java',437,437,'com.google.gerrit.client.change.ChangeScreen2','renderOwner(ChangeInfo)',NULL),(5061,'TODO Replace ActionDialog with a nicer looking display.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RevertAction.java',30,30,'com.google.gerrit.client.change.RevertAction','call(Button, Change.Id, String, String, String)',NULL),(5062,'TODO(sop): Switch to Dispatcher.toPatchSideBySide.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java',114,114,'com.google.gerrit.client.change.FileTable','css()',NULL),(5063,'TODO(sop): Use JS to link, avoiding early URL update.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java',266,266,'com.google.gerrit.client.change.FileTable','columnPath(SafeHtmlBuilder, FileInfo)',NULL),(5064,'TODO Support better UI on UiAction results.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ActionButton.java',72,72,'com.google.gerrit.client.change.ActionButton','onClick(ClickEvent)','NOT_DESIGN'),(5065,'TODO: Prevent right click from updating the cursor.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',243,243,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5066,'TODO: Work on a better way for customizing keybindings.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',251,251,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5067,'TODO: Work on a better way for customizing keybindings.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',242,242,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()','NOT_DESIGN'),(5068,'TODO: Implement this to go to the next file in the patchset.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/ReviewedPanel.java',102,102,'com.google.gerrit.client.diff.ReviewedPanel','onNext(ClickEvent)',NULL),(5069,'TODO: Re-implement necessary GlobalKey bindings.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',127,127,'com.google.gerrit.client.diff.CodeMirrorDemo','None',NULL),(5070,'TODO: Re-implement necessary GlobalKey bindings.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',127,127,'com.google.gerrit.client.diff.SideBySide2','None',NULL),(5071,'TODO: Prevent right click from updating the cursor.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',253,253,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5072,'TODO: Prevent right click from updating the cursor.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',253,253,'com.google.gerrit.client.diff.SideBySide2','onInitUI()',NULL),(5073,'TODO: Probably need horizontal resize','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CodeMirrorDemo.java',332,332,'com.google.gerrit.client.diff.CodeMirrorDemo','onInitUI()',NULL),(5074,'TODO: Probably need horizontal resize','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',332,332,'com.google.gerrit.client.diff.SideBySide2','onInitUI()',NULL),(5075,'Hack to prevent feedback loop, Chrome seems fine but Firefox chokes.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',709,709,'com.google.gerrit.client.diff.SideBySide2','onInitUI()',NULL),(5076,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ActionButton.java',-1,-1,'None','None',NULL),(5077,'First line workaround','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java',160,160,'com.google.gerrit.client.diff.SkipBar','expandAfter()',NULL),(5078,'TODO(sop): Use JS to link, avoiding early URL update.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java',276,276,'com.google.gerrit.client.change.FileTable','columnPath(SafeHtmlBuilder, FileInfo)','DESIGN'),(5079,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java',-1,-1,'None','None',NULL),(5080,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeBatchIndexer.java',-1,-1,'None','None',NULL),(5081,'TODO(dborowitz): Opening all repositories in a live server may be','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeBatchIndexer.java',219,219,'com.google.gerrit.server.index.ChangeBatchIndexer','success()',NULL),(5082,'TODO: Maybe integrate this with PaddingManager.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',859,859,'com.google.gerrit.client.diff.SideBySide2','onInitUI()',NULL),(5083,'TODO: Better custom keybindings, remove temporary navigation hacks.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',92,92,'com.google.gerrit.client.diff.SideBySide2','None',NULL),(5084,'TODO Kill /accounts/*/avatar URL.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/AvatarImage.java',85,85,'com.google.gerrit.client.AvatarImage','None','NOT_DESIGN'),(5085,'TODO: Better custom keybindings, remove temporary navigation hacks.','Line','gerrit-gwtui/src/main/java/net/codemirror/lib/Loader.java',116,116,'net.codemirror.lib.Loader','initDisableUnwantedKeys()',NULL),(5086,'None','None','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java',-1,-1,'None','None',NULL),(5087,'TODO: Probably need horizontal resize','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',1023,1023,'com.google.gerrit.client.diff.SideBySide2','onInitUI()','NOT_DESIGN'),(5088,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',-1,-1,'None','None',NULL),(5089,'TODO: Maybe use patchIndex.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/NavLinks2.java',72,72,'com.google.gerrit.client.diff.NavLinks2','onLoad()',NULL),(5090,'TODO(dborowitz): Push limit down from predicate tree.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',259,259,'com.google.gerrit.lucene.LuceneChangeIndex','create(Schema<ChangeData>, String)','NOT_DESIGN'),(5091,'None','None','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',-1,-1,'None','None',NULL),(5092,'TODO: Maybe use patchIndex.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/Header.java',99,99,'com.google.gerrit.client.diff.Header','onLoad()',NULL),(5093,'TODO: Implement this to go to the next file in the patchset.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/ReviewedPanel.java',82,82,'com.google.gerrit.client.diff.ReviewedPanel','onNext(ClickEvent)',NULL),(5094,'we don\'t care\nbetter we would check if index was already renamed\ngwtorm doesn\'t expose this functionality','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_82.java',128,130,'com.google.gerrit.server.schema.Schema_82','preUpdateSchema(ReviewDb)',NULL),(5095,'TODO: Prevent right click from updating the cursor.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',273,273,'com.google.gerrit.client.diff.SideBySide2','onInitUI()','NOT_DESIGN'),(5096,'Hack to prevent feedback loop, Chrome seems fine but Firefox chokes.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',911,911,'com.google.gerrit.client.diff.SideBySide2','onInitUI()',NULL),(5097,'Hack to prevent feedback loop.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',910,910,'com.google.gerrit.client.diff.SideBySide2','onInitUI()',NULL),(5098,'TODO: Better custom keybindings, remove temporary navigation hacks.','Line','gerrit-gwtui/src/main/java/net/codemirror/lib/Loader.java',91,91,'net.codemirror.lib.Loader','initDisableUnwantedKeys()',NULL),(5099,'TODO We really should take advantage of the Git commit DAG and\nensure the current version matches the old version the caller read.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectSettings.java',82,84,'com.google.gerrit.httpd.rpc.project.ChangeProjectSettings','call()',NULL),(5100,'TODO Replace CherryPickDialog with a nicer looking display.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CherryPickAction.java',30,30,'com.google.gerrit.client.change.CherryPickAction','call(Button, ChangeInfo, String, String, String)',NULL),(5101,'For a file with content merge conflict that we produced a result\nabove on, collapse the file down to a single stage 0 with just\nthe blob content, and a randomly selected mode (the lowest stage,\nwhich should be the merge base, or ours).','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',341,344,'com.google.gerrit.server.patch.PatchListLoader','automerge(Repository, RevWalk, RevCommit)',NULL),(5102,'For a file with content merge conflict that we produced a result\nabove on, collapse the file down to a single stage 0 with just\nthe blob content, and a randomly selected mode (the lowest stage,\nwhich should be the merge base, or ours).','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',346,349,'com.google.gerrit.server.patch.PatchListLoader','automerge(Repository, RevWalk, RevCommit, boolean)',NULL),(5103,'indexed data should depend on what user is doing the indexing.','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java',201,201,'com.google.gerrit.pgm.Reindex','configure()','NOT_DESIGN'),(5104,'None','None','gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java',-1,-1,'None','None',NULL),(5105,'TODO Fix approximation of reviewers and CC list(s).','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java',649,649,'com.google.gerrit.client.change.ChangeScreen2','renderReviewers(ChangeInfo)','NOT_DESIGN'),(5106,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java',-1,-1,'None','None',NULL),(5107,'Hack to prevent feedback loop.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',925,925,'com.google.gerrit.client.diff.SideBySide2','doScroll(CodeMirror)','DESIGN'),(5108,'TODO(dborowitz): Parallelize these','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexerImpl.java',112,112,'com.google.gerrit.server.index.ChangeIndexerImpl','call()','DESIGN'),(5109,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexerImpl.java',-1,-1,'None','None',NULL),(5110,'TODO(dborowitz): > and < are broken at head.','Line','gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java',350,350,'com.google.gerrit.server.query.change.AbstractQueryChangesTest','byLabel()',NULL),(5111,'Try to find the user\'s home directory. If we can\'t find it\nreturn null so the JVM\'s default temporary directory is used\ninstead. This is probably /tmp or /var/tmp.\n','Line','gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java',466,469,'com.google.gerrit.launcher.GerritLauncher','tmproot()','DESIGN'),(5112,'None','None','gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java',-1,-1,'None','None',NULL),(5113,'Try to find the user\'s home directory. If we can\'t find it\nreturn null so the JVM\'s default temporary directory is used\ninstead. This is probably /tmp or /var/tmp.\n','Line','gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java',514,517,'com.google.gerrit.launcher.GerritLauncher','locateHomeDirectory()',NULL),(5114,'defer attribute here is to workaround IE running immediately.\n\n','Line','gerrit-gwtexpui/src/main/java/com/google/gwtexpui/linker/server/Permutation.java',115,117,'com.google.gwtexpui.linker.server.Permutation','inject(Document)',NULL),(5115,'defer attribute here is to workaround IE running immediately.\n','Line','gerrit-gwtexpui/src/main/java/com/google/gwtexpui/linker/server/Permutation.java',114,115,'com.google.gwtexpui.linker.server.Permutation','inject(Document)',NULL),(5116,'TODO(sop): Switch to Dispatcher.toPatchSideBySide.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileComments.java',74,74,'com.google.gerrit.client.change.FileComments','url(PatchSet.Id, CommentInfo)','NOT_DESIGN'),(5117,'TODO(sop): Switch to Dispatcher.toPatchSideBySide.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java',206,206,'com.google.gerrit.client.change.FileTable','css()','NOT_DESIGN'),(5118,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileComments.java',-1,-1,'None','None',NULL),(5119,'deprecated alias to review command','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/MasterCommandModule.java',39,39,'com.google.gerrit.sshd.commands.MasterCommandModule','configure()','NOT_DESIGN'),(5120,'None','None','gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/MasterCommandModule.java',-1,-1,'None','None',NULL),(5121,'TODO: This is not optimal, but shouldn\'t be too costly in most cases.\nMaybe rewrite after done keeping track of diff chunk positions.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',868,869,'com.google.gerrit.client.diff.SideBySide2','renderSkips(int)',NULL),(5122,'Does not account for draft status as a user might want to let a\nreviewer see a draft.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',211,212,'com.google.gerrit.server.change.PostReviewers','putGroup(ChangeResource, Input)','DESIGN'),(5123,'Does not account for draft status as a user might want to let a\nreviewer see a draft.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',200,201,'com.google.gerrit.server.change.PostReviewers','putGroup(ChangeResource, AddReviewerInput)',NULL),(5124,'Only execute this block once','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java',251,251,'com.google.gerrit.client.change.RelatedChanges','onDone(boolean)',NULL),(5125,'TODO Push this selection of labels down into the Prolog interpreter.\nIdeally we discover the labels the user can apply here based on doing\na findall() over the space of labels they can apply combined against\nthe submit rule, thereby skipping any mutually exclusive cases. However\nthose are not common, so it might just be reasonable to take this\nsimple approach.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java',92,97,'com.google.gerrit.httpd.rpc.changedetail.PatchSetPublishDetailFactory','call()',NULL),(5126,'TODO canSubmit?','Block','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PublishCommentScreen.java',398,398,'com.google.gerrit.client.changes.PublishCommentScreen','onInitUI()',NULL),(5127,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',273,275,'com.google.gerrit.server.change.PostReviewers','postAdd(Change, PostResult)',NULL),(5128,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',259,261,'com.google.gerrit.server.change.PostReviewers','postAdd(Change, List<PatchSetApproval>)',NULL),(5129,'TODO(dborowitz): > and < are broken at head.','Line','gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java',382,382,'com.google.gerrit.server.query.change.AbstractQueryChangesTest','byLabel()','DESIGN'),(5130,'None','None','gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java',-1,-1,'None','None',NULL),(5131,'TODO canSubmit?','Block','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PublishCommentScreen.java',397,397,'com.google.gerrit.client.changes.PublishCommentScreen','onInitUI()','DESIGN'),(5132,'TODO: This is not optimal, but shouldn\'t be too costly in most cases.\nMaybe rewrite after done keeping track of diff chunk positions.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',950,951,'com.google.gerrit.client.diff.SideBySide2','renderSkips(int)',NULL),(5133,'TODO: This is not optimal, but shouldn\'t be too costly in most cases.\nMaybe rewrite after done keeping track of diff chunk positions.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentManager.java',164,165,'com.google.gerrit.client.diff.CommentManager','splitSkips(int, List<SkippedLine>)',NULL),(5134,'First line workaround','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java',163,163,'com.google.gerrit.client.diff.SkipBar','expandAfter()','NOT_DESIGN'),(5135,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java',-1,-1,'None','None',NULL),(5136,'First line workaround','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java',81,81,'com.google.gerrit.client.diff.SkipBar','collapse(int, int, boolean)',NULL),(5137,'TODO: Re-implement necessary GlobalKey bindings.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',134,134,'com.google.gerrit.client.diff.SideBySide2','onInitUI()','NOT_DESIGN'),(5138,'TODO: Maybe integrate this with PaddingManager.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java',823,823,'com.google.gerrit.client.diff.SideBySide2','resizeLinePadding(DisplaySide)','DESIGN'),(5139,'Every comment appears in both side maps as a linked pair.\nIt is only necessary to search one side to find a comment\non either side of the editor pair.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentManager.java',85,87,'com.google.gerrit.client.diff.CommentManager','commentNav(CodeMirror, Direction)',NULL),(5140,'TODO(dborowitz): Wrap fewer exceptions if/when we kill gwtorm.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',75,75,'com.google.gerrit.server.notedb.ChangeNotes','apply(PatchSetApproval)',NULL),(5141,'TODO(dborowitz): Wrap fewer exceptions if/when we kill gwtorm.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',81,81,'com.google.gerrit.server.notedb.ChangeNotes','apply(PatchSetApproval)','NOT_DESIGN'),(5142,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',-1,-1,'None','None',NULL),(5143,'TODO(dborowitz): Wrap fewer exceptions if/when we kill gwtorm.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',243,243,'com.google.gerrit.server.notedb.ChangeNotes','load()',NULL),(5144,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',384,384,'com.google.gerrit.server.change.PostReview','updateLabels(RevisionResource, Map<String, Short>)',NULL),(5145,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',397,397,'com.google.gerrit.server.change.PostReview','updateLabels(RevisionResource, ChangeUpdate, Map<String, Short>)',NULL),(5146,'TODO(dborowitz): Store normalized labels in notedb.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',908,908,'com.google.gerrit.server.git.MergeOp','saveApprovals(Change, ChangeNotes, PatchSet.Id)','NOT_DESIGN'),(5147,'Don\'t use asserts from PushOneCommit so we can test the round-trip\nthrough JSON instead of querying the DB directly.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/LabelTypeIT.java',387,388,'com.google.gerrit.acceptance.server.project.LabelTypeIT','assertApproval(PushOneCommit.Result, int)',NULL),(5148,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',-1,-1,'None','None',NULL),(5149,'TODO(davido): find a better way to enforce cache invalidation.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java',117,117,'com.google.gerrit.server.change.DeleteDraftPatchSet','deleteOrUpdateDraftChange(PatchSet.Id, Change)',NULL),(5150,'TODO Find another way to link reviewers to changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',446,446,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5151,'TODO Find another way to link reviewers to changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',440,440,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5152,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide LabelType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',448,449,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5153,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide LabelType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',442,443,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5154,'TODO(davido): find a better way to enforce cache invalidation.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java',127,127,'com.google.gerrit.server.change.DeleteDraftPatchSet','deleteOrUpdateDraftChange(PatchSet.Id, Change)',NULL),(5155,'Might be a group name, be nice and accept unique names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java',157,157,'com.google.gerrit.server.group.GroupsCollection','_parse(String)',NULL),(5156,'Might be a group name, be nice and accept unique names.','Line','gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java',165,165,'com.google.gerrit.server.group.GroupsCollection','parseId(String)',NULL),(5157,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/Natives.java',99,99,'com.google.gerrit.client.rpc.Natives','keys(JavaScriptObject)',NULL),(5158,'javac generics bug','Line','gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/Natives.java',99,99,'com.google.gerrit.client.rpc.Natives','keys(JavaScriptObject)','NOT_DESIGN'),(5159,'If s=0 is used in the URL, the user has explicitly asked us\nto not perform selection on the server side, perhaps due to\nit incorrectly guessing their user agent.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java',272,274,'com.google.gerrit.httpd.raw.HostPageServlet','json(Object, StringWriter)','DESIGN'),(5160,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java',-1,-1,'None','None',NULL),(5161,'TODO Find another way to link reviewers to changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',478,478,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5162,'TODO Find another way to link reviewers to changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',472,472,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5163,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide LabelType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',480,481,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5164,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide LabelType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',474,475,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5165,'If two or more projects contains \\\"query\\\" as substring create an\nOrPredicate holding predicates for all these projects, otherwise if\nonly one contains that, return only that one predicate by itself.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java',726,728,'com.google.gerrit.server.query.change.ChangeQueryBuilder','defaultField(String)','DESIGN'),(5166,'Skip.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java',691,691,'com.google.gerrit.server.query.change.ChangeQueryBuilder','defaultField(String)',NULL),(5167,'We can only approximately reconstruct what the submit rule evaluator\nwould have done. These should really come from a stored submit record.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',568,569,'com.google.gerrit.server.change.ChangeJson','iterator()',NULL),(5168,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/AvatarImage.java',-1,-1,'None','None',NULL),(5169,'TODO Kill /accounts/*/avatar URL.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/AvatarImage.java',94,94,'com.google.gerrit.client.AvatarImage','setAccount(AccountInfo, int, boolean)',NULL),(5170,'TODO: Migrate this to IntegerRangePredicate','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/TimestampRangePredicate.java',28,28,'None','None',NULL),(5171,'TODO - dborowitz: add NEW_CHANGE type for default.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeKindCacheImpl.java',300,300,'com.google.gerrit.server.change.ChangeKindCacheImpl','getChangeKindInternal(ChangeKindCache, ReviewDb, Change, PatchSet, ChangeData.Factory, ProjectCache, GitRepositoryManager)',NULL),(5172,'TODO(yyonas): atomic update was not propagated','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java',116,116,'com.google.gerrit.server.change.Abandon','apply(ChangeResource, AbandonInput)',NULL),(5173,'TODO(yyonas): atomic update was not propagated','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java',114,114,'com.google.gerrit.server.change.Restore','apply(ChangeResource, RestoreInput)','DESIGN'),(5174,'TODO(yyonas): atomic update was not propagated','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PutTopic.java',117,117,'com.google.gerrit.server.change.PutTopic','apply(ChangeResource, Input)',NULL),(5175,'TODO(yyonas): atomic change is not propagated.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1023,1023,'com.google.gerrit.server.git.MergeOp','sendMergeFail(ChangeNotes, ChangeMessage, boolean)',NULL),(5176,'TODO(dborowitz): support InternalUser in ChangeUpdate','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1123,1123,'com.google.gerrit.server.git.MergeOp','abandonOneChange(Change)',NULL),(5177,'TODO(yyonas): atomic change is not propagated.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1151,1151,'com.google.gerrit.server.git.MergeOp','abandonOneChange(Change)',NULL),(5178,'TODO(yyonas): figure out how to handle this exception','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',651,651,'com.google.gerrit.server.notedb.ChangeNotes','onLoad()',NULL),(5179,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',101,101,'com.google.gerrit.server.notedb.CommentsInNotesUtil','parseNote(byte[], Change.Id)',NULL),(5180,'TODO(dborowitz): Wrap fewer exceptions if/when we kill gwtorm.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',528,528,'com.google.gerrit.server.notedb.ChangeNotes','load()','NOT_DESIGN'),(5181,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',142,142,'com.google.gerrit.server.notedb.CommentsInNotesUtil','parseCommentsFromNotes(Repository, String, RevWalk, Change.Id, Multimap<PatchSet.Id, PatchLineComment>, Multimap<PatchSet.Id, PatchLineComment>)',NULL),(5182,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',144,144,'com.google.gerrit.server.notedb.CommentsInNotesUtil','parseCommentsFromNotes(Repository, String, RevWalk, Change.Id, Multimap<PatchSet.Id, PatchLineComment>, Multimap<PatchSet.Id, PatchLineComment>, Status)',NULL),(5183,'TODO(yyonas): Delete drafts if they already existed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchLineCommentsUtil.java',80,80,'com.google.gerrit.server.PatchLineCommentsUtil','addPublishedComments(ReviewDb, ChangeUpdate, Iterable<PatchLineComment>)','DESIGN'),(5184,'TODO(dborowitz): Not necessary once we switch to notedb.','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/ThreadLimiter.java',27,27,'None','None',NULL),(5185,'TODO(dborowitz): This should not be allowed.','Line','gerrit-server/src/test/java/com/google/gerrit/server/project/ProjectControlTest.java',121,121,'com.google.gerrit.server.project.ProjectControlTest','canReadAfterRollbackWithAllRefsVisible()','DESIGN'),(5186,'TODO(dborowitz): Fix bug so this is included.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java',95,95,'com.google.gerrit.acceptance.git.VisibleRefFilterIT','allRefsVisibleWithRefsMetaConfig()','NOT_DESIGN'),(5187,'None','None','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java',-1,-1,'None','None',NULL),(5188,'None','None','gerrit-server/src/test/java/com/google/gerrit/server/project/ProjectControlTest.java',-1,-1,'None','None',NULL),(5189,'TODO(davido): This should happen in the same BatchRefUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/edit/ChangeEditUtil.java',145,145,'com.google.gerrit.server.edit.ChangeEditUtil','publish(ChangeEdit)',NULL),(5190,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/PatchLineCommentsUtil.java',-1,-1,'None','None',NULL),(5191,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',173,175,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change, ListeningExecutorService)',NULL),(5192,'TODO(davido): Allow to resolve conflicts inline','Line','gerrit-server/src/main/java/com/google/gerrit/server/edit/ChangeEditModifier.java',174,174,'com.google.gerrit.server.edit.ChangeEditModifier','rebaseEdit(ChangeEdit, PatchSet)',NULL),(5193,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',171,173,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change, ListeningExecutorService)',NULL),(5194,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',179,181,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change, ListeningExecutorService, BatchRefUpdate)',NULL),(5195,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',252,254,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change, ListeningExecutorService, BatchRefUpdate, BatchRefUpdate, Repository, Repository)',NULL),(5196,'Edit is created on top of current patch set by deleting path.\nEven if the latest patch set changed since the user triggered\nthe operation, deleting the whole file is probably still what\nthey intended.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeEdits.java',222,225,'com.google.gerrit.server.change.ChangeEdits','views()',NULL),(5197,'For a file with content merge conflict that we produced a result\nabove on, collapse the file down to a single stage 0 with just\nthe blob content, and a randomly selected mode (the lowest stage,\nwhich should be the merge base, or ours).','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',353,356,'com.google.gerrit.server.patch.PatchListLoader','automerge(Repository, RevWalk, RevCommit, boolean)',NULL),(5198,'For a file with content merge conflict that we produced a result\nabove on, collapse the file down to a single stage 0 with just\nthe blob content, and a randomly selected mode (the lowest stage,\nwhich should be the merge base, or ours).','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java',359,362,'com.google.gerrit.server.patch.PatchListLoader','automerge(Repository, RevWalk, RevCommit, ThreeWayMergeStrategy, boolean)',NULL),(5199,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',266,268,'com.google.gerrit.server.change.PostReviewers','postAdd(Change, List<PatchSetApproval>)',NULL),(5200,'Email the reviewers\n\nThe user knows they added themselves, don\'t bother emailing them.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',265,267,'com.google.gerrit.server.change.PostReviewers','emailReviewers(Change, List<PatchSetApproval>)',NULL),(5201,'Only expose publish action when the edit is on top of current ps','Line','gerrit-server/src/main/java/com/google/gerrit/server/edit/ChangeEditJson.java',68,68,'com.google.gerrit.server.edit.ChangeEditJson','ActionInfo> fillActions(ChangeEdit)',NULL),(5202,'TODO(davido): Consider to modify path column in edit mode as well\nto navigate to edit dialog instead of to SBS2.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java',496,497,'com.google.gerrit.client.change.FileTable','render(SafeHtmlBuilder, FileInfo)',NULL),(5203,'TODO(davido): Consider to modify path column in edit mode as well\nto navigate to edit dialog instead of to SBS2.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java',580,581,'com.google.gerrit.client.change.FileTable','render(SafeHtmlBuilder, FileInfo)','DESIGN'),(5204,'perhaps it\'s compressed','Line','gerrit-gwtdebug/src/main/java/com/google/gwt/dev/codeserver/WebServer.java',280,280,'com.google.gwt.dev.codeserver.WebServer','start()',NULL),(5205,'TODO referring to the parent commit by refs/changes/12/60012/1^1\nwill likely not work for inline edits','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/GetDiff.java',160,161,'com.google.gerrit.server.change.GetDiff','None',NULL),(5206,'TODO Replace CreateChangeDialog with a nicer looking display.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/CreateChangeAction.java',28,28,'com.google.gerrit.client.admin.CreateChangeAction','call(Button, String)',NULL),(5207,'TODO: The user should have create permission on the branch referred to by\nHEAD. This would have to happen on the server side.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java',578,579,'com.google.gerrit.client.admin.ProjectInfoScreen','onInitUI()',NULL),(5208,'Previously there was a bug where having a \'1\' in a refname would cause a\nglob pattern\'s Levenshtein distance to decrease by 1.  These two\npatterns should be a Levenshtein distance of 12 from the both of the\nrefnames, where previously the \'branch1\' refname would be a distance of\n11 from \'refs/heads/abc/*\'','Line','gerrit-server/src/test/java/com/google/gerrit/server/util/MostSpecificComparatorTest.java',56,60,'com.google.gerrit.server.util.MostSpecificComparatorTest','higherNumberOfTransitionsWins()',NULL),(5209,'TODO(dpursehouse): validate hashtags','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',1172,1172,'com.google.gerrit.server.git.ReceiveCommits','get()',NULL),(5210,'Should never occur for a well written rule','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',512,512,'com.google.gerrit.server.project.ChangeControl','getSubmitTypeRecord(ReviewDb, PatchSet, ChangeData)',NULL),(5211,'Should never occur for a well written rule','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java',317,317,'com.google.gerrit.server.project.SubmitRuleEvaluator','getSubmitType()',NULL),(5212,'TODO(yyonas): figure out how to handle this exception','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',305,305,'com.google.gerrit.server.notedb.ChangeNotes','onLoad()','DESIGN'),(5213,'TODO(dborowitz): Opening all repositories in a live server may be','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeBatchIndexer.java',262,262,'com.google.gerrit.server.index.ChangeBatchIndexer','success()',NULL),(5214,'TODO(dborowitz): Opening all repositories in a live server may be','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/SiteIndexer.java',262,262,'com.google.gerrit.server.index.SiteIndexer','success()',NULL),(5215,'TODO(dborowitz): Include cache info in ETag somehow instead.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Mergeable.java',179,179,'com.google.gerrit.server.change.Mergeable','refresh(Change, ObjectId, Ref, SubmitType, String, Repository, Boolean)',NULL),(5216,'TODO(dborowitz): Test for other-branches.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java',280,280,'com.google.gerrit.acceptance.api.revision.RevisionIT','mergeable()',NULL),(5217,'maybe the primary key was dropped in a previous run but the creation failed','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/UpdatePrimaryKeys.java',165,165,'com.google.gerrit.pgm.init.UpdatePrimaryKeys','recreatePK(StatementExecutor, String, List<String>)','NOT_DESIGN'),(5218,'TODO(dborowitz): Just fix it.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ConsistencyChecker.java',232,232,'com.google.gerrit.server.change.ConsistencyChecker','checkMerged()',NULL),(5219,'TODO(dborowitz): Expose stack trace to administrators.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ConsistencyChecker.java',256,256,'com.google.gerrit.server.change.ConsistencyChecker','error(String, Throwable)',NULL),(5220,'TODO(davido): Clean this up by returning 404 when edit doesn\'t exist.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeEdits.java',498,498,'com.google.gerrit.server.change.ChangeEdits','apply(ChangeResource)',NULL),(5221,'None','None','gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/UpdatePrimaryKeys.java',-1,-1,'None','None',NULL),(5222,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',-1,-1,'None','None',NULL),(5223,'Does not account for draft status as a user might want to let a\nreviewer see a draft.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java',222,223,'com.google.gerrit.server.change.PostReviewers','isValidReviewer(Account, ChangeControl)',NULL),(5224,'perhaps it\'s compressed','Line','gerrit-gwtdebug/src/main/java/com/google/gwt/dev/codeserver/WebServer.java',281,281,'com.google.gwt.dev.codeserver.WebServer','start()',NULL),(5225,'perhaps it\'s compressed','Line','gerrit-gwtdebug/src/main/java/com/google/gwt/dev/codeserver/WebServer.java',314,314,'com.google.gwt.dev.codeserver.WebServer','start(TreeLogger)',NULL),(5226,'TODO: return a list of progress objects here, one for each job.','Line','gerrit-gwtdebug/src/main/java/com/google/gwt/dev/codeserver/WebServer.java',261,261,'com.google.gwt.dev.codeserver.WebServer','start(TreeLogger)',NULL),(5227,'TODO: why do we need this? Looks like Ray added it a long time ago.','Line','gerrit-gwtdebug/src/main/java/com/google/gwt/dev/codeserver/WebServer.java',342,342,'com.google.gwt.dev.codeserver.WebServer','start(TreeLogger)',NULL),(5228,'TODO(davido): Enable this again when gwt-test-utils lib is fixed.','Line','gerrit-gwtui/src/test/java/com/google/gerrit/client/diff/EditIteratorTest.java',34,34,'com.google.gerrit.client.diff.EditIteratorTest','None',NULL),(5229,'TODO(dborowitz): Just fix it.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ConsistencyChecker.java',264,264,'com.google.gerrit.server.change.ConsistencyChecker','checkMerged()','NOT_DESIGN'),(5230,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/ConsistencyChecker.java',-1,-1,'None','None',NULL),(5231,'TODO(davido): Clean this up by returning 404 when edit doesn\'t exist.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeEdits.java',509,509,'com.google.gerrit.server.change.ChangeEdits','views()','NOT_DESIGN'),(5232,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeEdits.java',-1,-1,'None','None',NULL),(5233,'TODO(davido): Retrieve user preferences from AllUsers repository','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java',140,140,'com.google.gerrit.client.editor.EditScreen','getConfig()',NULL),(5234,'Always bump limit by 1, even if this results in exceeding the permitted\nmax for this user. The only way to see if there are more changes is to\nask for one more result from the query.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryProcessor.java',206,208,'com.google.gerrit.server.query.change.QueryProcessor','setLimit(int)',NULL),(5235,'Always bump limit by 1, even if this results in exceeding the permitted\nmax for this user. The only way to see if there are more changes is to\nask for one more result from the query.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryProcessor.java',242,244,'com.google.gerrit.server.query.change.QueryProcessor','setLimit(int)',NULL),(5236,'Always bump limit by 1, even if this results in exceeding the permitted\nmax for this user. The only way to see if there are more changes is to\nask for one more result from the query.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryProcessor.java',128,130,'com.google.gerrit.server.query.change.QueryProcessor','queryChanges(List<String>, List<Predicate<ChangeData>>)',NULL),(5237,'TODO: Better custom keybindings, remove temporary navigation hacks.','Line','gerrit-gwtui/src/main/java/net/codemirror/lib/Vim.java',28,28,'net.codemirror.lib.Vim','initKeyMap()','DESIGN'),(5238,'TODO(davido): Retrieve user preferences from AllUsers repository','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java',189,189,'com.google.gerrit.client.editor.EditScreen','getConfig()','NOT_DESIGN'),(5239,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java',-1,-1,'None','None',NULL),(5240,'Only expose publish action when the edit is on top of current ps','Line','gerrit-server/src/main/java/com/google/gerrit/server/edit/ChangeEditJson.java',94,94,'com.google.gerrit.server.edit.ChangeEditJson','ActionInfo> fillActions(ChangeEdit)','NOT_DESIGN'),(5241,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/edit/ChangeEditJson.java',-1,-1,'None','None',NULL),(5242,'None','None','gerrit-gwtui/src/main/java/net/codemirror/lib/Vim.java',-1,-1,'None','None',NULL),(5243,'we don\'t care\nbetter we would check if index was already renamed\ngwtorm doesn\'t expose this functionality','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_82.java',125,127,'com.google.gerrit.server.schema.Schema_82','preUpdateSchema(ReviewDb)','DESIGN'),(5244,'gwtorm didn\'t expose this functionality at the time this schema upgrade\nwas written.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_82.java',127,128,'com.google.gerrit.server.schema.Schema_82','preUpdateSchema(ReviewDb)',NULL),(5245,'TODO: propagate this exception','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',64,64,'com.google.gerrit.server.project.ChangeControl','None',NULL),(5246,'TODO: propagate this exception','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',73,73,'com.google.gerrit.server.project.ChangeControl','controlFor(Change.Id, CurrentUser)',NULL),(5247,'TODO Instead of opening messages by strict age, do it by \\\"unread\\\"?','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java',684,684,'com.google.gerrit.client.changes.ChangeScreen','addComments(ChangeDetail)',NULL),(5248,'TODO: once the other users of ActionDialog have converted to\nREST APIs, we can use createCallback() rather than providing\nthem directly.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java',450,452,'com.google.gerrit.client.changes.PatchSetComplexDisclosurePanel','populateActions(PatchSetDetail)',NULL),(5249,'Green check mark if the user is logged in and they reviewed that file','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java',565,565,'com.google.gerrit.client.changes.PatchTable','isValid(Patch)',NULL),(5250,'Green check mark if the user is logged in and they reviewed that file','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchTable.java',566,566,'com.google.gerrit.client.patches.PatchTable','isValid(Patch)',NULL),(5251,'TODO info card hover','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java',1104,1104,'com.google.gerrit.client.change.ChangeScreen2','renderOwner(ChangeInfo)',NULL),(5252,'TODO info card hover','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java',1104,1104,'com.google.gerrit.client.change.ChangeScreen','renderOwner(ChangeInfo)',NULL),(5253,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',541,549,'com.google.gerrit.server.git.MergeOp','Change> validateChangeList(List<Change>)',NULL),(5254,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',552,560,'com.google.gerrit.server.git.MergeOp','Change> validateChangeList(List<ChangeData>)',NULL),(5255,'TODO(dborowitz): Not sure whether this is injectable here.','Line','gerrit-server/src/main/java/com/google/gerrit/server/args4j/ChangeIdHandler.java',39,39,'com.google.gerrit.server.args4j.ChangeIdHandler','parseArguments(Parameters)',NULL),(5256,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',579,579,'com.google.gerrit.server.git.MergeOp','Change> validateChangeList(List<ChangeData>)',NULL),(5257,'ignore non valid numbers\nWe don\'t want to popup another ugly dialog just to say\n\\\"The number you\'ve provided is invalid, try again\\\"','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java',205,207,'com.google.gerrit.client.editor.EditScreen','gotoLine()',NULL),(5258,'A repository may be missing if this project existed only to store\ninheritable permissions. For example \'All-Projects\'.','Line','gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_53.java',167,168,'com.google.gerrit.server.schema.Schema_53','migrateData(ReviewDb, UpdateUI)',NULL),(5259,'TODO(dborowitz): This message is also used by all new patch set ref','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',687,687,'com.google.gerrit.server.git.MergeOp','updateBranch(SubmitStrategy, BatchRefUpdate)',NULL),(5260,'TODO(dborowitz): This message is also used by all new patch set ref','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',695,695,'com.google.gerrit.server.git.MergeOp','updateBranch(SubmitStrategy, BatchRefUpdate)','DESIGN'),(5261,'TODO(dborowitz): Implement RefUpdate.toString().','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',724,724,'com.google.gerrit.server.git.MergeOp','updateBranch(SubmitStrategy, RefUpdate)',NULL),(5262,'javac generics bug','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/rpc/RestApi.java',132,132,'com.google.gerrit.client.rpc.RestApi','isNotFound(Throwable)','NOT_DESIGN'),(5263,'TODO(sbeller): why do we need to treat followup specially here?','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ActionJson.java',76,76,'com.google.gerrit.server.change.ActionJson','ActionInfo> toActionMap(ChangeControl)','DESIGN'),(5264,'Properly render revision actions initially while waiting for\nthe callback to populate them correctly.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java',1092,1093,'com.google.gerrit.client.change.ChangeScreen','renderChangeInfo(ChangeInfo)',NULL),(5265,'TODO(sbeller): We should make schedule return a Future, then we\ncould do these all in parallel and still block until they\'re done.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java',213,214,'com.google.gerrit.server.change.Submit','None','DESIGN'),(5266,'probably a SHA1','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Rebase.java',154,154,'com.google.gerrit.server.change.Rebase','apply(RevisionResource, RebaseInput)',NULL),(5267,'Properly render revision actions initially while waiting for\nthe callback to populate them correctly.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java',1090,1091,'com.google.gerrit.client.change.ChangeScreen','renderChangeInfo(ChangeInfo)','DESIGN'),(5268,'None','None','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java',-1,-1,'None','None',NULL),(5269,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java',-1,-1,'None','None',NULL),(5270,'TODO(dborowitz): Use jimfs.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/InMemoryTestingDatabaseModule.java',62,62,'com.google.gerrit.acceptance.InMemoryTestingDatabaseModule','None',NULL),(5271,'TODO(dborowitz): Use jimfs.','Line','gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java',129,129,'com.google.gerrit.testutil.InMemoryModule','configure()',NULL),(5272,'TODO(dborowitz): Convert all of these to Paths.','Line','gerrit-server/src/main/java/com/google/gerrit/server/config/SitePaths.java',69,69,'com.google.gerrit.server.config.SitePaths','resolve(String)','DESIGN'),(5273,'TODO(dborowitz): Convert to NIO.','Line','gerrit-server/src/main/java/com/google/gerrit/server/plugins/JarPluginProvider.java',51,51,'com.google.gerrit.server.plugins.JarPluginProvider','handles(File)',NULL),(5274,'TODO(dborowitz): Is there a portable way to do this with NIO?','Line','gerrit-common/src/main/java/com/google/gerrit/common/FileUtil.java',47,47,'com.google.gerrit.common.FileUtil','chmod(int, Path)',NULL),(5275,'TODO(dborowitz): Rename to srcPath or something.','Line','gerrit-server/src/main/java/com/google/gerrit/server/plugins/Plugin.java',89,89,'com.google.gerrit.server.plugins.Plugin','getCleanupHandle()','NOT_DESIGN'),(5276,'TODO(dborowitz): Convert to NIO.','Line','gerrit-server/src/main/java/com/google/gerrit/server/plugins/JarPluginProvider.java',52,52,'com.google.gerrit.server.plugins.JarPluginProvider','handles(File)','NOT_DESIGN'),(5277,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/plugins/JarPluginProvider.java',-1,-1,'None','None',NULL),(5278,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/plugins/Plugin.java',-1,-1,'None','None',NULL),(5279,'In theory we could still unload the plugin even if the rename\nfailed. However, it would be reloaded on the next server startup,\nwhich is probably not what the user expects.','Line','gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginLoader.java',249,251,'com.google.gerrit.server.plugins.PluginLoader','disablePlugins(Set<String>)',NULL),(5280,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/config/SitePaths.java',-1,-1,'None','None',NULL),(5281,'TODO: fixify this loop','Line','gerrit-server/src/main/java/com/google/gerrit/rules/PrologCompiler.java',249,249,'com.google.gerrit.rules.PrologCompiler','createJar(Path, List<String>, File, ObjectId, ObjectId)',NULL),(5282,'TODO(dborowitz): Use try/finally when this doesn\'t double-close the repo.','Line','gerrit-server/src/test/java/com/google/gerrit/server/change/IncludedInResolverTest.java',89,89,'com.google.gerrit.server.change.IncludedInResolverTest','setUp()',NULL),(5283,'TODO(dborowitz): Use try/finally when this doesn\'t double-close the repo.','Line','gerrit-server/src/test/java/com/google/gerrit/server/git/SubmoduleOpTest.java',122,122,'com.google.gerrit.server.git.SubmoduleOpTest','testEmptyCommit()',NULL),(5284,'TODO(dborowitz): Use try/finally when this doesn\'t double-close the repo.','Line','gerrit-server/src/test/java/com/google/gerrit/server/git/SubmoduleOpTest.java',596,596,'com.google.gerrit.server.git.SubmoduleOpTest','testOneSubscriberToUpdate()',NULL),(5285,'TODO(dborowitz): Use try/finally when this doesn\'t double-close the repo.','Line','gerrit-server/src/test/java/com/google/gerrit/server/git/SubmoduleOpTest.java',705,705,'com.google.gerrit.server.git.SubmoduleOpTest','testAvoidingCircularReference()',NULL),(5286,'TODO(dborowitz): Use try/finally when this doesn\'t double-close the repo.','Line','gerrit-server/src/test/java/com/google/gerrit/server/git/SubmoduleOpTest.java',877,877,'com.google.gerrit.server.git.SubmoduleOpTest','doOnlySubscriptionTableOperations(String, Branch.NameKey, List<SubmoduleSubscription>, List<SubmoduleSubscription>)',NULL),(5287,'TODO(dborowitz): Use different project names.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java',227,227,'com.google.gerrit.acceptance.AbstractDaemonTest','apply(Statement, Description)',NULL),(5288,'TODO: fixify this loop','Line','gerrit-server/src/main/java/com/google/gerrit/rules/PrologCompiler.java',243,243,'com.google.gerrit.rules.PrologCompiler','createJar(Path, List<String>, File, ObjectId, ObjectId)',NULL),(5289,'TODO: fixify this loop','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/rules/PrologCompiler.java',243,243,'com.google.gerrit.pgm.rules.PrologCompiler','createJar(Path, List<String>, File, ObjectId, ObjectId)',NULL),(5290,'no \\\"l../etc/passwd\\\"\nno \\\"foo/../etc/passwd\\\"\n\\\"foo/./foo\\\" is insane to ask\nwindows UNC path can be \\\"//...\\\"\ncommon unix wildcard\nwildcard or string parameter\nwildcard\nCould be used for absolute paths in windows?\nredirect input\nredirect output\npipe\ndollar sign\ncarriage return','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',383,395,'com.google.gerrit.server.git.LocalDiskRepositoryManager','configure()','DESIGN'),(5291,'no empty paths\nno suffix\nno windows/dos style paths\nno absolute paths\nno absolute paths\nno \\\"l../etc/passwd\\\"\nno \\\"foo/../etc/passwd\\\"\n\\\"foo/./foo\\\" is insane to ask\nwindows UNC path can be \\\"//...\\\"\ncommon unix wildcard\nwildcard or string parameter\nwildcard\nCould be used for absolute paths in windows?\nredirect input\nredirect output\npipe\ndollar sign\ncarriage return','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',376,393,'com.google.gerrit.server.git.LocalDiskRepositoryManager','configure()','DESIGN'),(5292,'The results of this method are cached by ProjectCacheImpl. Control only\nenters here if the cache was flushed by the administrator to force\nscanning the filesystem. Don\'t rely on the cached names collection.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',398,400,'com.google.gerrit.server.git.LocalDiskRepositoryManager','configure()',NULL),(5293,'TODO: Implement delete of dashboards by API.','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/DeleteDashboard.java',55,55,'com.google.gerrit.server.project.DeleteDashboard','apply(DashboardResource, Input)',NULL),(5294,'TODO: Implement delete of dashboards by API.','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/DeleteDashboard.java',50,50,'com.google.gerrit.server.project.DeleteDashboard','apply(DashboardResource, SetDashboard.Input)',NULL),(5295,'TODO: remove this code when Guice fixes its issue 745','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/GitOverHttpServlet.java',162,162,'com.google.gerrit.httpd.GitOverHttpServlet','configure()',NULL),(5296,'TODO(dborowitz): Delete when we delete support for pre-Lucene-5.0 schemas.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',215,215,'com.google.gerrit.lucene.LuceneChangeIndex','setReady(SitePaths, int, boolean)',NULL),(5297,'TODO(dborowitz): Use different project names.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java',230,230,'com.google.gerrit.acceptance.AbstractDaemonTest','apply(Statement, Description)','NOT_DESIGN'),(5298,'None','None','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java',-1,-1,'None','None',NULL),(5299,'This is a workaround to be able to print a proper name when the task\nis wrapped into a ListenableFutureTask.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/WorkQueue.java',383,384,'com.google.gerrit.server.git.WorkQueue','start()',NULL),(5300,'no empty paths\nno suffix\nno windows/dos style paths\nno absolute paths\nno absolute paths\nno \\\"l../etc/passwd\\\"\nno \\\"foo/../etc/passwd\\\"\n\\\"foo/./foo\\\" is insane to ask\nwindows UNC path can be \\\"//...\\\"\nno path segments that end with \'.git\' as \\\"foo.git/bar\\\"\ncommon unix wildcard\nwildcard or string parameter\nwildcard\nCould be used for absolute paths in windows?\nredirect input\nredirect output\npipe\ndollar sign\ncarriage return','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',376,394,'com.google.gerrit.server.git.LocalDiskRepositoryManager','configure()',NULL),(5301,'The results of this method are cached by ProjectCacheImpl. Control only\nenters here if the cache was flushed by the administrator to force\nscanning the filesystem. Don\'t rely on the cached names collection.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java',399,401,'com.google.gerrit.server.git.LocalDiskRepositoryManager','configure()',NULL),(5302,'TODO(dborowitz): Could potentially fake this with thread ID or\nsomething.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/InProcessProtocol.java',88,89,'com.google.gerrit.acceptance.InProcessProtocol','configure()',NULL),(5303,'TODO(dborowitz): Merge this with AcceptanceTestRequestScope.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/InProcessProtocol.java',137,137,'com.google.gerrit.acceptance.InProcessProtocol','module()',NULL),(5304,'TODO(dborowitz): TEST.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java',49,49,'com.google.gerrit.acceptance.git.AbstractPushForReview','noteDbEnabled()',NULL),(5305,'TODO(anybody reading this): More tests.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java',77,77,'com.google.gerrit.acceptance.server.project.ProjectWatchIT','None',NULL),(5306,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',208,208,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(CodeReviewCommit)',NULL),(5307,'Missing a trailing LF? Correct it (perhaps the editor was broken).','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',213,213,'com.google.gerrit.server.git.MergeUtil','createCherryPickCommitMessage(RevCommit, ChangeControl, PatchSet.Id)',NULL),(5308,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',150,150,'com.google.gerrit.server.notedb.CommentsInNotesUtil','parseCommentsFromNotes(Repository, String, RevWalk, Change.Id, Multimap<PatchSet.Id, PatchLineComment>, Multimap<PatchSet.Id, PatchLineComment>, Status)',NULL),(5309,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',145,145,'com.google.gerrit.server.notedb.CommentsInNotesUtil','parseCommentsFromNotes(Repository, String, RevWalk, Change.Id, Multimap<RevId, PatchLineComment>, Status)',NULL),(5310,'TODO(dborowitz): Defensive copy?','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/DraftCommentNotes.java',88,88,'com.google.gerrit.server.notedb.DraftCommentNotes','PatchLineComment> getComments()',NULL),(5311,'TODO(dborowitz): Just scan author space.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchLineCommentsUtil.java',222,222,'com.google.gerrit.server.PatchLineCommentsUtil','draftByAuthor(ReviewDb, Account.Id)',NULL),(5312,'TODO(dborowitz): Bypass cache if side is REVISION.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchLineCommentsUtil.java',298,298,'com.google.gerrit.server.PatchLineCommentsUtil','setCommentRevId(PatchLineComment, PatchListCache, Change, PatchSet)',NULL),(5313,'TODO(dborowitz): Could eliminate this call by adding an option to include\ninline comments in the change detail.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java',913,914,'com.google.gerrit.client.change.ChangeScreen','loadComments(RevisionInfo, CallbackGroup)',NULL),(5314,'TODO skip may need to be handled','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffInfo.java',101,101,'com.google.gerrit.client.diff.DiffInfo','text_a()',NULL),(5315,'TODO skip may need to be handled','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffInfo.java',116,116,'com.google.gerrit.client.diff.DiffInfo','text_b()',NULL),(5316,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/container/HttpAuthFilter.java',149,152,'com.google.gerrit.httpd.auth.container.HttpAuthFilter','getRemoteUser(HttpServletRequest)','DESIGN'),(5317,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/auth/container/HttpAuthFilter.java',-1,-1,'None','None',NULL),(5318,'If the container didn\'t do the authentication we might\nhave done it in the front-end web server. Try to split\nthe identity out of the Authorization header and honor it.','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/RemoteUserUtil.java',49,51,'com.google.gerrit.httpd.RemoteUserUtil','getRemoteUser(HttpServletRequest, String)',NULL),(5319,'probably a SHA1','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Rebase.java',174,174,'com.google.gerrit.server.change.Rebase','apply(RevisionResource, RebaseInput)',NULL),(5320,'Probably a SHA-1.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Rebase.java',174,174,'com.google.gerrit.server.change.Rebase','apply(RevisionResource, RebaseInput)','NOT_DESIGN'),(5321,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/Rebase.java',-1,-1,'None','None',NULL),(5322,'Only one parent is new in this push. If it is the only parent, just use\nthat parent\'s group. If there are multiple parents, perhaps this commit\nis a merge of a side branch. This commit belongs in that parent\'s group\nin that case.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/GroupCollector.java',124,127,'com.google.gerrit.server.git.GroupCollector','visit(RevCommit)',NULL),(5323,'TODO(dborowitz): Tests for octopus merges.','Line','gerrit-server/src/test/java/com/google/gerrit/server/git/GroupCollectorTest.java',326,326,'com.google.gerrit.server.git.GroupCollectorTest','psId(int, int)',NULL),(5324,'Expected size of each list is 1, so nested linear search is fine.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java',166,166,'com.google.gerrit.server.change.GetRelated','apply(RevisionResource)',NULL),(5325,'Not exact, but we cannot do any better.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ExactTopicPredicate.java',38,38,'com.google.gerrit.server.query.change.ExactTopicPredicate','?> topicField(Schema<ChangeData>)','NOT_DESIGN'),(5326,'None','None','gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/Natives.java',-1,-1,'None','None',NULL),(5327,'Some object is too large for the merge attempt to succeed. Assume\nit was a rework.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeKindCacheImpl.java',228,229,'com.google.gerrit.server.change.ChangeKindCacheImpl','module()',NULL),(5328,'The identity information reported about the connection by a\nRFC 1413 [11] request to the remote agent, if\navailable. Servers MAY choose not to support this feature, or\nnot to request the data for efficiency reasons.\n\\\"REMOTE_IDENT\\\" => \\\"NYI\\\"\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',534,539,'com.google.gerrit.httpd.gitweb.GitWebServlet','makeSiteConfig(SitePaths, GerritConfig)',NULL),(5329,'The identity information reported about the connection by a\nRFC 1413 [11] request to the remote agent, if\navailable. Servers MAY choose not to support this feature, or\nnot to request the data for efficiency reasons.\n\\\"REMOTE_IDENT\\\" => \\\"NYI\\\"\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',538,543,'com.google.gerrit.httpd.gitweb.GitWebServlet','makeSiteConfig(SitePaths, Config, SshInfo)',NULL),(5330,'TODO: fix setMessage to work without init()','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ConsistencyChecker.java',456,456,'com.google.gerrit.server.change.ConsistencyChecker','insertPatchSet(RevCommit)',NULL),(5331,'Link back to Gerrit (when possible, to matching review record).\nSupported Gitweb\'s hash values are:\n- (missing),\n- HEAD,\n- refs/heads/<branch>,\n- refs/changes/*/<change>/*,\n- <revision>.\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',271,278,'com.google.gerrit.httpd.gitweb.GitWebServlet','None','DESIGN'),(5332,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitwebServlet.java',-1,-1,'None','None',NULL),(5333,'The identity information reported about the connection by a\nRFC 1413 [11] request to the remote agent, if\navailable. Servers MAY choose not to support this feature, or\nnot to request the data for efficiency reasons.\n\\\"REMOTE_IDENT\\\" => \\\"NYI\\\"\n','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java',540,545,'com.google.gerrit.httpd.gitweb.GitWebServlet','makeSiteConfig(SitePaths, Config, SshInfo)',NULL),(5334,'TODO(dborowitz): Support assertions signed by a trusted key.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',178,178,'com.google.gerrit.server.git.SignedPushPreReceiveHook','readPublicKey(long)',NULL),(5335,'TODO(dborowitz): Try all keys.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',191,191,'com.google.gerrit.server.git.SignedPushPreReceiveHook','readPublicKey(long)',NULL),(5336,'TODO(dborowitz): Support assertions signed by a trusted key.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',184,184,'com.google.gerrit.server.git.SignedPushPreReceiveHook','readPublicKey(long, PushCertificateIdent)',NULL),(5337,'TODO(dborowitz): Try all keys.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',197,197,'com.google.gerrit.server.git.SignedPushPreReceiveHook','readPublicKey(long, PushCertificateIdent)',NULL),(5338,'TODO(dborowitz): Support certifications by other trusted keys?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',238,238,'com.google.gerrit.server.git.SignedPushPreReceiveHook','verifyPublicKeyCertifications(PGPPublicKey, PushCertificateIdent)',NULL),(5339,'TODO(yyonas): atomic update was not propagated','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java',115,115,'com.google.gerrit.server.change.Abandon','apply(ChangeResource, AbandonInput)',NULL),(5340,'TODO(yyonas): atomic update was not propagated','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java',125,125,'com.google.gerrit.server.change.Abandon','abandon(ChangeControl, String, Account)',NULL),(5341,'TODO(dborowitz): Implement RefUpdate.toString().','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',723,723,'com.google.gerrit.server.git.MergeOp','updateBranch(SubmitStrategy, RefUpdate)','NOT_DESIGN'),(5342,'It would be possible to submit the change if the missing\ndependencies are also submitted. Perhaps the user just\nforgot to submit those.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',919,922,'com.google.gerrit.server.git.MergeOp','isSubmitStillPossible(CodeReviewCommit)','DESIGN'),(5343,'It is impossible to submit this change as-is. The author\nneeds to rebase it in order to work around the missing\ndependencies.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',940,943,'com.google.gerrit.server.git.MergeOp','isSubmitStillPossible(CodeReviewCommit)','DESIGN'),(5344,'TODO(yyonas): atomic change is not propagated.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1044,1044,'com.google.gerrit.server.git.MergeOp','sendMergeFail(ChangeNotes, ChangeMessage, boolean)',NULL),(5345,'TODO(yyonas): atomic change is not propagated.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1172,1172,'com.google.gerrit.server.git.MergeOp','setNew(ChangeNotes, ChangeMessage)',NULL),(5346,'TODO(sbeller): We should make schedule return a Future, then we\ncould do these all in parallel and still block until they\'re done.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java',219,220,'com.google.gerrit.server.change.Submit','None','DESIGN'),(5347,'TODO(sbeller): show only on latest revision','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java',220,220,'com.google.gerrit.client.change.RelatedChanges','css()',NULL),(5348,'TODO since this is performed \\\"in the background\\\" no mail will be\nsent to inform users about the updated branch','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java',386,387,'com.google.gerrit.server.git.SubmoduleOp','updateGitlinks(Branch.NameKey, RevWalk, Map<Branch.NameKey, ObjectId>, Map<Branch.NameKey, String>, String)',NULL),(5349,'TODO since this is performed \\\"in the background\\\" no mail will be\nsent to inform users about the updated branch','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java',332,333,'com.google.gerrit.server.git.SubmoduleOp','updateGitlinks(ReviewDb, Branch.NameKey, Collection<SubmoduleSubscription>)',NULL),(5350,'TODO(dborowitz): Support assertions signed by a trusted key.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',187,187,'com.google.gerrit.server.git.SignedPushPreReceiveHook','readPublicKey(long, PushCertificateIdent)',NULL),(5351,'TODO(dborowitz): Try all keys.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',200,200,'com.google.gerrit.server.git.SignedPushPreReceiveHook','readPublicKey(long, PushCertificateIdent)',NULL),(5352,'TODO(dborowitz): Support certifications by other trusted keys?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/SignedPushPreReceiveHook.java',249,249,'com.google.gerrit.server.git.SignedPushPreReceiveHook','verifyPublicKeyCertifications(PGPPublicKey, PushCertificateIdent)',NULL),(5353,'TODO(dborowitz): put method.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PublicKeyStore.java',139,139,'com.google.gerrit.server.git.gpg.PublicKeyStore','empty()','NOT_DESIGN'),(5354,'TODO(dborowitz): Remove some/all of these checks.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PublicKeyChecker.java',90,90,'com.google.gerrit.server.git.gpg.PublicKeyChecker','checkCertifications(PGPPublicKey, String, List<String>)','DESIGN'),(5355,'TODO(dborowitz): Support certifications by other trusted keys?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PublicKeyChecker.java',104,104,'com.google.gerrit.server.git.gpg.PublicKeyChecker','checkCertifications(PGPPublicKey, String, List<String>)','NOT_DESIGN'),(5356,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PublicKeyChecker.java',-1,-1,'None','None',NULL),(5357,'TODO:  Check the committer, too.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/SubmitByCherryPickIT.java',69,69,'com.google.gerrit.acceptance.rest.change.SubmitByCherryPickIT','submitWithCherryPick()','NOT_DESIGN'),(5358,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',715,723,'com.google.gerrit.server.git.MergeOp','Change> validateChangeList(List<ChangeData>)',NULL),(5359,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',693,701,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(List<ChangeData>)',NULL),(5360,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',739,739,'com.google.gerrit.server.git.MergeOp','Change> validateChangeList(List<ChangeData>)',NULL),(5361,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',717,717,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(List<ChangeData>)',NULL),(5362,'None','None','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/SubmitByCherryPickIT.java',-1,-1,'None','None',NULL),(5363,'The followup action is a client-side only operation that does not\nhave a server side handler. It must be manually registered into the\nresulting action map.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ActionJson.java',77,79,'com.google.gerrit.server.change.ActionJson','ActionInfo> toActionMap(ChangeControl)',NULL),(5364,'We can only approximately reconstruct what the submit rule evaluator\nwould have done. These should really come from a stored submit record.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java',626,627,'com.google.gerrit.server.change.ChangeJson','addOption(ListChangesOption)',NULL),(5365,'TODO: estimate from solr?','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',239,239,'com.google.gerrit.solr.SolrChangeIndex','getCardinality()',NULL),(5366,'TODO Sort documents during merge to select only top N.','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',255,255,'com.google.gerrit.solr.SolrChangeIndex','read()',NULL),(5367,'TODO Move the schema version information to a special meta-document','Line','gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java',328,328,'com.google.gerrit.solr.SolrChangeIndex','markReady(boolean)',NULL),(5368,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',106,109,'com.google.gerrit.server.patch.IntraLineLoader','compute(IntraLineDiffKey)',NULL),(5369,'Combine edits that are really close together. If they are\njust a few characters apart we tend to get better results\nby joining them together and taking the whole span.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',115,118,'com.google.gerrit.server.patch.IntraLineLoader','compute(Text, Text, List<Edit>)',NULL),(5370,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',133,136,'com.google.gerrit.server.patch.IntraLineLoader','compute(IntraLineDiffKey)',NULL),(5371,'Apply some simple rules to fix up some of the edits. Our\nlogic above, along with our per-character difference tends\nto produce some crazy stuff.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',142,145,'com.google.gerrit.server.patch.IntraLineLoader','compute(Text, Text, List<Edit>)',NULL),(5372,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',165,168,'com.google.gerrit.server.patch.IntraLineLoader','compute(IntraLineDiffKey)',NULL),(5373,'We sometimes collapsed an edit together in a strange way,\nsuch that the edges of each text is identical. Fix by\nby dropping out that incorrectly replaced region.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineLoader.java',174,177,'com.google.gerrit.server.patch.IntraLineLoader','compute(Text, Text, List<Edit>)',NULL),(5374,'TODO(dborowitz): Backoff and retry on LOCK_FAILURE.','Line','gerrit-server/src/main/java/com/google/gerrit/server/account/PostGpgKeys.java',161,161,'com.google.gerrit.server.account.PostGpgKeys','storeKeys(AccountResource, List<PGPPublicKeyRing>)',NULL),(5375,'This is not exactly the key stored in the store, but is equivalent. In\nparticular, it will have a Bouncy Castle version string. The armored\nstream reader in PublicKeyStore doesn\'t give us an easy way to extract\nthe original ASCII armor.','Line','gerrit-server/src/main/java/com/google/gerrit/server/account/GpgKeys.java',207,210,'com.google.gerrit.server.account.GpgKeys','toJson(PGPPublicKeyRing)',NULL),(5376,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PublicKeyStore.java',-1,-1,'None','None',NULL),(5377,'TODO(dborowitz): Backoff and retry on LOCK_FAILURE.','Line','gerrit-server/src/main/java/com/google/gerrit/server/account/PostGpgKeys.java',209,209,'com.google.gerrit.server.account.PostGpgKeys','storeKeys(AccountResource, List<PGPPublicKeyRing>, Set<Fingerprint>)',NULL),(5378,'Run a test encryption to verify the proper algorithms exist in\nour JVM and we are able to invoke them. This helps to identify\na system configuration problem early at startup, rather than a\nlot later during runtime.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/contact/EncryptedContactStore.java',92,96,'com.google.gerrit.server.contact.EncryptedContactStore','isEnabled()',NULL),(5379,'TODO(dborowitz): Backoff and retry on LOCK_FAILURE.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/PostGpgKeys.java',210,210,'com.google.gerrit.gpg.server.PostGpgKeys','storeKeys(AccountResource, List<PGPPublicKeyRing>, Set<Fingerprint>)',NULL),(5380,'This is not exactly the key stored in the store, but is equivalent. In\nparticular, it will have a Bouncy Castle version string. The armored\nstream reader in PublicKeyStore doesn\'t give us an easy way to extract\nthe original ASCII armor.','Line','gerrit-server/src/main/java/com/google/gerrit/server/account/GpgKeys.java',220,223,'com.google.gerrit.server.account.GpgKeys','toJson(PGPPublicKeyRing)',NULL),(5381,'This is not exactly the key stored in the store, but is equivalent. In\nparticular, it will have a Bouncy Castle version string. The armored\nstream reader in PublicKeyStore doesn\'t give us an easy way to extract\nthe original ASCII armor.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/GpgKeys.java',220,223,'com.google.gerrit.gpg.server.GpgKeys','toJson(PGPPublicKeyRing)',NULL),(5382,'TODO(dborowitz): Swap out GitRepositoryManager somehow? Will probably be\nnecessary for notedb anyway.','Line','gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java',1222,1223,'com.google.gerrit.server.query.change.AbstractQueryChangesTest','prepopulatedFields()',NULL),(5383,'TODO(dborowitz): Handle CERTIFICATION_REVOCATION.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/PublicKeyChecker.java',173,173,'com.google.gerrit.gpg.PublicKeyChecker','checkWebOfTrust(PGPPublicKey, PublicKeyStore, int, Set<Fingerprint>)',NULL),(5384,'TODO(dborowitz): Require self certification.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/PublicKeyChecker.java',180,180,'com.google.gerrit.gpg.PublicKeyChecker','checkWebOfTrust(PGPPublicKey, PublicKeyStore, int, Set<Fingerprint>)',NULL),(5385,'TODO(davido): Find a better way to prevent key maps collisions','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java',267,267,'com.google.gerrit.client.editor.EditScreen','registerKeys()',NULL),(5386,'TODO(dborowitz): Move to IndexConfig and use in more places.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java',133,133,'com.google.gerrit.server.query.change.InternalChangeQuery','byCommitsOnBranchNotMerged(Branch.NameKey, List<String>)',NULL),(5387,'TODO(dborowitz): Use jimfs.','Line','gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/InMemoryTestingDatabaseModule.java',62,62,'com.google.gerrit.acceptance.InMemoryTestingDatabaseModule','None',NULL),(5388,'TODO(dborowitz): Could potentially fake this with thread ID or\nsomething.','Line','gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/InProcessProtocol.java',88,89,'com.google.gerrit.acceptance.InProcessProtocol','configure()',NULL),(5389,'TODO(dborowitz): Merge this with AcceptanceTestRequestScope.','Line','gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/InProcessProtocol.java',137,137,'com.google.gerrit.acceptance.InProcessProtocol','module()',NULL),(5390,'TODO(dpursehouse) add extra tag-related fields (message, tagger, etc)','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/projects/TagInfo.java',19,19,'com.google.gerrit.client.projects.TagInfo','None',NULL),(5391,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',651,659,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(List<ChangeData>)',NULL),(5392,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',647,655,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(Collection<ChangeData>)',NULL),(5393,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',675,675,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(List<ChangeData>)',NULL),(5394,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',671,671,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(Collection<ChangeData>)',NULL),(5395,'TODO(dborowitz): Manual injection so we can throw IOException from the','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',82,82,'com.google.gerrit.server.git.BatchUpdate','call(ReviewDb, ChangeUpdate)',NULL),(5396,'TODO(dborowitz): Not sure this is guaranteed in general.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',179,179,'com.google.gerrit.server.git.BatchUpdate','addChangeOp(ChangeOp)',NULL),(5397,'TODO(dborowitz): Support async operations?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',187,187,'com.google.gerrit.server.git.BatchUpdate','addPostOp(Callable<?>)',NULL),(5398,'TODO(dborowitz): Kill once callers are migrated.\nEventually, callers should always be responsible for executing.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java',283,284,'com.google.gerrit.server.change.PatchSetInserter','insert()',NULL),(5399,'TODO(dborowitz): When BatchUpdate is hoisted out of CherryPick,\nSubmitStrategy should probably no longer return MergeTip, instead just\nmutating a single shared MergeTip passed in from the caller.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/CherryPick.java',92,94,'com.google.gerrit.server.git.strategy.CherryPick','None',NULL),(5400,'TODO(yyonas): atomic update was not propagated','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java',124,124,'com.google.gerrit.server.change.Abandon','abandon(ChangeControl, String, Account)','DESIGN'),(5401,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java',-1,-1,'None','None',NULL),(5402,'TODO(dborowitz): Manual injection so we can throw IOException from the','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',84,84,'com.google.gerrit.server.git.BatchUpdate','call(ReviewDb, ChangeUpdate)','NOT_DESIGN'),(5403,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',-1,-1,'None','None',NULL),(5404,'TODO(dborowitz): Document that update contains the old change info.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',87,87,'com.google.gerrit.server.git.BatchUpdate','create(ReviewDb, Project.NameKey, Timestamp)',NULL),(5405,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java',-1,-1,'None','None',NULL),(5406,'TODO(yyonas): atomic update was not propagated','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PutTopic.java',116,116,'com.google.gerrit.server.change.PutTopic','apply(ChangeResource, Input)','DESIGN'),(5407,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/PutTopic.java',-1,-1,'None','None',NULL),(5408,'TODO(dborowitz): Support async operations?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',145,145,'com.google.gerrit.server.git.BatchUpdate','create(ReviewDb, Project.NameKey, Timestamp)',NULL),(5409,'TODO(dborowitz): Not sure this is guaranteed in general.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',190,190,'com.google.gerrit.server.git.BatchUpdate','addChangeOp(ChangeOp)',NULL),(5410,'TODO(dborowitz): Not sure this is guaranteed in general.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',241,241,'com.google.gerrit.server.git.BatchUpdate','addOp(ChangeControl, Op)',NULL),(5411,'TODO(dborowitz): Support async operations?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',198,198,'com.google.gerrit.server.git.BatchUpdate','addPostOp(Callable<?>)','NOT_DESIGN'),(5412,'TODO(dborowitz): Kill once callers are migrated.\nEventually, callers should always be responsible for executing.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java',260,261,'com.google.gerrit.server.change.PatchSetInserter','create(Repository, RevWalk, ChangeControl, RevCommit)','NOT_DESIGN'),(5413,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java',-1,-1,'None','None',NULL),(5414,'This is not exactly the key stored in the store, but is equivalent. In\nparticular, it will have a Bouncy Castle version string. The armored\nstream reader in PublicKeyStore doesn\'t give us an easy way to extract\nthe original ASCII armor.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/GpgKeys.java',239,242,'com.google.gerrit.gpg.server.GpgKeys','toJson(PGPPublicKeyRing, PublicKeyChecker, PublicKeyStore)',NULL),(5415,'This is not exactly the key stored in the store, but is equivalent. In\nparticular, it will have a Bouncy Castle version string. The armored\nstream reader in PublicKeyStore doesn\'t give us an easy way to extract\nthe original ASCII armor.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/GpgKeys.java',246,249,'com.google.gerrit.gpg.server.GpgKeys','toJson(PGPPublicKeyRing, PublicKeyChecker, PublicKeyStore)',NULL),(5416,'This is not exactly the key stored in the store, but is equivalent. In\nparticular, it will have a Bouncy Castle version string. The armored\nstream reader in PublicKeyStore doesn\'t give us an easy way to extract\nthe original ASCII armor.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/GpgKeys.java',247,250,'com.google.gerrit.gpg.server.GpgKeys','toJson(PGPPublicKey, CheckResult)',NULL),(5417,'Only pushing magic branches: allow a valid push certificate even if the\nkey is not ultimately trusted. Assume anyone with Submit permission to\nthe branch is able to verify during review that the code is legitimate.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/SignedPushPreReceiveHook.java',91,93,'com.google.gerrit.gpg.SignedPushPreReceiveHook','isAllowed(CheckResult, Collection<ReceiveCommand>)',NULL),(5418,'TODO(dborowitz): This is only public because callers expect validation to\nhappen before updating any refs, and they are still updating refs manually.\nMake private once we have migrated ref updates into this class.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java',353,355,'com.google.gerrit.server.change.ChangeInserter','validate()','DESIGN'),(5419,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java',-1,-1,'None','None',NULL),(5420,'TODO(dborowitz): Support async operations?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',149,149,'com.google.gerrit.server.git.BatchUpdate','create(ReviewDb, Project.NameKey, Timestamp)',NULL),(5421,'TODO(dborowitz): Support async operations?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',146,146,'com.google.gerrit.server.git.BatchUpdate','create(ReviewDb, Project.NameKey, CurrentUser, Timestamp)',NULL),(5422,'TODO(dborowitz): Not sure this is guaranteed in general.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java',238,238,'com.google.gerrit.server.git.BatchUpdate','addOp(ChangeControl, Op)','DESIGN'),(5423,'TODO(zivkov): handle the case with multiple merge bases','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ConflictsPredicate.java',215,215,'com.google.gerrit.server.query.change.ConflictsPredicate','predicates(Arguments, String, List<Change>)',NULL),(5424,'Our default encoding is required by the specifications for the\nruntime APIs, this should never, ever happen.\n','Line','gerrit-sshd/src/main/java/com/google/gerrit/sshd/BaseCommand.java',315,317,'com.google.gerrit.sshd.BaseCommand','setInputStream(InputStream)','DESIGN'),(5425,'None','None','gerrit-sshd/src/main/java/com/google/gerrit/sshd/BaseCommand.java',-1,-1,'None','None',NULL),(5426,'TODO(dborowitz): Move to IndexConfig and use in more places.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java',136,136,'com.google.gerrit.server.query.change.InternalChangeQuery','byCommitsOnBranchNotMerged(Branch.NameKey, List<String>)','DESIGN'),(5427,'Account for all commit predicates plus ref, project, status.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java',136,136,'com.google.gerrit.server.query.change.InternalChangeQuery','byCommitsOnBranchNotMerged(Branch.NameKey, List<String>)',NULL),(5428,'TODO: remove this code when Guice fixes its issue 745','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/GitOverHttpServlet.java',164,164,'com.google.gerrit.httpd.GitOverHttpServlet','configure()','DESIGN'),(5429,'None','None','gerrit-httpd/src/main/java/com/google/gerrit/httpd/GitOverHttpServlet.java',-1,-1,'None','None',NULL),(5430,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',449,449,'com.google.gerrit.server.change.PostReview','updateLabels(RevisionResource, ChangeUpdate, Map<String, Short>)',NULL),(5431,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',469,469,'com.google.gerrit.server.change.PostReview','updateLabels(ChangeContext)',NULL),(5432,'TODO Find another way to link reviewers to changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',497,497,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5433,'TODO Find another way to link reviewers to changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',517,517,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(ChangeContext, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5434,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide LabelType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',499,500,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(RevisionResource, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5435,'If no existing label is being set to 0, hack in the caller\nas a reviewer by picking the first server-wide LabelType.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',519,520,'com.google.gerrit.server.change.PostReview','forceCallerAsReviewer(ChangeContext, Map<String, PatchSetApproval>, List<PatchSetApproval>, List<PatchSetApproval>)',NULL),(5436,'TODO: fix setMessage to work without init()','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ConsistencyChecker.java',476,476,'com.google.gerrit.server.change.ConsistencyChecker','insertPatchSet(RevCommit)','DESIGN'),(5437,'RFC4880 states:\n\\\"If a key has been revoked because of a compromise, all signatures\ncreated by that key are suspect. However, if it was merely superseded or\nretired, old signatures are still valid.\\\"\n\nNote that GnuPG does not implement this correctly, as it does not\nconsider the revocation reason and timestamp when checking whether a\nsignature (data or certification) is valid.','Line','gerrit-gpg/src/main/java/com/google/gerrit/gpg/PublicKeyChecker.java',235,242,'com.google.gerrit.gpg.PublicKeyChecker','isRevocationValid(PGPSignature, RevocationReason, Date)',NULL),(5438,'Expected size of each list is 1, so nested linear search is fine.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java',173,173,'com.google.gerrit.server.change.GetRelated','apply(RevisionResource)','NOT_DESIGN'),(5439,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java',-1,-1,'None','None',NULL),(5440,'1,2 is related directly to 4,1, and the 2-3 parallel branch stays intact.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java',348,348,'com.google.gerrit.acceptance.server.change.GetRelatedIT','getRelatedReworkThenExtendInTheMiddleOfSeries()',NULL),(5441,'Breadth-first search with oldest children first.\nTODO(dborowitz): After killing PatchSetAncestors, consider DFS to keep\nparallel history together.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetAncestorSorter.java',202,204,'com.google.gerrit.server.change.PatchSetAncestorSorter','walkDescendentsImpl(ProjectControl, Set<Change.Id>, ListMultimap<PatchSetData, PatchSetData>, List<PatchSetData>)',NULL),(5442,'TODO(dborowitz): TEST.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java',57,57,'com.google.gerrit.acceptance.git.AbstractPushForReview','noteDbEnabled()',NULL),(5443,'TODO(dborowitz): Just scan author space.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchLineCommentsUtil.java',278,278,'com.google.gerrit.server.PatchLineCommentsUtil','draftByAuthor(ReviewDb, Account.Id)','NOT_DESIGN'),(5444,'Breadth-first search with oldest children first.\nTODO(dborowitz): After killing PatchSetAncestors, consider DFS to keep\nparallel history together.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/RelatedChangesSorter.java',202,204,'com.google.gerrit.server.change.RelatedChangesSorter','walkDescendentsImpl(ProjectControl, Set<Change.Id>, ListMultimap<PatchSetData, PatchSetData>, List<PatchSetData>)','NOT_DESIGN'),(5445,'Depth-first search with newest children first.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/RelatedChangesSorter.java',202,202,'com.google.gerrit.server.change.RelatedChangesSorter','walkDescendentsImpl(ProjectControl, Set<Change.Id>, ListMultimap<PatchSetData, PatchSetData>, List<PatchSetData>)',NULL),(5446,'TODO(davido): Remove manual merging in follow-up change','Line','gerrit-server/src/main/java/com/google/gerrit/server/account/SetDiffPreferences.java',130,130,'com.google.gerrit.server.account.SetDiffPreferences','merge(DiffPreferencesInfo, DiffPreferencesInfo)','DESIGN'),(5447,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/account/SetDiffPreferences.java',-1,-1,'None','None',NULL),(5448,'Serve static resources directly from our JAR. This way we don\'t\nneed to unpack them into yet another temporary directory prior to\nserving to clients.\n','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java',424,427,'com.google.gerrit.pgm.http.jetty.JettyServer','start()','DESIGN'),(5449,'This is the path we are accessed by clients within our domain.\n','Line','gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java',383,384,'com.google.gerrit.pgm.http.jetty.JettyServer','makeContext(String, JettyEnv, Config)',NULL),(5450,'TODO Allow updating some labels even when closed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java',519,519,'com.google.gerrit.server.change.PostReview','updateLabels(ChangeContext)','NOT_DESIGN'),(5451,'limit the number of query terms otherwise Gerrit will barf','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java',577,577,'com.google.gerrit.server.query.change.ChangeQueryBuilder','label(String)',NULL),(5452,'TODO(davido): find a better way to enforce cache invalidation.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java',136,136,'com.google.gerrit.server.change.DeleteDraftPatchSet','deleteOrUpdateDraftChange(PatchSet.Id, Change)','NOT_DESIGN'),(5453,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java',-1,-1,'None','None',NULL),(5454,'TODO(dborowitz): Delete after migrating DeleteDraftChange to BatchUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java',348,348,'com.google.gerrit.server.ChangeUtil','deleteDraftChangeInNewTransaction(Change)','DESIGN'),(5455,'TODO(dborowitz): ResourceConflictException.','Line','gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java',366,366,'com.google.gerrit.server.ChangeUtil','deleteDraftChange(Change)',NULL),(5456,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java',-1,-1,'None','None',NULL),(5457,'TODO(dborowitz): ResourceConflictException.','Line','gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java',349,349,'com.google.gerrit.server.ChangeUtil','deleteDraftChange(Change)','NOT_DESIGN'),(5458,'no providerId in the cookie value => assume default provider\nnote: a leading/trailing at sign is considered to belong to\nthe access token rather than being a separator','Line','gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectOAuthFilter.java',250,252,'com.google.gerrit.httpd.ProjectOAuthFilter','init(FilterConfig)',NULL),(5459,'We try to retrieve claimed identity.\nFor some reason, for example staging instance\nit may deviate from the really old OpenID identity.\nWhat we want to avoid in any event is to create new\naccount instead of linking to the existing one.\nThat why we query it here, not to lose linking mode.','Line','gerrit-openid/src/main/java/com/google/gerrit/httpd/auth/openid/OAuthSessionOverOpenID.java',130,135,'com.google.gerrit.httpd.auth.openid.OAuthSessionOverOpenID','authenticateAndRedirect(HttpServletRequest, HttpServletResponse)',NULL),(5460,'This is (for now) a fatal error. There are two records\nfor what might be the same user. The admin would have to\nlink the accounts manually.','Line','gerrit-openid/src/main/java/com/google/gerrit/httpd/auth/openid/OAuthSessionOverOpenID.java',151,153,'com.google.gerrit.httpd.auth.openid.OAuthSessionOverOpenID','authenticateAndRedirect(HttpServletRequest, HttpServletResponse)',NULL),(5461,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',649,657,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(Collection<ChangeData>)',NULL),(5462,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',645,653,'com.google.gerrit.server.git.MergeOp','validateChangeList(Collection<ChangeData>)',NULL),(5463,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',673,673,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(Collection<ChangeData>)',NULL),(5464,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',669,669,'com.google.gerrit.server.git.MergeOp','validateChangeList(Collection<ChangeData>)',NULL),(5465,'TODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',633,636,'com.google.gerrit.server.git.MergeOp','validateChangeList(Collection<ChangeData>)',NULL),(5466,'TODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',642,645,'com.google.gerrit.server.git.MergeOp','validateChangeList(OpenRepo, Collection<ChangeData>)',NULL),(5467,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',652,652,'com.google.gerrit.server.git.MergeOp','validateChangeList(Collection<ChangeData>)',NULL),(5468,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',661,661,'com.google.gerrit.server.git.MergeOp','validateChangeList(OpenRepo, Collection<ChangeData>)',NULL),(5469,'TODO(dborowitz): Make RevWalk available via BatchUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java',199,199,'com.google.gerrit.server.git.strategy.RebaseIfNecessary','run(CodeReviewCommit, Collection<CodeReviewCommit>)',NULL),(5470,'TODO(dborowitz): Can\'t use repo from ctx due to canMergeFlag.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java',248,248,'com.google.gerrit.server.git.strategy.RebaseIfNecessary','updateRepo(RepoContext)',NULL),(5471,'TODO(dborowitz): Delete when we delete support for pre-Lucene-5.0 schemas.','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',219,219,'com.google.gerrit.lucene.LuceneChangeIndex','setReady(SitePaths, int, boolean)','NOT_DESIGN'),(5472,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ExactTopicPredicate.java',-1,-1,'None','None',NULL),(5473,'TODO(yyonas): atomic change is not propagated.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1273,1273,'com.google.gerrit.server.git.MergeOp','setNew(ChangeNotes, ChangeMessage)','NOT_DESIGN'),(5474,'TODO Technically the proper way to do this test is to use a\nRevWalk on \\\"$id --not --all\\\" and test for an empty set. But\nthat is way slower than looking for a ref directly pointing\nat the desired tip. We should always have a ref available.\n\nTODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',652,660,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(Collection<ChangeData>, IdentifiedUser)',NULL),(5475,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',676,676,'com.google.gerrit.server.git.MergeOp','ChangeData> validateChangeList(Collection<ChangeData>, IdentifiedUser)',NULL),(5476,'TODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',693,696,'com.google.gerrit.server.git.MergeOp','validateChangeList(OpenRepo, Collection<ChangeData>, IdentifiedUser)',NULL),(5477,'TODO this is actually an error, the branch is gone but we\nwant to merge the issue. We can\'t safely do that if the\ntip is not reachable.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',694,697,'com.google.gerrit.server.git.MergeOp','validateChangeList(OpenRepo, Collection<ChangeData>)',NULL),(5478,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',711,711,'com.google.gerrit.server.git.MergeOp','validateChangeList(OpenRepo, Collection<ChangeData>, IdentifiedUser)',NULL),(5479,'TODO(dborowitz): Consider putting ChangeData in CodeReviewCommit.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',712,712,'com.google.gerrit.server.git.MergeOp','validateChangeList(OpenRepo, Collection<ChangeData>)',NULL),(5480,'TODO(davido): accept closure passed in from caller','Line','gerrit-server/src/main/java/com/google/gerrit/server/config/ConfigUtil.java',303,303,'com.google.gerrit.server.config.ConfigUtil','storeSection(Config, String, String, T, T)',NULL),(5481,'TODO(davido): accept closure passed in from caller','Line','gerrit-server/src/main/java/com/google/gerrit/server/config/ConfigUtil.java',366,366,'com.google.gerrit.server.config.ConfigUtil','loadSection(Config, String, String, T, T, T)',NULL),(5482,'This seems like a cheap trick. It doesn\'t properly account for a\nfile that gets renamed between patch set 1 and patch set 2. We\nwill wind up packing the wrong Patch object because we didn\'t do\nproper rename detection between the patch sets.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptFactory.java',250,254,'com.google.gerrit.server.patch.PatchScriptFactory','loadCommentsAndHistory(ChangeType, String, String)',NULL),(5483,'This seems like a cheap trick. It doesn\'t properly account for a\nfile that gets renamed between patch set 1 and patch set 2. We\nwill wind up packing the wrong Patch object because we didn\'t do\nproper rename detection between the patch sets.\n','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptFactory.java',260,264,'com.google.gerrit.server.patch.PatchScriptFactory','loadCommentsAndHistory(ChangeNotes, ChangeType, String, String)',NULL),(5484,'TODO(dborowitz): PatchSetUtil.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/GroupCollector.java',132,132,'com.google.gerrit.server.git.GroupCollector','lookup(PatchSet.Id)',NULL),(5485,'TODO(dborowitz): Read from notedb.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchSetUtil.java',37,37,'com.google.gerrit.server.PatchSetUtil','get(ReviewDb, ChangeNotes, PatchSet.Id)',NULL),(5486,'TODO(dborowitz): Use PatchSetUtil after BatchUpdate migration.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1035,1035,'com.google.gerrit.server.git.MergeOp','setMerged(Change, ChangeMessage, ObjectId)',NULL),(5487,'TODO(dborowitz): Write to notedb.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchSetUtil.java',87,87,'com.google.gerrit.server.PatchSetUtil','insert(ReviewDb, ChangeUpdate, PatchSet.Id, ObjectId, boolean, Iterable<String>, String)',NULL),(5488,'TODO(dborowitz): Make RevWalk available via BatchUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java',183,183,'com.google.gerrit.server.git.strategy.RebaseIfNecessary','run(CodeReviewCommit, Collection<CodeReviewCommit>)','NOT_DESIGN'),(5489,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java',-1,-1,'None','None',NULL),(5490,'TODO(dborowitz): make non-public when converting to BatchUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/SubmitStrategy.java',69,69,'com.google.gerrit.server.git.strategy.SubmitStrategy','module()',NULL),(5491,'TODO(dborowitz): When BatchUpdate is hoisted out of CherryPick,\nSubmitStrategy should probably no longer return MergeTip, instead just\nmutating a single shared MergeTip passed in from the caller.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/CherryPick.java',77,79,'com.google.gerrit.server.git.strategy.CherryPick','None','DESIGN'),(5492,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/CherryPick.java',-1,-1,'None','None',NULL),(5493,'TODO(dborowitz): make non-public when converting to BatchUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/SubmitStrategy.java',70,70,'com.google.gerrit.server.git.strategy.SubmitStrategy','module()','NOT_DESIGN'),(5494,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/SubmitStrategy.java',-1,-1,'None','None',NULL),(5495,'TODO(dborowitz): Use PatchSetUtil after BatchUpdate migration.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',1096,1096,'com.google.gerrit.server.git.MergeOp','setMerged(Change, ChangeMessage, ObjectId)','NOT_DESIGN'),(5496,'TODO(dborowitz): Can\'t use repo from ctx due to canMergeFlag.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java',227,227,'com.google.gerrit.server.git.strategy.RebaseIfNecessary','updateRepo(RepoContext)',NULL),(5497,'TODO(dborowitz): Can\'t use repo from ctx due to canMergeFlag.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java',198,198,'com.google.gerrit.server.git.strategy.RebaseIfNecessary','updateRepoImpl(RepoContext)',NULL),(5498,'TODO(dborowitz): Pre-BatchUpdate behavior wrote the merged message on\nthe old patch set ID, so that\'s what we do here. I don\'t think this\nwas intentional, and it should be changed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/SubmitStrategyOp.java',299,301,'com.google.gerrit.server.git.strategy.SubmitStrategyOp','message(ChangeContext, String)','DESIGN'),(5499,'TODO(dborowitz): Use PatchSetUtil? But we don\'t have a recent notes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/SubmitStrategyOp.java',312,312,'com.google.gerrit.server.git.strategy.SubmitStrategyOp','setMerged(ChangeContext, ChangeMessage)','DESIGN'),(5500,'TODO(dborowitz): Convert to BatchUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',895,895,'com.google.gerrit.server.git.MergeOp','abandonOneChange(Change)',NULL),(5501,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/SubmitStrategyOp.java',-1,-1,'None','None',NULL),(5502,'TODO(dborowitz): Write to notedb.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchSetUtil.java',91,91,'com.google.gerrit.server.PatchSetUtil','insert(ReviewDb, ChangeUpdate, PatchSet.Id, RevCommit, boolean, Iterable<String>, String)','NOT_DESIGN'),(5503,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/PatchSetUtil.java',-1,-1,'None','None',NULL),(5504,'TODO(dborowitz): Read from notedb.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchSetUtil.java',40,40,'com.google.gerrit.server.PatchSetUtil','None',NULL),(5505,'TODO(dborowitz): Re-enable when ConsistencyChecker supports notedb.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java',73,73,'com.google.gerrit.acceptance.server.change.ConsistencyCheckerIT','setUp()',NULL),(5506,'TODO(dborowitz): Stamp approximate approvals at this time.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',547,547,'com.google.gerrit.server.notedb.ChangeRebuilder','apply(ChangeUpdate)',NULL),(5507,'TODO(dborowitz): Read from notedb.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchSetUtil.java',44,44,'com.google.gerrit.server.PatchSetUtil','None','NOT_DESIGN'),(5508,'TODO(dborowitz): Read from notedb.','Line','gerrit-server/src/main/java/com/google/gerrit/server/PatchSetUtil.java',57,57,'com.google.gerrit.server.PatchSetUtil','get(ReviewDb, ChangeNotes, PatchSet.Id)','NOT_DESIGN'),(5509,'TODO(dborowitz): Can\'t use repo from ctx due to canMergeFlag.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java',189,189,'com.google.gerrit.server.git.strategy.RebaseIfNecessary','updateRepoImpl(RepoContext)','DESIGN'),(5510,'TODO(dborowitz): Re-enable when ConsistencyChecker supports notedb.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java',729,729,'com.google.gerrit.acceptance.api.change.ChangeIT','check()',NULL),(5511,'TODO(dborowitz): PatchSetUtil.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/GroupCollector.java',136,136,'com.google.gerrit.server.git.GroupCollector','lookup(PatchSet.Id)','NOT_DESIGN'),(5512,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/git/GroupCollector.java',-1,-1,'None','None',NULL),(5513,'TODO(dborowitz): Shouldn\'t have to look up Change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/GroupCollector.java',123,123,'com.google.gerrit.server.git.GroupCollector','create(Multimap<ObjectId, Ref>, ReviewDb, PatchSetUtil, ChangeNotes.Factory)',NULL),(5514,'we cannot reconstruct the submit records for when this change was\nsubmitted, this is why we must fix the status','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',2806,2807,'com.google.gerrit.server.git.ReceiveCommits','get()',NULL),(5515,'No patch set for the already merged commit, although we know it came form\na patch set ref. Fix up the database. Note that this uses the current\nuser as the uploader, which is as good a guess as any.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/SubmitStrategyOp.java',309,311,'com.google.gerrit.server.git.strategy.SubmitStrategyOp','getOrCreateAlreadyMergedPatchSet(ChangeContext)',NULL),(5516,'TODO(dborowitz): Seems like this could get expensive for many patch\nsets. Is there a more efficient implementation?','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java',714,715,'com.google.gerrit.server.git.MergeUtil','findAnyMergedInto(CodeReviewRevWalk, Iterable<CodeReviewCommit>, CodeReviewCommit)',NULL),(5517,'TODO(dborowitz): Shouldn\'t have to look up Change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/GroupCollector.java',124,124,'com.google.gerrit.server.git.GroupCollector','create(Multimap<ObjectId, Ref>, ReviewDb, PatchSetUtil, ChangeNotes.Factory)',NULL),(5518,'TODO(dborowitz): Reuse open repository from caller.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/GroupCollector.java',124,124,'com.google.gerrit.server.git.GroupCollector','create(Multimap<ObjectId, Ref>, ReviewDb, PatchSetUtil, ChangeNotes.Factory, Project.NameKey)',NULL),(5519,'TODO: Throw NoSuchChangeException when the change is not found in the\ndatabase','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',122,123,'com.google.gerrit.server.notedb.ChangeNotes','apply(PatchSetApproval)',NULL),(5520,'TODO(ekempin): Pass project to changeDataFactory','Line','gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java',459,459,'com.google.gerrit.lucene.LuceneChangeIndex','toChangeData(Document, Set<String>, String)','NOT_DESIGN'),(5521,'Just don\'t BCC everyone. Better to send a partial message to those\nwe already have queued up then to fail deliver entirely to people\nwho have a lower interest in the change.','Line','gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java',310,312,'com.google.gerrit.server.mail.ChangeEmail','newChangeData(EmailArguments, Change.Id)',NULL),(5522,'TODO Don\'t load the changes directly from the database, but provide\nproject name + change ID to changeDataFactory, or delete this predicate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/HasDraftByLegacyPredicate.java',60,61,'com.google.gerrit.server.query.change.HasDraftByLegacyPredicate','read()',NULL),(5523,'TODO: propagate this exception','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',74,74,'com.google.gerrit.server.project.ChangeControl','controlFor(Project.NameKey, Change.Id, CurrentUser)',NULL),(5524,'If too many changes failed, maybe there was a bug in the indexer. Don\'t\ntrust the results. This is not an exact percentage since we bump the same\nfailure counter if a project can\'t be read, but close enough.','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/SiteIndexer.java',233,235,'com.google.gerrit.server.index.SiteIndexer','success()',NULL),(5525,'TODO: propagate this exception','Line','gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java',78,78,'com.google.gerrit.server.project.ChangeControl','controlFor(Project.NameKey, Change.Id, CurrentUser)',NULL),(5526,'ignore non valid numbers\nWe don\'t want to popup another ugly dialog just to say\n\\\"The number you\'ve provided is invalid, try again\\\"','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java',269,271,'com.google.gerrit.client.editor.EditScreen','gotoLine()','NOT_DESIGN'),(5527,'TODO(dborowitz): Remove when deleting index schemas <27.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',139,139,'com.google.gerrit.server.notedb.ChangeNotes','apply(PatchSetApproval)',NULL),(5528,'TODO(dborowitz): Remove when deleting index schemas <27.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeData.java',280,280,'com.google.gerrit.server.query.change.ChangeData','asChanges(List<ChangeData>)',NULL),(5529,'TODO(ekempin): Remove when database backend is deleted','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java',203,203,'com.google.gerrit.server.notedb.ChangeNotes','apply(PatchSetApproval)',NULL),(5530,'TODO(ekempin): mark changes as merged inside of ReplaceOp','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java',2180,2180,'com.google.gerrit.server.git.ReceiveCommits','get()',NULL),(5531,'TODO(dborowitz): support InternalUser in ChangeUpdate','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',898,898,'com.google.gerrit.server.git.MergeOp','abandonOneChange(Change)','DESIGN'),(5532,'TODO(dborowitz): Convert to BatchUpdate.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',901,901,'com.google.gerrit.server.git.MergeOp','abandonOneChange(Change)','NOT_DESIGN'),(5533,'TODO(yyonas): atomic change is not propagated.','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',927,927,'com.google.gerrit.server.git.MergeOp','abandonOneChange(Change)','NOT_DESIGN'),(5534,'TODO: Use InternalUser instead of change owner','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',876,876,'com.google.gerrit.server.git.MergeOp','abandonAllOpenChangeForDeletedProject(Project.NameKey)',NULL),(5535,'TODO(davido): Maintain cache of default values in AllUsers repository','Line','gerrit-server/src/main/java/com/google/gerrit/server/config/GetPreferences.java',54,54,'com.google.gerrit.server.config.GetPreferences','apply(ConfigResource)',NULL),(5536,'TODO(davido): Expose setting of account preferences in the API','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/CreateChangeIT.java',179,179,'com.google.gerrit.acceptance.rest.change.CreateChangeIT','setSignedOffByFooter()',NULL),(5537,'better.','Line','gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeData.java',623,623,'com.google.gerrit.server.query.change.ChangeData','asChanges(List<ChangeData>)',NULL),(5538,'TODO - dborowitz: add NEW_CHANGE type for default.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeKindCacheImpl.java',342,342,'com.google.gerrit.server.change.ChangeKindCacheImpl','getChangeKindInternal(ChangeKindCache, ReviewDb, Change, PatchSet, ChangeData.Factory, ProjectCache, GitRepositoryManager)',NULL),(5539,'TODO - dborowitz: add NEW_CHANGE type for default.','Line','gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeKindCacheImpl.java',343,343,'com.google.gerrit.server.change.ChangeKindCacheImpl','getChangeKindInternal(ChangeKindCache, ReviewDb, ChangeNotes, PatchSet, ChangeData.Factory, ProjectCache, GitRepositoryManager)',NULL),(5540,'TODO: The same method exists in PatchSetInfoFactory, find a common place\nfor it','Line','gerrit-server/src/main/java/com/google/gerrit/server/events/EventFactory.java',517,518,'com.google.gerrit.server.events.EventFactory','toUserIdentity(PersonIdent)',NULL),(5541,'TODO: The same method exists in EventFactory, find a common place for it','Line','gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchSetInfoFactory.java',101,101,'com.google.gerrit.server.patch.PatchSetInfoFactory','toUserIdentity(PersonIdent)',NULL),(5542,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',357,359,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change, ListeningExecutorService, BatchRefUpdate, BatchRefUpdate, Repository, Repository)',NULL),(5543,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',331,333,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change, ListeningExecutorService, Repository)',NULL),(5544,'TODO(dborowitz): share manager across changes.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',156,156,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change, ListeningExecutorService, Repository)','NOT_DESIGN'),(5545,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',-1,-1,'None','None',NULL),(5546,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',325,327,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change.Id, ListeningExecutorService)',NULL),(5547,'Take advantage of an existing update on All-Users to prune any\npublished comments from drafts. NoteDbUpdateManager takes care of\nensuring that this update is applied before its dependent draft\nupdate.\n\nDeleting aggressively in this way, combined with filtering out\nduplicate published/draft comments in ChangeNotes#getDraftComments,\nmakes up for the fact that updates between the change repo and\nAll-Users are not atomic.\n\nTODO(dborowitz): We might want to distinguish between deleted\ndrafts that we\'re fixing up after the fact by putting them in a\nseparate commit. But note that we don\'t care much about the commit\ngraph of the draft ref, particularly because the ref is completely\ndeleted when all drafts are gone.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeUpdate.java',412,426,'com.google.gerrit.server.notedb.ChangeUpdate','checkComments(Map<RevId, RevisionNote>, Map<RevId, RevisionNoteBuilder>)',NULL),(5548,'TODO: can go back to a list?','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeDraftUpdate.java',83,83,'com.google.gerrit.server.notedb.ChangeDraftUpdate','create(ChangeControl, Date)',NULL),(5549,'TODO: Use InternalUser instead of change owner','Line','gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java',880,880,'com.google.gerrit.server.git.MergeOp','abandonAllOpenChangeForDeletedProject(Project.NameKey)','NOT_DESIGN'),(5550,'TODO(dborowitz): Smarter bucketing: pick a bucket start time T and\ninclude all events up to T + TS_WINDOW_MS but no further.\nInterleaving different authors complicates things.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',334,336,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change.Id, ListeningExecutorService)','NOT_DESIGN'),(5551,'Too much time elapsed.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',412,412,'com.google.gerrit.server.notedb.ChangeRebuilder','rebuildAsync(Change.Id, ListeningExecutorService)',NULL),(5552,'TODO(dborowitz): This should maybe be a synthetic timestamp just\nafter the actual last update in the history. On the one hand using\nthe commit updated time is reasonable, but on the other it might be\nnon-monotonic, and who knows what would break then.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',653,656,'com.google.gerrit.server.notedb.ChangeRebuilder','uniquePerUpdate()',NULL),(5553,'Only until we improve ChangeRebuilder to call merge().','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeUpdate.java',255,255,'com.google.gerrit.server.notedb.ChangeUpdate','setSubmissionId(String)',NULL),(5554,'First line workaround','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java',82,82,'com.google.gerrit.client.diff.SkipBar','collapse(int, int, boolean)',NULL),(5555,'First line workaround','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySideSkipBar.java',81,81,'com.google.gerrit.client.diff.SideBySideSkipBar','collapse(int, int, boolean)',NULL),(5556,'First line workaround','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/UnifiedSkipBar.java',80,80,'com.google.gerrit.client.diff.UnifiedSkipBar','collapse(int, int, boolean)',NULL),(5557,'Every comment appears in both side maps as a linked pair.\nIt is only necessary to search one side to find a comment\non either side of the editor pair.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentManager.java',93,95,'com.google.gerrit.client.diff.CommentManager','commentNav(CodeMirror, Direction)',NULL),(5558,'Every comment appears in both side maps as a linked pair.\nIt is only necessary to search one side to find a comment\non either side of the editor pair.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySideCommentManager.java',74,76,'com.google.gerrit.client.diff.SideBySideCommentManager','commentNav(CodeMirror, Direction)',NULL),(5559,'TODO: This is not optimal, but shouldn\'t be too costly in most cases.\nMaybe rewrite after done keeping track of diff chunk positions.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentManager.java',252,253,'com.google.gerrit.client.diff.CommentManager','splitSkips(int, List<SkippedLine>)',NULL),(5560,'TODO: This is not optimal, but shouldn\'t be too costly in most cases.\nMaybe rewrite after done keeping track of diff chunk positions.','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySideCommentManager.java',242,243,'com.google.gerrit.client.diff.SideBySideCommentManager','splitSkips(int, List<SkippedLine>)',NULL),(5561,'TODO: verify addGutterTag','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/UnifiedChunkManager.java',139,139,'com.google.gerrit.client.diff.UnifiedChunkManager','initOnClick()',NULL),(5562,'TODO skip may need to be handled','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffInfo.java',136,136,'com.google.gerrit.client.diff.DiffInfo','textUnified()',NULL),(5563,'TODO: Handle showLineNumbers preference','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/Unified.java',182,182,'com.google.gerrit.client.diff.Unified','display(CommentsCollections)',NULL),(5564,'TODO: Implement this','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/Unified.java',257,257,'com.google.gerrit.client.diff.Unified','setShowLineNumbers(boolean)',NULL),(5565,'TODO: Handle range comment','Line','gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/UnifiedCommentManager.java',364,364,'com.google.gerrit.client.diff.UnifiedCommentManager','newDraft(CodeMirror)',NULL),(5566,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',104,104,'com.google.gerrit.server.notedb.CommentsInNotesUtil','parseNote(byte[], MutableInteger, Change.Id, Status)','DESIGN'),(5567,'None','None','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',-1,-1,'None','None',NULL),(5568,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/CommentsInNotesUtil.java',74,74,'com.google.gerrit.server.notedb.CommentsInNotesUtil','None',NULL),(5569,'We\'re not generally supposed to do work in provider constructors, but\nthis is a bit of a special case because we really need to have the ID\navailable by the time the dbInjector is created. This even applies during\nRebuildNoteDb, which otherwise would have been a reasonable place to do\nthe ID generation. Fortunately, it\'s not much work, and it happens once.','Line','gerrit-server/src/main/java/com/google/gerrit/server/api/config/GerritServerIdProvider.java',51,55,'com.google.gerrit.server.api.config.GerritServerIdProvider','get()',NULL),(5570,'TODO(dborowitz): Use a ThreadLocal or use Joda.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNoteUtil.java',103,103,'com.google.gerrit.server.notedb.ChangeNoteUtil','changeRefName(Change.Id)',NULL),(5571,'TODO(dborowitz): Re-enable when ConsistencyChecker supports notedb.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java',75,75,'com.google.gerrit.acceptance.server.change.ConsistencyCheckerIT','setUp()','NOT_DESIGN'),(5572,'TODO(dborowitz): Re-enable when ConsistencyChecker supports notedb.\nNote that we *do* want to enable these tests with GERRIT_CHECK_NOTEDB, as\nwe need to be able to convert old, corrupt changes. However, those tests\ndon\'t necessarily need to pass.','Line','gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java',75,78,'com.google.gerrit.acceptance.server.change.ConsistencyCheckerIT','setUp()',NULL),(5573,'TODO(dborowitz): This should maybe be a synthetic timestamp just\nafter the actual last update in the history. On the one hand using\nthe commit updated time is reasonable, but on the other it might be\nnon-monotonic, and who knows what would break then.','Line','gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeRebuilder.java',692,695,'com.google.gerrit.server.notedb.ChangeRebuilder','uniquePerUpdate()','DESIGN'),(5574,'Additional values not currently added by getPersonParts.\nTODO(dborowitz): Move to getPersonParts and remove this hack.','Line','gerrit-server/src/main/java/com/google/gerrit/server/index/account/AccountField.java',76,77,'com.google.gerrit.server.index.account.AccountField','get(AccountState, FillArgs)',NULL),(5575,'Read characters into a portion of an array, reading from the underlying\nstream at most once if necessary.','Block','src/java/org/apache/hadoop/fs/FSInputChecker.java',179,182,'org.apache.hadoop.fs.FSInputChecker','read1(byte[], int, int)',NULL),(5576,'the directory better be empty','Line','src/test/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java',85,85,'org.apache.hadoop.fs.kfs.KFSEmulationImpl','rmdir(String)',NULL),(5577,'Check that every permission has its sticky bit represented correctly','Line','src/test/org/apache/hadoop/fs/permission/TestFsPermission.java',73,73,'org.apache.hadoop.fs.permission.TestFsPermission','testStickyBitToString()',NULL),(5578,'verify that after expunging the Trash, it really goes away','Line','src/test/org/apache/hadoop/fs/TestTrash.java',208,208,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5579,'TODO','Line','src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/servers/HadoopLocationWizard.java',251,251,'org.apache.hadoop.eclipse.servers.HadoopLocationWizard','performFinish()',NULL),(5580,'XXX don\'t know what the file is?','Line','src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/dfs/DFSFolder.java',97,97,'org.apache.hadoop.eclipse.dfs.DFSFolder','upload(IProgressMonitor, File)',NULL),(5581,'FIXME Error dialog','Line','src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/launch/HadoopApplicationLaunchShortcut.java',92,92,'org.apache.hadoop.eclipse.launch.HadoopApplicationLaunchShortcut','findLaunchConfiguration(IType, ILaunchConfigurationType)',NULL),(5582,'TODO close DFS connections?','Line','src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/server/HadoopServer.java',257,257,'org.apache.hadoop.eclipse.server.HadoopServer','dispose()',NULL),(5583,'todo: only if all classes are of proper types','Line','src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/launch/LocalMapReduceLaunchTabGroup.java',87,87,'org.apache.hadoop.eclipse.launch.LocalMapReduceLaunchTabGroup','isValid(ILaunchConfiguration)',NULL),(5584,'TODO enable upload command only when selection is exactly one folder','Line','src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/actions/DFSActionImpl.java',181,181,'org.apache.hadoop.eclipse.actions.DFSActionImpl','uploadFilesToDFS(IStructuredSelection)',NULL),(5585,'TODO enable upload command only when selection is exactly one folder','Line','src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/actions/DFSActionImpl.java',211,211,'org.apache.hadoop.eclipse.actions.DFSActionImpl','uploadDirectoryToDFS(IStructuredSelection)',NULL),(5586,'rare case where splits are exact, logs.length can be 4','Line','src/test/hdfs-with-mr/org/apache/hadoop/fs/TestCopyFiles.java',589,589,'org.apache.hadoop.fs.TestCopyFiles','reset()',NULL),(5587,'Refresh the service level authorization policy','Line','src/test/hdfs-with-mr/org/apache/hadoop/security/authorize/TestServiceLevelAuthorization.java',114,114,'org.apache.hadoop.security.authorize.TestServiceLevelAuthorization','testRefresh()',NULL),(5588,'Refresh the service level authorization policy once again,\nthis time it should fail!','Line','src/test/hdfs-with-mr/org/apache/hadoop/security/authorize/TestServiceLevelAuthorization.java',130,131,'org.apache.hadoop.security.authorize.TestServiceLevelAuthorization','testRefresh()',NULL),(5589,'Check that every permission has its sticky bit represented correctly','Line','src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java',73,73,'org.apache.hadoop.fs.permission.TestFsPermission','testStickyBitToString()',NULL),(5590,'verify that after expunging the Trash, it really goes away','Line','src/test/core/org/apache/hadoop/fs/TestTrash.java',208,208,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5591,'the directory better be empty','Line','src/test/core/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java',85,85,'org.apache.hadoop.fs.kfs.KFSEmulationImpl','rmdir(String)',NULL),(5592,'Move to within the existent directory','Line','src/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java',518,518,'org.apache.hadoop.fs.s3native.NativeS3FileSystem','rename(Path, Path)','NOT_DESIGN'),(5593,'None','None','src/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java',-1,-1,'None','None',NULL),(5594,'Move everything inside the folder','Line','src/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java',542,542,'org.apache.hadoop.fs.s3native.NativeS3FileSystem','rename(Path, Path)','NOT_DESIGN'),(5595,'Verify fix of bug identified in HADOOP-6004','Line','src/test/core/org/apache/hadoop/fs/TestBlockLocation.java',30,30,'org.apache.hadoop.fs.TestBlockLocation','testDeserialization()',NULL),(5596,'move the cursor to the beginning of the tail, containing: offset to the\nmeta block index, version and magic','Line','src/java/org/apache/hadoop/io/file/tfile/BCFile.java',619,620,'org.apache.hadoop.io.file.tfile.BCFile','register(long, long, long)',NULL),(5597,'TODO: sample the generated key/value records, and put the numbers below','Line','src/test/core/org/apache/hadoop/io/file/tfile/TestTFileLzoCodecsByteArrays.java',36,36,'org.apache.hadoop.io.file.tfile.TestTFileLzoCodecsByteArrays','setUp()',NULL),(5598,'flag to ensure value is only examined once.','Line','src/java/org/apache/hadoop/io/file/tfile/TFile.java',1127,1127,'org.apache.hadoop.io.file.tfile.TFile','getChunkBufferSize(Configuration)',NULL),(5599,'TODO: remember the longest key in a TFile, and use it to replace\nMAX_KEY_SIZE.','Line','src/java/org/apache/hadoop/io/file/tfile/TFile.java',1183,1184,'org.apache.hadoop.io.file.tfile.TFile','getChunkBufferSize(Configuration)',NULL),(5600,'Verify skip trash option really works','Line','src/test/core/org/apache/hadoop/fs/TestTrash.java',260,260,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5601,'Verify that skip trash option really skips the trash for rmr','Line','src/test/core/org/apache/hadoop/fs/TestTrash.java',292,292,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5602,'Setting recursive permission to grant everyone read and execute','Line','src/java/org/apache/hadoop/filecache/DistributedCache.java',423,423,'org.apache.hadoop.filecache.DistributedCache','getLocalCache(URI, Configuration, Path, FileStatus, boolean, long, Path)',NULL),(5603,'The following XDR recipe was done through a careful reading of\ngm_protocol.x in Ganglia 3.1 and carefully examining the output of\nthe gmetric utility with strace.','Line','src/java/org/apache/hadoop/metrics/ganglia/GangliaContext31.java',98,100,'org.apache.hadoop.metrics.ganglia.GangliaContext31','emitMetric(String, String, String)',NULL),(5604,'TODO: Destroy all the processes in the subtree in this case also.\nFor the time being, killing only the root process.','Line','src/java/org/apache/hadoop/util/ProcfsBasedProcessTree.java',294,295,'org.apache.hadoop.util.ProcfsBasedProcessTree','setSigKillInterval(long)',NULL),(5605,'TODO: Destroy all the processes in the subtree in this case also.\nFor the time being, killing only the root process.','Line','src/java/org/apache/hadoop/util/ProcessTree.java',72,73,'org.apache.hadoop.util.ProcessTree','isSetsidSupported()',NULL),(5606,'The following if clause handles the following case:\nAssume the following scenario in BZip2 compressed stream where\n. represent compressed data.\n.....[48 bit Block].....[48 bit   Block].....[48 bit Block]...\n........................[47 bits][1 bit].....[48 bit Block]...\n................................^[Assume a Byte alignment here]\n........................................^^[current position of stream]\n.....................^^[We go back 10 Bytes in stream and find a Block marker]\n........................................^^[We align at wrong position!]\n...........................................................^^[While this pos is correct]','Line','src/java/org/apache/hadoop/io/compress/BZip2Codec.java',156,165,'org.apache.hadoop.io.compress.BZip2Codec','createOutputStream(OutputStream)',NULL),(5607,'passed to the filesystem below\nWhen we move to new AbstractFileSystem\nthen it is not really needed except for','Line','src/java/org/apache/hadoop/fs/FileContext.java',137,139,'org.apache.hadoop.fs.FileContext','None',NULL),(5608,'Default impl  assumes that permissions do not matter and\nnor does the bytesPerChecksum  hence\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',605,608,'org.apache.hadoop.fs.FileSystem','get(Configuration)',NULL),(5609,'Default impl is to assume that permissions do not matter and hence\ncalling the regular mkdirs is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',625,627,'org.apache.hadoop.fs.FileSystem','get(Configuration)',NULL),(5610,'Default impl  assumes that permissions do not matter and\nnor does the bytesPerChecksum  hence\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',699,702,'org.apache.hadoop.fs.FileSystem','get(Configuration)',NULL),(5611,'Default impl is to assume that permissions do not matter and hence\ncalling the regular mkdirs is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',762,764,'org.apache.hadoop.fs.FileSystem','get(Configuration)',NULL),(5612,'Default probability is 0%\nMax probability is 100%','Line','src/test/aop/org/apache/hadoop/fi/ProbabilityModel.java',49,50,'org.apache.hadoop.fi.ProbabilityModel','None',NULL),(5613,'Set new default probability if specified through a system.property\nIf neither is specified set default probability to DEFAULT_PROB','Line','src/test/aop/org/apache/hadoop/fi/ProbabilityModel.java',55,56,'org.apache.hadoop.fi.ProbabilityModel','injectCriteria(String)',NULL),(5614,'passed to the filesystem below\nWhen we move to new AbstractFileSystem\nthen it is not really needed except for','Line','src/java/org/apache/hadoop/fs/FileContext.java',159,161,'org.apache.hadoop.fs.FileContext','None','DESIGN'),(5615,'default FS for this FileContext.\nFully qualified','Line','src/java/org/apache/hadoop/fs/FileContext.java',182,183,'org.apache.hadoop.fs.FileContext','accept(Path)',NULL),(5616,'Default impl assumes that permissions do not matter\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/DelegateToFileSystem.java',64,66,'org.apache.hadoop.fs.DelegateToFileSystem','createInternal(Path, EnumSet<CreateFlag>, FsPermission, int, short, long, Progressable, int, boolean)',NULL),(5617,'Some filesystem like HDFS ignore the \\\"x\\\" bit if the permission.\nOthers like localFs does not.\nOverride the method below if the file system being tested masks our\ncertain bits for file masks.','Block','src/test/core/org/apache/hadoop/fs/FileContextPermissionBase.java',205,210,'org.apache.hadoop.fs.FileContextPermissionBase','getTestRootRelativePath(String)',NULL),(5618,'Workaround for HADOOP-6386','Line','src/java/org/apache/hadoop/http/HttpServer.java',473,473,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)',NULL),(5619,'End of HADOOP-6386 workaround','Line','src/java/org/apache/hadoop/http/HttpServer.java',499,499,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)',NULL),(5620,'This may have been a misparse. java.net.URI specifies that\na URI is of the form:\nURI ::= [SCHEME-PART:]SCHEME-SPECIFIC-PART\n\nThe scheme-specific-part may be parsed in numerous ways, but if\nit starts with a \'/\' character, that makes it a \\\"hierarchical URI\\\",\nsubject to the following parsing:\nSCHEME-SPECIFIC-PART ::= \\\"//\\\" AUTHORITY-PART\nAUTHORITY-PART ::= [USER-INFO-PART] HOSTNAME [ \\\":\\\" PORT ]\n\nIn Hadoop, we require a host-based authority as well.\njava.net.URI parses left-to-right, so deprecated hostnames of the\nform \'foo:8020\' will have \'foo\' as their scheme and \'8020\' as their\nscheme-specific-part. We don\'t want this behavior.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',176,189,'org.apache.hadoop.fs.FileSystem','get(Configuration)','DESIGN'),(5621,'convert old-format name to new-format name\n\\\"local\\\" is now \\\"file:///\\\".','Line','src/java/org/apache/hadoop/fs/FileSystem.java',146,147,'org.apache.hadoop.fs.FileSystem','get(Configuration)',NULL),(5622,'unqualified is \\\"hdfs://\\\"','Line','src/java/org/apache/hadoop/fs/FileSystem.java',151,151,'org.apache.hadoop.fs.FileSystem','get(Configuration)',NULL),(5623,'Some filesystem like HDFS ignore the \\\"x\\\" bit if the permission.\nOthers like localFs does not.\nOverride the method below if the file system being tested masks our\ncertain bits for file masks.','Block','src/test/core/org/apache/hadoop/fs/FileContextPermissionBase.java',181,186,'org.apache.hadoop.fs.FileContextPermissionBase','setUp()',NULL),(5624,'TODO: Get the user name from the GSS API for Kerberbos-based security\nCreate the user subject','Line','src/java/org/apache/hadoop/ipc/Server.java',895,896,'org.apache.hadoop.ipc.Server','getProtocolClass(String, Configuration)','NOT_DESIGN'),(5625,'TODO: Get the user name from the GSS API for Kerberbos-based security','Line','src/java/org/apache/hadoop/ipc/Server.java',896,896,'org.apache.hadoop.ipc.Server','getProtocolClass(String, Configuration)',NULL),(5626,'server-side, don\'t trust the user groups provided by the client','Line','src/java/org/apache/hadoop/ipc/Server.java',898,898,'org.apache.hadoop.ipc.Server','getProtocolClass(String, Configuration)',NULL),(5627,'Asking the CodecPool for a decompressor for GzipCodec\nshould return null as well.','Line','src/test/core/org/apache/hadoop/io/compress/TestCodec.java',463,464,'org.apache.hadoop.io.compress.TestCodec','testCodecPoolAndGzipDecompressor()',NULL),(5628,'TODO: Get the user name from the GSS API for Kerberbos-based security','Line','src/java/org/apache/hadoop/ipc/Server.java',902,902,'org.apache.hadoop.ipc.Server','getProtocolClass(String, Configuration)','NOT_DESIGN'),(5629,'None','None','src/java/org/apache/hadoop/ipc/Server.java',-1,-1,'None','None',NULL),(5630,'Flip to the newly parsed permissions','Line','src/java/org/apache/hadoop/security/authorize/ConfiguredPolicy.java',154,154,'org.apache.hadoop.security.authorize.ConfiguredPolicy','refresh()',NULL),(5631,'Flip to the newly parsed permissions','Line','src/java/org/apache/hadoop/security/authorize/ServiceAuthorizationManager.java',90,90,'org.apache.hadoop.security.authorize.ServiceAuthorizationManager','refresh(Configuration, PolicyProvider)',NULL),(5632,'Authorize the superuser which is doing doAs\n\n@param user ugi of the effective or proxy user which contains a real user\n@param remoteAddress the ip address of client\n@param conf configuration\n@throws AuthorizationException','Block','src/java/org/apache/hadoop/security/authorize/ProxyUsers.java',52,59,'org.apache.hadoop.security.authorize.ProxyUsers','authorize(UserGroupInformation, String, Configuration)','NOT_DESIGN'),(5633,'Authorization is done. Just call super.','Line','src/java/org/apache/hadoop/http/AdminAuthorizedServlet.java',42,42,'org.apache.hadoop.http.AdminAuthorizedServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(5634,'perhaps a VIP is failing over','Line','src/java/org/apache/hadoop/ipc/RPC.java',190,190,'org.apache.hadoop.ipc.RPC','waitForProxy(Class, long, InetSocketAddress, Configuration, long)',NULL),(5635,'Benchmark for StringUtils split','Line','src/test/core/org/apache/hadoop/util/TestStringUtils.java',207,207,'org.apache.hadoop.util.TestStringUtils','main(String[])',NULL),(5636,'XXX Twenty internal version does not support --script option.','Line','src/test/system/java/org/apache/hadoop/test/system/process/HadoopDaemonRemoteCluster.java',357,357,'org.apache.hadoop.test.system.process.HadoopDaemonRemoteCluster','getCommand(String, String)',NULL),(5637,'Workaround for HADOOP-6386','Line','src/java/org/apache/hadoop/http/HttpServer.java',498,498,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)','NOT_DESIGN'),(5638,'None','None','src/java/org/apache/hadoop/http/HttpServer.java',-1,-1,'None','None',NULL),(5639,'End of HADOOP-6386 workaround','Line','src/java/org/apache/hadoop/http/HttpServer.java',523,523,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)','NOT_DESIGN'),(5640,'None','None','src/java/org/apache/hadoop/security/authorize/ProxyUsers.java',-1,-1,'None','None',NULL),(5641,'Default impl  assumes that permissions do not matter and\nnor does the bytesPerChecksum  hence\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',766,769,'org.apache.hadoop.fs.FileSystem','get(URI, Configuration, String)','DESIGN'),(5642,'None','None','src/java/org/apache/hadoop/fs/FileSystem.java',-1,-1,'None','None',NULL),(5643,'TBD: Code is still using hardcoded values (e.g. \\\"fs.automatic.close\\\")\ninstead of constant (e.g. FS_AUTOMATIC_CLOSE_KEY)\n','Line','src/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java',73,75,'org.apache.hadoop.fs.CommonConfigurationKeysPublic','None',NULL),(5644,'Asking the CodecPool for a decompressor for GzipCodec\nshould return null as well.','Line','src/test/core/org/apache/hadoop/io/compress/TestCodec.java',520,521,'org.apache.hadoop.io.compress.TestCodec','testCodecPoolAndGzipDecompressor()','NOT_DESIGN'),(5645,'None','None','src/test/core/org/apache/hadoop/io/compress/TestCodec.java',-1,-1,'None','None',NULL),(5646,'FIXME? Inflater docs say:  \'it is also necessary to provide an extra\n\\\"dummy\\\" byte as input. This is required by the ZLIB native\nlibrary in order to support certain optimizations.\'  However,\nthis does not appear to be true, and in any case, it\'s not\nentirely clear where the byte should go or what its value\nshould be.  Perhaps it suffices to have some deflated bytes\nin the first buffer load?  (But how else would one do it?)','Line','src/java/org/apache/hadoop/io/compress/zlib/BuiltInGzipDecompressor.java',114,120,'org.apache.hadoop.io.compress.zlib.BuiltInGzipDecompressor','needsInput()',NULL),(5647,'NOTE:  this is the one place we do NOT want to save the number\nof bytes sent (nRemaining here) into lastBytesSent:  since we\nare resending what we\'ve already sent before, offset is nonzero\nin general (only way it could be zero is if it already equals\nnRemaining), which would then screw up the offset calculation\n_next_ time around.  IOW, getRemaining() is in terms of the\noriginal, zero-offset bufferload, so lastBytesSent must be as\nwell.  Cheesy ASCII art:\n\n<------------ m, lastBytesSent ----------->\n+===============================================+\nbuffer:  |1111111111|22222222222222222|333333333333|     |\n+===============================================+\n#1:  <-- off -->|<-------- nRemaining --------->\n#2:  <----------- off ----------->|<-- nRem. -->','Line','src/java/org/apache/hadoop/io/compress/DecompressorStream.java',120,134,'org.apache.hadoop.io.compress.DecompressorStream','read()',NULL),(5648,'Even though \'y\' is dangling symlink to file tmp/x, fullyDelete(y)\nshould delete \'y\' properly.','Line','src/test/core/org/apache/hadoop/fs/TestFileUtil.java',146,147,'org.apache.hadoop.fs.TestFileUtil','setupDirs()',NULL),(5649,'Even though tmpDir is dangling symlink to tmp, fullyDelete(tmpDir) should\ndelete tmpDir properly.','Line','src/test/core/org/apache/hadoop/fs/TestFileUtil.java',154,155,'org.apache.hadoop.fs.TestFileUtil','setupDirs()',NULL),(5650,'perhaps a VIP is failing over','Line','src/java/org/apache/hadoop/ipc/RPC.java',191,191,'org.apache.hadoop.ipc.RPC','waitForProxy(Class, long, InetSocketAddress, Configuration, long)',NULL),(5651,'perhaps a VIP is failing over','Line','src/java/org/apache/hadoop/ipc/RPC.java',210,210,'org.apache.hadoop.ipc.RPC','waitForProxy(Class<?>, long, InetSocketAddress, Configuration, int, long)',NULL),(5652,'Check if zlib consumed all input buffer\nset keepUncompressedBuf properly\nzlib consumed all input buffer','Line','src/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java',365,367,'org.apache.hadoop.io.compress.zlib.ZlibCompressor','compress(byte[], int, int)',NULL),(5653,'Subject to race conditions but this is the best we can do','Line','src/java/org/apache/hadoop/io/SecureIOUtils.java',104,104,'org.apache.hadoop.io.SecureIOUtils','None','DESIGN'),(5654,'better safe than sorry (should never happen)','Line','src/java/org/apache/hadoop/security/ShellBasedUnixGroupsNetgroupMapping.java',85,85,'org.apache.hadoop.security.ShellBasedUnixGroupsNetgroupMapping','cacheGroupsAdd(List<String>)',NULL),(5655,'better safe than sorry (should never happen)','Line','src/java/org/apache/hadoop/security/JniBasedUnixGroupsNetgroupMapping.java',93,93,'org.apache.hadoop.security.JniBasedUnixGroupsNetgroupMapping','cacheGroupsAdd(List<String>)',NULL),(5656,'perhaps a VIP is failing over','Line','src/java/org/apache/hadoop/ipc/RPC.java',215,215,'org.apache.hadoop.ipc.RPC','waitForProxy(Class<?>, long, InetSocketAddress, Configuration, int, long)',NULL),(5657,'perhaps a VIP is failing over','Line','src/java/org/apache/hadoop/ipc/RPC.java',287,287,'org.apache.hadoop.ipc.RPC','waitForProtocolProxy(Class<T>, long, InetSocketAddress, Configuration, int, long)',NULL),(5658,'in ObjectWritable to efficiently transmit arrays of primitives','Line','src/java/org/apache/hadoop/ipc/Server.java',109,109,'org.apache.hadoop.ipc.Server','None',NULL),(5659,'For efficient implementation, there\'s no way around\nthe following massive code duplication.','Line','src/java/org/apache/hadoop/io/ArrayPrimitiveWritable.java',251,252,'org.apache.hadoop.io.ArrayPrimitiveWritable','writeBooleanArray(DataOutput)',NULL),(5660,'Read the int[] object as written by ObjectWritable, but\n\\\"going around\\\" ObjectWritable','Line','src/test/core/org/apache/hadoop/io/TestArrayPrimitiveWritable.java',105,106,'org.apache.hadoop.io.TestArrayPrimitiveWritable','testObjectLabeling()',NULL),(5661,'Read the APW object as written by ObjectWritable, but\n\\\"going around\\\" ObjectWritable','Line','src/test/core/org/apache/hadoop/io/TestArrayPrimitiveWritable.java',120,121,'org.apache.hadoop.io.TestArrayPrimitiveWritable','testObjectLabeling()',NULL),(5662,'Read the int[] object as written by ObjectWritable, but\n\\\"going around\\\" ObjectWritable','Line','src/test/core/org/apache/hadoop/io/TestArrayPrimitiveWritable.java',151,152,'org.apache.hadoop.io.TestArrayPrimitiveWritable','testOldFormat()',NULL),(5663,'TODO: this really should be iterative','Line','src/java/org/apache/hadoop/fs/shell/Command.java',247,247,'org.apache.hadoop.fs.shell.Command','processPaths(PathData, PathData...)','DESIGN'),(5664,'this is an unexpected condition, so dump the whole exception since\nit\'s probably a nasty internal error where the backtrace would be\nuseful','Line','src/java/org/apache/hadoop/fs/shell/Command.java',325,327,'org.apache.hadoop.fs.shell.Command','displayError(Exception)','DESIGN'),(5665,'TODO: next two lines are a temporary crutch until this entire\nblock is overhauled','Line','src/java/org/apache/hadoop/fs/FsShell.java',1950,1951,'org.apache.hadoop.fs.FsShell','init()','DESIGN'),(5666,'None','None','src/java/org/apache/hadoop/fs/shell/Command.java',-1,-1,'None','None',NULL),(5667,'None','None','src/java/org/apache/hadoop/fs/FsShell.java',-1,-1,'None','None',NULL),(5668,'TODO: this should be more posix-like: ex. \\\"No such file or directory\\\"','Line','src/java/org/apache/hadoop/fs/shell/Command.java',244,244,'org.apache.hadoop.fs.shell.Command','processNonexistentPathArgument(PathData)',NULL),(5669,'TODO: this really should be iterative','Line','src/java/org/apache/hadoop/fs/shell/Command.java',258,258,'org.apache.hadoop.fs.shell.Command','processPaths(PathData, PathData...)',NULL),(5670,'glob failed to match\nTODO: this should be more posix-like: ex. \\\"No such file or directory\\\"','Line','src/java/org/apache/hadoop/fs/shell/Command.java',308,309,'org.apache.hadoop.fs.shell.Command','expandGlob(String)',NULL),(5671,'this is an unexpected condition, so dump the whole exception since\nit\'s probably a nasty internal error where the backtrace would be\nuseful','Line','src/java/org/apache/hadoop/fs/shell/Command.java',337,339,'org.apache.hadoop.fs.shell.Command','displayError(Exception)',NULL),(5672,'TODO: next two lines are a temporary crutch until this entire\nblock is overhauled','Line','src/java/org/apache/hadoop/fs/FsShell.java',1955,1956,'org.apache.hadoop.fs.FsShell','init()','DESIGN'),(5673,'TODO: will change with factory','Line','src/java/org/apache/hadoop/fs/FsShell.java',1960,1960,'org.apache.hadoop.fs.FsShell','init()',NULL),(5674,'TODO: will change with factory','Line','src/java/org/apache/hadoop/fs/FsShell.java',1958,1958,'org.apache.hadoop.fs.FsShell','init()','NOT_DESIGN'),(5675,'TODO: This isn\'t the best place, but this class is being abused with\nsubclasses which of course override this method.  There really needs\nto be a better base class for all commands','Line','src/java/org/apache/hadoop/fs/FsShell.java',1857,1859,'org.apache.hadoop.fs.FsShell','init()',NULL),(5676,'Keep the structure similar to ChecksumFileSystem.copyToLocal().\nIdeal these two should just invoke FileUtil.copy() and not repeat\nrecursion here. Of course, copy() should support two more options :\ncopyCrc and useTmpFile (may be useTmpFile need not be an option).','Block','src/java/org/apache/hadoop/fs/FsShell.java',252,256,'org.apache.hadoop.fs.FsShell','init()',NULL),(5677,'Keep the structure similar to ChecksumFileSystem.copyToLocal().\nIdeal these two should just invoke FileUtil.copy() and not repeat\nrecursion here. Of course, copy() should support two more options :\ncopyCrc and useTmpFile (may be useTmpFile need not be an option).','Block','src/java/org/apache/hadoop/fs/FsShell.java',260,264,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5678,'cat behavior in Linux\n[~/1207]$ ls ?.txt\nx.txt  z.txt\n[~/1207]$ cat x.txt y.txt z.txt\nxxx\ncat: y.txt: No such file or directory\nzzz','Line','src/java/org/apache/hadoop/fs/FsShell.java',363,369,'org.apache.hadoop.fs.FsShell','init()',NULL),(5679,'cat behavior in Linux\n[~/1207]$ ls ?.txt\nx.txt  z.txt\n[~/1207]$ cat x.txt y.txt z.txt\nxxx\ncat: y.txt: No such file or directory\nzzz','Line','src/java/org/apache/hadoop/fs/FsShell.java',371,377,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5680,'TODO: handle this','Line','src/java/org/apache/hadoop/fs/FsShell.java',847,847,'org.apache.hadoop.fs.FsShell','init()',NULL),(5681,'TODO: handle this','Line','src/java/org/apache/hadoop/fs/FsShell.java',856,856,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5682,'TODO: This isn\'t the best place, but this class is being abused with\nsubclasses which of course override this method.  There really needs\nto be a better base class for all commands','Line','src/java/org/apache/hadoop/fs/FsShell.java',1867,1869,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5683,'implicitly recurse once for cmdline directories','Line','src/java/org/apache/hadoop/fs/shell/Ls.java',73,73,'org.apache.hadoop.fs.shell.Ls','registerCommands(CommandFactory)',NULL),(5684,'TODO: remove when the error is commonized...','Line','src/java/org/apache/hadoop/fs/shell/Ls.java',129,129,'org.apache.hadoop.fs.shell.Ls','registerCommands(CommandFactory)','DESIGN'),(5685,'TODO: -1 should be reserved for syntax error, 1 should be failure','Line','src/java/org/apache/hadoop/fs/shell/Command.java',149,149,'org.apache.hadoop.fs.shell.Command','run(String...)',NULL),(5686,'TODO: remove when the error is commonized...','Line','src/java/org/apache/hadoop/fs/shell/Count.java',91,91,'org.apache.hadoop.fs.shell.Count','getFnfText(Path)','DESIGN'),(5687,'TODO: will eventually auto-wrap the text, but this matches the expected\noutput for the hdfs tests...','Line','src/java/org/apache/hadoop/fs/FsShell.java',1586,1587,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5688,'None','None','src/java/org/apache/hadoop/io/SecureIOUtils.java',-1,-1,'None','None',NULL),(5689,'TODO: this should be more posix-like: ex. \\\"No such file or directory\\\"','Line','src/java/org/apache/hadoop/fs/shell/Command.java',255,255,'org.apache.hadoop.fs.shell.Command','processNonexistentPathArgument(PathData)',NULL),(5690,'TODO: this should be more posix-like: ex. \\\"No such file or directory\\\"','Line','src/java/org/apache/hadoop/fs/shell/Command.java',257,257,'org.apache.hadoop.fs.shell.Command','processNonexistentPath(PathData)',NULL),(5691,'glob failed to match\nTODO: this should be more posix-like: ex. \\\"No such file or directory\\\"','Line','src/java/org/apache/hadoop/fs/shell/Command.java',331,332,'org.apache.hadoop.fs.shell.Command','expandGlob(String)','NOT_DESIGN'),(5692,'this is very ugly, but needed to avoid breaking hdfs tests...\nif a path has no authority, then the FileStatus from globStatus\nwill add the \\\"-fs\\\" authority into the path, so we need to sub\nit back out to satisfy the tests','Line','src/java/org/apache/hadoop/fs/shell/PathData.java',177,180,'org.apache.hadoop.fs.shell.PathData','expandAsGlob(String, Configuration)',NULL),(5693,'The implementors of RawLocalFileSystem were trying to be very smart.\nThey implement FileStatus#getOwener lazily -- the object\nreturned is really a RawLocalFileSystem that expect the\nFileStatus#getPath to be unchanged so that it can get owner when needed.\nHence we need to interpose a new ViewFsFileStatus that works around.','Line','src/java/org/apache/hadoop/fs/viewfs/ViewFs.java',318,322,'org.apache.hadoop.fs.viewfs.ViewFs','readOnlyMountTable(String, String)',NULL),(5694,'TO DO: - more efficient to not split the path, but simply compare','Line','src/java/org/apache/hadoop/fs/viewfs/InodeTree.java',378,378,'org.apache.hadoop.fs.viewfs.InodeTree','resolve(String, boolean)',NULL),(5695,'The implementors of RawLocalFileSystem were trying to be very smart.\nThey implement FileStatus#getOwener lazily -- the object\nreturned is really a RawLocalFileSystem that expect the\nFileStatus#getPath to be unchanged so that it can get owner when needed.\nHence we need to interpose a new ViewFileSystemFileStatus that\nworks around.','Line','src/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java',321,326,'org.apache.hadoop.fs.viewfs.ViewFileSystem','readOnlyMountTable(String, String)',NULL),(5696,'this is the stupid semantics of FileSystem','Line','src/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java',632,632,'org.apache.hadoop.fs.viewfs.ViewFileSystem','mkdirs(Path, FsPermission)',NULL),(5697,'Test resolvePath(p)\nTODO In the tests below replace\nfcView.getDefaultFileSystem().resolvePath() fcView.resolvePath()','Block','src/test/core/org/apache/hadoop/fs/viewfs/ViewFsBaseTest.java',463,467,'org.apache.hadoop.fs.viewfs.ViewFsBaseTest','testResolvePathInternalPaths()',NULL),(5698,'hack to avoid most of the \\\"innocuous\\\" races.','Line','src/java/org/apache/hadoop/metrics2/impl/MetricsSourceAdapter.java',88,88,'org.apache.hadoop.metrics2.impl.MetricsSourceAdapter','start()',NULL),(5699,'placeholder for javadoc to prevent broken links, until\nHADOOP-6920','Line','src/java/org/apache/hadoop/metrics2/source/JvmMetrics.java',31,32,'org.apache.hadoop.metrics2.source.JvmMetrics','None','NOT_DESIGN'),(5700,'TODO: -1 should be reserved for syntax error, 1 should be failure','Line','src/java/org/apache/hadoop/fs/shell/Command.java',147,147,'org.apache.hadoop.fs.shell.Command','run(String...)','NOT_DESIGN'),(5701,'TODO: printing the path twice is silly for backwards compatibility','Line','src/java/org/apache/hadoop/fs/FsShellPermissions.java',58,58,'org.apache.hadoop.fs.FsShellPermissions','registerCommands(CommandFactory)','DESIGN'),(5702,'TODO: this really should be a -nl option','Line','src/java/org/apache/hadoop/fs/shell/Copy.java',55,55,'org.apache.hadoop.fs.shell.Copy','processOptions(LinkedList<String>)',NULL),(5703,'cat behavior in Linux\n[~/1207]$ ls ?.txt\nx.txt  z.txt\n[~/1207]$ cat x.txt y.txt z.txt\nxxx\ncat: y.txt: No such file or directory\nzzz','Line','src/java/org/apache/hadoop/fs/FsShell.java',327,333,'org.apache.hadoop.fs.FsShell','getFS()','NOT_DESIGN'),(5704,'TODO: this is a pretty inconsistent way to output the path...!!\nbut, it\'s backwards compatible','Line','src/java/org/apache/hadoop/fs/shell/Display.java',56,57,'org.apache.hadoop.fs.shell.Display','registerCommands(CommandFactory)','DESIGN'),(5705,'None','None','src/java/org/apache/hadoop/fs/shell/Ls.java',-1,-1,'None','None',NULL),(5706,'TODO: this should be more posix-like: ex. \\\"No such file or directory\\\"','Line','src/java/org/apache/hadoop/fs/shell/Command.java',264,264,'org.apache.hadoop.fs.shell.Command','processNonexistentPath(PathData)','NOT_DESIGN'),(5707,'None','None','src/java/org/apache/hadoop/fs/shell/Count.java',-1,-1,'None','None',NULL),(5708,'None','None','src/java/org/apache/hadoop/fs/FsShellPermissions.java',-1,-1,'None','None',NULL),(5709,'None','None','src/java/org/apache/hadoop/fs/shell/Display.java',-1,-1,'None','None',NULL),(5710,'NOTE: this really should be a Path, but a Path is buggy and won\'t\nreturn the exact string used to construct the path, and it mangles\nuris with no authority','Line','src/java/org/apache/hadoop/fs/shell/PathExceptions.java',40,42,'org.apache.hadoop.fs.shell.PathExceptions','None',NULL),(5711,'TODO: it\'s backwards compat, but why is this throwing an exception?\nit\'s not like the shell test cmd','Line','src/java/org/apache/hadoop/fs/FsShell.java',472,473,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5712,'TODO: this is a quick workaround to accelerate the integration of\nredesigned commands.  this will be removed this once all commands are\nconverted.  this change will avoid having to change the hdfs tests\nevery time a command is converted to use path-based exceptions','Line','src/java/org/apache/hadoop/fs/FsShell.java',1279,1282,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5713,'race protection','Line','src/java/org/apache/hadoop/metrics2/source/JvmMetrics.java',143,143,'org.apache.hadoop.metrics2.source.JvmMetrics','getThreadUsage(MetricsRecordBuilder)',NULL),(5714,'TODO: handle this','Line','src/java/org/apache/hadoop/fs/FsShell.java',447,447,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5715,'TODO: handle this','Line','src/java/org/apache/hadoop/fs/shell/Touchz.java',62,62,'org.apache.hadoop.fs.shell.Touch','processPath(PathData)',NULL),(5716,'TODO: if the user wants the trash to be used but there is any\nproblem (ie. creating the trash dir, moving the item to be deleted,\netc), then the path will just be deleted because moveToTrash returns\nfalse and it falls thru to fs.delete.  this doesn\'t seem right','Line','src/java/org/apache/hadoop/fs/shell/Delete.java',71,74,'org.apache.hadoop.fs.shell.Delete','registerCommands(CommandFactory)',NULL),(5717,'TODO: should probably allow path arguments for the filesystems','Line','src/java/org/apache/hadoop/fs/shell/Delete.java',117,117,'org.apache.hadoop.fs.shell.Delete','processOptions(LinkedList<String>)',NULL),(5718,'TODO: it\'s backwards compat, but why is this throwing an exception?\nit\'s not like the shell test cmd','Line','src/java/org/apache/hadoop/fs/FsShell.java',445,446,'org.apache.hadoop.fs.FsShell','getFS()','NOT_DESIGN'),(5719,'Keep the structure similar to ChecksumFileSystem.copyToLocal().\nIdeal these two should just invoke FileUtil.copy() and not repeat\nrecursion here. Of course, copy() should support two more options :\ncopyCrc and useTmpFile (may be useTmpFile need not be an option).','Block','src/java/org/apache/hadoop/fs/FsShell.java',250,254,'org.apache.hadoop.fs.FsShell','getFS()','DESIGN'),(5720,'TODO: commands should implement a -f to enable this','Line','src/java/org/apache/hadoop/fs/shell/CommandWithDestination.java',41,41,'org.apache.hadoop.fs.shell.CommandWithDestination','setOverwrite(boolean)',NULL),(5721,'TODO: this really should be a -nl option','Line','src/java/org/apache/hadoop/fs/shell/CopyCommands.java',70,70,'org.apache.hadoop.fs.shell.CopyCommands','registerCommands(CommandFactory)',NULL),(5722,'too bad we can\'t tell exactly why it failed...','Line','src/java/org/apache/hadoop/fs/shell/CopyCommands.java',181,181,'org.apache.hadoop.fs.shell.CopyCommands','registerCommands(CommandFactory)',NULL),(5723,'NOTE: this logic should be better, mimics previous implementation','Line','src/java/org/apache/hadoop/fs/shell/CopyCommands.java',235,235,'org.apache.hadoop.fs.shell.CopyCommands','registerCommands(CommandFactory)',NULL),(5724,'Doing a second call with faults disabled should return fine --\nie the internal state of the client or server should not be broken\nby the failed call','Line','src/test/core/org/apache/hadoop/ipc/TestIPC.java',360,362,'org.apache.hadoop.ipc.TestIPC','doErrorTest(Class<? extends LongWritable>, Class<? extends LongWritable>, Class<? extends LongWritable>, Class<? extends LongWritable>)',NULL),(5725,'Ignored the mbean itself was not found, which should never happen because we\njust accessed it (perhaps something unregistered in-between) but if this\nhappens just don\'t output the attribute.','Line','src/java/org/apache/hadoop/jmx/JMXJsonServlet.java',273,275,'org.apache.hadoop.jmx.JMXJsonServlet','writeAttribute(JsonGenerator, ObjectName, MBeanAttributeInfo)',NULL),(5726,'TODO: This isn\'t the best place, but this class is being abused with\nsubclasses which of course override this method.  There really needs\nto be a better base class for all commands','Line','src/java/org/apache/hadoop/fs/FsShell.java',215,217,'org.apache.hadoop.fs.FsShell','getFS()','DESIGN'),(5727,'initialize FsShell','Line','src/java/org/apache/hadoop/fs/FsShell.java',240,240,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5728,'TODO: this is a quick workaround to accelerate the integration of\nredesigned commands.  this will be removed this once all commands are\nconverted.  this change will avoid having to change the hdfs tests\nevery time a command is converted to use path-based exceptions','Line','src/java/org/apache/hadoop/fs/FsShell.java',270,273,'org.apache.hadoop.fs.FsShell','getFS()','DESIGN'),(5729,'TODO: DFSAdmin subclasses FsShell so need to protect the command\nregistration.  This class should morph into a base class for\ncommands, and then this method can be abstract','Line','src/java/org/apache/hadoop/fs/FsShell.java',93,95,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5730,'instance.run catches IOE, so something is REALLY wrong if here','Line','src/java/org/apache/hadoop/fs/FsShell.java',261,261,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5731,'TODO: this should be abstract in a base class','Line','src/java/org/apache/hadoop/fs/FsShell.java',303,303,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5732,'Read characters into a portion of an array, reading from the underlying\nstream at most once if necessary.','Block','src/java/org/apache/hadoop/fs/FSInputChecker.java',215,218,'org.apache.hadoop.fs.FSInputChecker','read1(byte[], int, int)',NULL),(5733,'Read characters into a portion of an array, reading from the underlying\nstream at most once if necessary.','Block','common/src/java/org/apache/hadoop/fs/FSInputChecker.java',215,218,'org.apache.hadoop.fs.FSInputChecker','read1(byte[], int, int)',NULL),(5734,'TODO: handle this','Line','common/src/java/org/apache/hadoop/fs/shell/Touchz.java',62,62,'org.apache.hadoop.fs.shell.Touch','processPath(PathData)',NULL),(5735,'TBD: Code is still using hardcoded values (e.g. \\\"fs.automatic.close\\\")\ninstead of constant (e.g. FS_AUTOMATIC_CLOSE_KEY)\n','Line','common/src/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java',73,75,'org.apache.hadoop.fs.CommonConfigurationKeysPublic','None',NULL),(5736,'TODO: sample the generated key/value records, and put the numbers below','Line','common/src/test/core/org/apache/hadoop/io/file/tfile/TestTFileLzoCodecsByteArrays.java',36,36,'org.apache.hadoop.io.file.tfile.TestTFileLzoCodecsByteArrays','setUp()',NULL),(5737,'in ObjectWritable to efficiently transmit arrays of primitives','Line','src/java/org/apache/hadoop/ipc/Server.java',110,110,'org.apache.hadoop.ipc.Server','None',NULL),(5738,'in ObjectWritable to efficiently transmit arrays of primitives','Line','common/src/java/org/apache/hadoop/ipc/Server.java',110,110,'org.apache.hadoop.ipc.Server','None',NULL),(5739,'If they try to bind to a different host\'s address, give a better\nerror message.','Line','src/java/org/apache/hadoop/ipc/Server.java',236,237,'org.apache.hadoop.ipc.Server','getProtocolClass(String, Configuration)',NULL),(5740,'If they try to bind to a different host\'s address, give a better\nerror message.','Line','common/src/java/org/apache/hadoop/ipc/Server.java',236,237,'org.apache.hadoop.ipc.Server','getProtocolClass(String, Configuration)',NULL),(5741,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','src/java/org/apache/hadoop/io/compress/bzip2/BZip2Constants.java',19,23,'None','None',NULL),(5742,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','common/src/java/org/apache/hadoop/io/compress/bzip2/BZip2Constants.java',19,23,'None','None',NULL),(5743,'Authorization is done. Just call super.','Line','common/src/java/org/apache/hadoop/http/AdminAuthorizedServlet.java',42,42,'org.apache.hadoop.http.AdminAuthorizedServlet','doGet(HttpServletRequest, HttpServletResponse)',NULL),(5744,'TODO: DFSAdmin subclasses FsShell so need to protect the command\nregistration.  This class should morph into a base class for\ncommands, and then this method can be abstract','Line','common/src/java/org/apache/hadoop/fs/FsShell.java',93,95,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5745,'TODO: will eventually auto-wrap the text, but this matches the expected\noutput for the hdfs tests...','Line','src/java/org/apache/hadoop/fs/FsShell.java',220,221,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5746,'TODO: will eventually auto-wrap the text, but this matches the expected\noutput for the hdfs tests...','Line','common/src/java/org/apache/hadoop/fs/FsShell.java',220,221,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5747,'instance.run catches IOE, so something is REALLY wrong if here','Line','common/src/java/org/apache/hadoop/fs/FsShell.java',261,261,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5748,'TODO: this should be abstract in a base class','Line','common/src/java/org/apache/hadoop/fs/FsShell.java',303,303,'org.apache.hadoop.fs.FsShell','getFS()',NULL),(5749,'Ideally we should wait after transferTo returns 0. But because of\na bug in JRE on Linux (http://bugs.sun.com/view_bug.do?bug_id=5103988),\nwhich throws an exception instead of returning 0, we wait for the\nchannel to be writable before writing to it. If you ever see\nIOException with message \\\"Resource temporarily unavailable\\\"\nthrown here, please let us know.\n\nOnce we move to JAVA SE 7, wait should be moved to correct place.','Block','src/java/org/apache/hadoop/net/SocketOutputStream.java',193,202,'org.apache.hadoop.net.SocketOutputStream','transferToFully(FileChannel, long, int)',NULL),(5750,'Ideally we should wait after transferTo returns 0. But because of\na bug in JRE on Linux (http://bugs.sun.com/view_bug.do?bug_id=5103988),\nwhich throws an exception instead of returning 0, we wait for the\nchannel to be writable before writing to it. If you ever see\nIOException with message \\\"Resource temporarily unavailable\\\"\nthrown here, please let us know.\n\nOnce we move to JAVA SE 7, wait should be moved to correct place.','Block','common/src/java/org/apache/hadoop/net/SocketOutputStream.java',193,202,'org.apache.hadoop.net.SocketOutputStream','transferToFully(FileChannel, long, int)',NULL),(5751,'TO DO: - more efficient to not split the path, but simply compare','Line','src/java/org/apache/hadoop/fs/viewfs/InodeTree.java',384,384,'org.apache.hadoop.fs.viewfs.InodeTree','resolve(String, boolean)',NULL),(5752,'TO DO: - more efficient to not split the path, but simply compare','Line','common/src/java/org/apache/hadoop/fs/viewfs/InodeTree.java',384,384,'org.apache.hadoop.fs.viewfs.InodeTree','resolve(String, boolean)',NULL),(5753,'the directory better be empty','Line','src/test/core/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java',86,86,'org.apache.hadoop.fs.kfs.KFSEmulationImpl','rmdir(String)',NULL),(5754,'the directory better be empty','Line','common/src/test/core/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java',86,86,'org.apache.hadoop.fs.kfs.KFSEmulationImpl','rmdir(String)',NULL),(5755,'HACK - Use this as a global lock in the JNI layer','Line','src/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java',44,44,'org.apache.hadoop.io.compress.zlib.ZlibCompressor','None',NULL),(5756,'HACK - Use this as a global lock in the JNI layer','Line','common/src/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java',44,44,'org.apache.hadoop.io.compress.zlib.ZlibCompressor','None',NULL),(5757,'Check if zlib consumed all input buffer\nset keepUncompressedBuf properly\nzlib consumed all input buffer','Line','common/src/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java',365,367,'org.apache.hadoop.io.compress.zlib.ZlibCompressor','compress(byte[], int, int)',NULL),(5758,'FIXME? Inflater docs say:  \'it is also necessary to provide an extra\n\\\"dummy\\\" byte as input. This is required by the ZLIB native\nlibrary in order to support certain optimizations.\'  However,\nthis does not appear to be true, and in any case, it\'s not\nentirely clear where the byte should go or what its value\nshould be.  Perhaps it suffices to have some deflated bytes\nin the first buffer load?  (But how else would one do it?)','Line','src/java/org/apache/hadoop/io/compress/zlib/BuiltInGzipDecompressor.java',116,122,'org.apache.hadoop.io.compress.zlib.BuiltInGzipDecompressor','needsInput()',NULL),(5759,'FIXME? Inflater docs say:  \'it is also necessary to provide an extra\n\\\"dummy\\\" byte as input. This is required by the ZLIB native\nlibrary in order to support certain optimizations.\'  However,\nthis does not appear to be true, and in any case, it\'s not\nentirely clear where the byte should go or what its value\nshould be.  Perhaps it suffices to have some deflated bytes\nin the first buffer load?  (But how else would one do it?)','Line','common/src/java/org/apache/hadoop/io/compress/zlib/BuiltInGzipDecompressor.java',116,122,'org.apache.hadoop.io.compress.zlib.BuiltInGzipDecompressor','needsInput()',NULL),(5760,'Benchmark for StringUtils split','Line','src/test/core/org/apache/hadoop/util/TestStringUtils.java',219,219,'org.apache.hadoop.util.TestStringUtils','main(String[])',NULL),(5761,'Benchmark for StringUtils split','Line','common/src/test/core/org/apache/hadoop/util/TestStringUtils.java',219,219,'org.apache.hadoop.util.TestStringUtils','main(String[])',NULL),(5762,'move over the separator for next search','Line','src/java/org/apache/hadoop/util/StringUtils.java',379,379,'org.apache.hadoop.util.StringUtils','split(String, char, char)',NULL),(5763,'move over the separator for next search','Line','common/src/java/org/apache/hadoop/util/StringUtils.java',379,379,'org.apache.hadoop.util.StringUtils','split(String, char, char)',NULL),(5764,'Even though \'y\' is dangling symlink to file tmp/x, fullyDelete(y)\nshould delete \'y\' properly.','Line','src/test/core/org/apache/hadoop/fs/TestFileUtil.java',238,239,'org.apache.hadoop.fs.TestFileUtil','setupDirs()',NULL),(5765,'Even though \'y\' is dangling symlink to file tmp/x, fullyDelete(y)\nshould delete \'y\' properly.','Line','common/src/test/core/org/apache/hadoop/fs/TestFileUtil.java',238,239,'org.apache.hadoop.fs.TestFileUtil','setupDirs()',NULL),(5766,'Even though tmpDir is dangling symlink to tmp, fullyDelete(tmpDir) should\ndelete tmpDir properly.','Line','src/test/core/org/apache/hadoop/fs/TestFileUtil.java',246,247,'org.apache.hadoop.fs.TestFileUtil','setupDirs()',NULL),(5767,'Even though tmpDir is dangling symlink to tmp, fullyDelete(tmpDir) should\ndelete tmpDir properly.','Line','common/src/test/core/org/apache/hadoop/fs/TestFileUtil.java',246,247,'org.apache.hadoop.fs.TestFileUtil','setupDirs()',NULL),(5768,'give up','Line','src/java/org/apache/hadoop/util/QuickSort.java',82,82,'org.apache.hadoop.util.QuickSort','sortInternal(IndexedSortable, int, int, Progressable, int)',NULL),(5769,'give up','Line','common/src/java/org/apache/hadoop/util/QuickSort.java',82,82,'org.apache.hadoop.util.QuickSort','sortInternal(IndexedSortable, int, int, Progressable, int)',NULL),(5770,'hack to avoid most of the \\\"innocuous\\\" races.','Line','common/src/java/org/apache/hadoop/metrics2/impl/MetricsSourceAdapter.java',88,88,'org.apache.hadoop.metrics2.impl.MetricsSourceAdapter','start()',NULL),(5771,'Default impl  assumes that permissions do not matter and\nnor does the bytesPerChecksum  hence\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',769,772,'org.apache.hadoop.fs.FileSystem','addFileSystemForTesting(URI, Configuration, FileSystem)',NULL),(5772,'Default impl  assumes that permissions do not matter and\nnor does the bytesPerChecksum  hence\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','common/src/java/org/apache/hadoop/fs/FileSystem.java',769,772,'org.apache.hadoop.fs.FileSystem','addFileSystemForTesting(URI, Configuration, FileSystem)',NULL),(5773,'Default impl is to assume that permissions do not matter and hence\ncalling the regular mkdirs is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/FileSystem.java',793,795,'org.apache.hadoop.fs.FileSystem','addFileSystemForTesting(URI, Configuration, FileSystem)',NULL),(5774,'Default impl is to assume that permissions do not matter and hence\ncalling the regular mkdirs is good enough.\nFSs that implement permissions should override this.','Line','common/src/java/org/apache/hadoop/fs/FileSystem.java',793,795,'org.apache.hadoop.fs.FileSystem','addFileSystemForTesting(URI, Configuration, FileSystem)',NULL),(5775,'an artificial way to make a key unique','Line','src/java/org/apache/hadoop/fs/FileSystem.java',2052,2052,'org.apache.hadoop.fs.FileSystem','addFileSystemForTesting(URI, Configuration, FileSystem)',NULL),(5776,'an artificial way to make a key unique','Line','common/src/java/org/apache/hadoop/fs/FileSystem.java',2052,2052,'org.apache.hadoop.fs.FileSystem','addFileSystemForTesting(URI, Configuration, FileSystem)',NULL),(5777,'NOTE:  this is the one place we do NOT want to save the number\nof bytes sent (nRemaining here) into lastBytesSent:  since we\nare resending what we\'ve already sent before, offset is nonzero\nin general (only way it could be zero is if it already equals\nnRemaining), which would then screw up the offset calculation\n_next_ time around.  IOW, getRemaining() is in terms of the\noriginal, zero-offset bufferload, so lastBytesSent must be as\nwell.  Cheesy ASCII art:\n\n<------------ m, lastBytesSent ----------->\n+===============================================+\nbuffer:  |1111111111|22222222222222222|333333333333|     |\n+===============================================+\n#1:  <-- off -->|<-------- nRemaining --------->\n#2:  <----------- off ----------->|<-- nRem. -->','Line','common/src/java/org/apache/hadoop/io/compress/DecompressorStream.java',120,134,'org.apache.hadoop.io.compress.DecompressorStream','read()',NULL),(5778,'Read the int[] object as written by ObjectWritable, but\n\\\"going around\\\" ObjectWritable','Line','common/src/test/core/org/apache/hadoop/io/TestArrayPrimitiveWritable.java',105,106,'org.apache.hadoop.io.TestArrayPrimitiveWritable','testObjectLabeling()',NULL),(5779,'Read the APW object as written by ObjectWritable, but\n\\\"going around\\\" ObjectWritable','Line','common/src/test/core/org/apache/hadoop/io/TestArrayPrimitiveWritable.java',120,121,'org.apache.hadoop.io.TestArrayPrimitiveWritable','testObjectLabeling()',NULL),(5780,'Read the int[] object as written by ObjectWritable, but\n\\\"going around\\\" ObjectWritable','Line','common/src/test/core/org/apache/hadoop/io/TestArrayPrimitiveWritable.java',151,152,'org.apache.hadoop.io.TestArrayPrimitiveWritable','testOldFormat()',NULL),(5781,'Doing a second call with faults disabled should return fine --\nie the internal state of the client or server should not be broken\nby the failed call','Line','src/test/core/org/apache/hadoop/ipc/TestIPC.java',368,370,'org.apache.hadoop.ipc.TestIPC','call(Class<?>, Writable, long)',NULL),(5782,'Doing a second call with faults disabled should return fine --\nie the internal state of the client or server should not be broken\nby the failed call','Line','common/src/test/core/org/apache/hadoop/ipc/TestIPC.java',368,370,'org.apache.hadoop.ipc.TestIPC','call(Class<?>, Writable, long)',NULL),(5783,'TODO: if the user wants the trash to be used but there is any\nproblem (ie. creating the trash dir, moving the item to be deleted,\netc), then the path will just be deleted because moveToTrash returns\nfalse and it falls thru to fs.delete.  this doesn\'t seem right','Line','src/java/org/apache/hadoop/fs/shell/Delete.java',72,75,'org.apache.hadoop.fs.shell.Delete','registerCommands(CommandFactory)',NULL),(5784,'TODO: if the user wants the trash to be used but there is any\nproblem (ie. creating the trash dir, moving the item to be deleted,\netc), then the path will just be deleted because moveToTrash returns\nfalse and it falls thru to fs.delete.  this doesn\'t seem right','Line','common/src/java/org/apache/hadoop/fs/shell/Delete.java',72,75,'org.apache.hadoop.fs.shell.Delete','registerCommands(CommandFactory)',NULL),(5785,'TODO: should probably allow path arguments for the filesystems','Line','src/java/org/apache/hadoop/fs/shell/Delete.java',115,115,'org.apache.hadoop.fs.shell.Delete','processOptions(LinkedList<String>)',NULL),(5786,'TODO: should probably allow path arguments for the filesystems','Line','common/src/java/org/apache/hadoop/fs/shell/Delete.java',115,115,'org.apache.hadoop.fs.shell.Delete','processOptions(LinkedList<String>)',NULL),(5787,'Test resolvePath(p)\nTODO In the tests below replace\nfcView.getDefaultFileSystem().resolvePath() fcView.resolvePath()','Block','common/src/test/core/org/apache/hadoop/fs/viewfs/ViewFsBaseTest.java',463,467,'org.apache.hadoop.fs.viewfs.ViewFsBaseTest','testResolvePathInternalPaths()',NULL),(5788,'XXX Twenty internal version does not support --script option.','Line','common/src/test/system/java/org/apache/hadoop/test/system/process/HadoopDaemonRemoteCluster.java',357,357,'org.apache.hadoop.test.system.process.HadoopDaemonRemoteCluster','getCommand(String, String)',NULL),(5789,'better safe than sorry (should never happen)','Line','common/src/java/org/apache/hadoop/security/ShellBasedUnixGroupsNetgroupMapping.java',85,85,'org.apache.hadoop.security.ShellBasedUnixGroupsNetgroupMapping','cacheGroupsAdd(List<String>)',NULL),(5790,'move the cursor to the beginning of the tail, containing: offset to the\nmeta block index, version and magic','Line','common/src/java/org/apache/hadoop/io/file/tfile/BCFile.java',619,620,'org.apache.hadoop.io.file.tfile.BCFile','register(long, long, long)',NULL),(5791,'Check that every permission has its sticky bit represented correctly','Line','src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java',79,79,'org.apache.hadoop.fs.permission.TestFsPermission','testStickyBitToString()',NULL),(5792,'Check that every permission has its sticky bit represented correctly','Line','common/src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java',79,79,'org.apache.hadoop.fs.permission.TestFsPermission','testStickyBitToString()',NULL),(5793,'Using default block size since there is no way in FTP client to know of\nblock sizes on server. The assumption could be less than ideal.','Line','src/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java',437,438,'org.apache.hadoop.fs.ftp.FTPFileSystem','getFileStatus(FTPFile, Path)',NULL),(5794,'Using default block size since there is no way in FTP client to know of\nblock sizes on server. The assumption could be less than ideal.','Line','common/src/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java',437,438,'org.apache.hadoop.fs.ftp.FTPFileSystem','getFileStatus(FTPFile, Path)',NULL),(5795,'HACK - Use this as a global lock in the JNI layer','Line','src/java/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.java',37,37,'org.apache.hadoop.io.compress.zlib.ZlibDecompressor','None',NULL),(5796,'HACK - Use this as a global lock in the JNI layer','Line','common/src/java/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.java',37,37,'org.apache.hadoop.io.compress.zlib.ZlibDecompressor','None',NULL),(5797,'Default impl assumes that permissions do not matter\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','src/java/org/apache/hadoop/fs/DelegateToFileSystem.java',67,69,'org.apache.hadoop.fs.DelegateToFileSystem','createInternal(Path, EnumSet<CreateFlag>, FsPermission, int, short, long, Progressable, int, boolean)',NULL),(5798,'Default impl assumes that permissions do not matter\ncalling the regular create is good enough.\nFSs that implement permissions should override this.','Line','common/src/java/org/apache/hadoop/fs/DelegateToFileSystem.java',67,69,'org.apache.hadoop.fs.DelegateToFileSystem','createInternal(Path, EnumSet<CreateFlag>, FsPermission, int, short, long, Progressable, int, boolean)',NULL),(5799,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','src/java/org/apache/hadoop/io/compress/bzip2/CBZip2OutputStream.java',19,23,'None','None',NULL),(5800,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','common/src/java/org/apache/hadoop/io/compress/bzip2/CBZip2OutputStream.java',19,23,'None','None',NULL),(5801,'Now another magic 48-bit number, 0x177245385090, to indicate the end\nof the last block. (sqrt(pi), if you want to know. I did want to use\ne, but it contains too much repetition -- 27 18 28 18 28 46 -- for me\nto feel statistically comfortable. Call me paranoid.)','Block','src/java/org/apache/hadoop/io/compress/bzip2/CBZip2OutputStream.java',821,826,'org.apache.hadoop.io.compress.bzip2.CBZip2OutputStream','hbMakeCodeLengths(char[], int[], int, int)',NULL),(5802,'Now another magic 48-bit number, 0x177245385090, to indicate the end\nof the last block. (sqrt(pi), if you want to know. I did want to use\ne, but it contains too much repetition -- 27 18 28 18 28 46 -- for me\nto feel statistically comfortable. Call me paranoid.)','Block','common/src/java/org/apache/hadoop/io/compress/bzip2/CBZip2OutputStream.java',821,826,'org.apache.hadoop.io.compress.bzip2.CBZip2OutputStream','hbMakeCodeLengths(char[], int[], int, int)',NULL),(5803,'Iterate up to N_ITERS times to improve the tables.','Block','src/java/org/apache/hadoop/io/compress/bzip2/CBZip2OutputStream.java',955,957,'org.apache.hadoop.io.compress.bzip2.CBZip2OutputStream','hbMakeCodeLengths(char[], int[], int, int)',NULL),(5804,'Iterate up to N_ITERS times to improve the tables.','Block','common/src/java/org/apache/hadoop/io/compress/bzip2/CBZip2OutputStream.java',955,957,'org.apache.hadoop.io.compress.bzip2.CBZip2OutputStream','hbMakeCodeLengths(char[], int[], int, int)',NULL),(5805,'walk through the list, searching. Not the most efficient way, but this\nin intended to be used rarely, so we keep it simple.\nAs an optimization, we can keep a hashmap of record name to its RTI, for later.','Line','src/java/org/apache/hadoop/record/meta/StructTypeID.java',64,66,'org.apache.hadoop.record.meta.StructTypeID','findStruct(String)',NULL),(5806,'walk through the list, searching. Not the most efficient way, but this\nin intended to be used rarely, so we keep it simple.\nAs an optimization, we can keep a hashmap of record name to its RTI, for later.','Line','common/src/java/org/apache/hadoop/record/meta/StructTypeID.java',64,66,'org.apache.hadoop.record.meta.StructTypeID','findStruct(String)',NULL),(5807,'Following is brittle. Is there a better way?','Line','src/java/org/apache/hadoop/fs/s3native/Jets3tNativeFileSystemStore.java',111,111,'org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore','retrieveMetadata(String)',NULL),(5808,'Following is brittle. Is there a better way?','Line','common/src/java/org/apache/hadoop/fs/s3native/Jets3tNativeFileSystemStore.java',111,111,'org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore','retrieveMetadata(String)',NULL),(5809,'Ugly utility, maybe someone else can do this better','Block','src/java/org/apache/hadoop/io/WritableUtils.java',80,80,'org.apache.hadoop.io.WritableUtils','readCompressedString(DataInput)',NULL),(5810,'Ugly utility, maybe someone else can do this better','Block','common/src/java/org/apache/hadoop/io/WritableUtils.java',80,80,'org.apache.hadoop.io.WritableUtils','readCompressedString(DataInput)',NULL),(5811,'Ignored the mbean itself was not found, which should never happen because we\njust accessed it (perhaps something unregistered in-between) but if this\nhappens just don\'t output the attribute.','Line','common/src/java/org/apache/hadoop/jmx/JMXJsonServlet.java',273,275,'org.apache.hadoop.jmx.JMXJsonServlet','writeAttribute(JsonGenerator, ObjectName, MBeanAttributeInfo)',NULL),(5812,'this is very ugly, but needed to avoid breaking hdfs tests...\nif a path has no authority, then the FileStatus from globStatus\nwill add the \\\"-fs\\\" authority into the path, so we need to sub\nit back out to satisfy the tests','Line','src/java/org/apache/hadoop/fs/shell/PathData.java',211,214,'org.apache.hadoop.fs.shell.PathData','expandAsGlob(String, Configuration)',NULL),(5813,'this is very ugly, but needed to avoid breaking hdfs tests...\nif a path has no authority, then the FileStatus from globStatus\nwill add the \\\"-fs\\\" authority into the path, so we need to sub\nit back out to satisfy the tests','Line','common/src/java/org/apache/hadoop/fs/shell/PathData.java',211,214,'org.apache.hadoop.fs.shell.PathData','expandAsGlob(String, Configuration)',NULL),(5814,'flag to ensure value is only examined once.','Line','src/java/org/apache/hadoop/io/file/tfile/TFile.java',1231,1231,'org.apache.hadoop.io.file.tfile.TFile','getChunkBufferSize(Configuration)',NULL),(5815,'flag to ensure value is only examined once.','Line','common/src/java/org/apache/hadoop/io/file/tfile/TFile.java',1231,1231,'org.apache.hadoop.io.file.tfile.TFile','getChunkBufferSize(Configuration)',NULL),(5816,'TODO: remember the longest key in a TFile, and use it to replace\nMAX_KEY_SIZE.','Line','src/java/org/apache/hadoop/io/file/tfile/TFile.java',1287,1288,'org.apache.hadoop.io.file.tfile.TFile','getChunkBufferSize(Configuration)',NULL),(5817,'TODO: remember the longest key in a TFile, and use it to replace\nMAX_KEY_SIZE.','Line','common/src/java/org/apache/hadoop/io/file/tfile/TFile.java',1287,1288,'org.apache.hadoop.io.file.tfile.TFile','getChunkBufferSize(Configuration)',NULL),(5818,'implicitly recurse once for cmdline directories','Line','src/java/org/apache/hadoop/fs/shell/Ls.java',74,74,'org.apache.hadoop.fs.shell.Ls','registerCommands(CommandFactory)',NULL),(5819,'implicitly recurse once for cmdline directories','Line','common/src/java/org/apache/hadoop/fs/shell/Ls.java',74,74,'org.apache.hadoop.fs.shell.Ls','registerCommands(CommandFactory)',NULL),(5820,'NOTE: this really should be a Path, but a Path is buggy and won\'t\nreturn the exact string used to construct the path, and it mangles\nuris with no authority','Line','common/src/java/org/apache/hadoop/fs/shell/PathExceptions.java',40,42,'org.apache.hadoop.fs.shell.PathExceptions','None',NULL),(5821,'perhaps a VIP is failing over','Line','common/src/java/org/apache/hadoop/ipc/RPC.java',287,287,'org.apache.hadoop.ipc.RPC','waitForProtocolProxy(Class<T>, long, InetSocketAddress, Configuration, int, long)',NULL),(5822,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','src/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java',19,23,'None','None',NULL),(5823,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','common/src/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java',19,23,'None','None',NULL),(5824,'verify that after expunging the Trash, it really goes away','Line','src/test/core/org/apache/hadoop/fs/TestTrash.java',261,261,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5825,'verify that after expunging the Trash, it really goes away','Line','common/src/test/core/org/apache/hadoop/fs/TestTrash.java',261,261,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5826,'Verify skip trash option really works','Line','src/test/core/org/apache/hadoop/fs/TestTrash.java',313,313,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5827,'Verify skip trash option really works','Line','common/src/test/core/org/apache/hadoop/fs/TestTrash.java',313,313,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5828,'Verify that skip trash option really skips the trash for rmr','Line','src/test/core/org/apache/hadoop/fs/TestTrash.java',349,349,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5829,'Verify that skip trash option really skips the trash for rmr','Line','common/src/test/core/org/apache/hadoop/fs/TestTrash.java',349,349,'org.apache.hadoop.fs.TestTrash','writeFile(FileSystem, Path)',NULL),(5830,'better safe than sorry (should never happen)','Line','common/src/java/org/apache/hadoop/security/JniBasedUnixGroupsNetgroupMapping.java',93,93,'org.apache.hadoop.security.JniBasedUnixGroupsNetgroupMapping','cacheGroupsAdd(List<String>)',NULL),(5831,'move checksum file too','Line','src/java/org/apache/hadoop/fs/LocalFileSystem.java',109,109,'org.apache.hadoop.fs.LocalFileSystem','reportChecksumFailure(Path, FSDataInputStream, long, FSDataInputStream, long)',NULL),(5832,'move checksum file too','Line','common/src/java/org/apache/hadoop/fs/LocalFileSystem.java',109,109,'org.apache.hadoop.fs.LocalFileSystem','reportChecksumFailure(Path, FSDataInputStream, long, FSDataInputStream, long)',NULL),(5833,'\nSend it to S3\n\nTODO: Use passed in Progressable to report progress.','Line','src/java/org/apache/hadoop/fs/s3/S3OutputStream.java',177,180,'org.apache.hadoop.fs.s3.S3OutputStream','endBlock()',NULL),(5834,'\nSend it to S3\n\nTODO: Use passed in Progressable to report progress.','Line','common/src/java/org/apache/hadoop/fs/s3/S3OutputStream.java',177,180,'org.apache.hadoop.fs.s3.S3OutputStream','endBlock()',NULL),(5835,'Some filesystem like HDFS ignore the \\\"x\\\" bit if the permission.\nOthers like localFs does not.\nOverride the method below if the file system being tested masks our\ncertain bits for file masks.','Block','src/test/core/org/apache/hadoop/fs/FileContextPermissionBase.java',203,208,'org.apache.hadoop.fs.FileContextPermissionBase','setUp()',NULL),(5836,'Some filesystem like HDFS ignore the \\\"x\\\" bit if the permission.\nOthers like localFs does not.\nOverride the method below if the file system being tested masks our\ncertain bits for file masks.','Block','common/src/test/core/org/apache/hadoop/fs/FileContextPermissionBase.java',203,208,'org.apache.hadoop.fs.FileContextPermissionBase','setUp()',NULL),(5837,'Default probability is 0%\nMax probability is 100%','Line','common/src/test/aop/org/apache/hadoop/fi/ProbabilityModel.java',49,50,'org.apache.hadoop.fi.ProbabilityModel','None',NULL),(5838,'Set new default probability if specified through a system.property\nIf neither is specified set default probability to DEFAULT_PROB','Line','common/src/test/aop/org/apache/hadoop/fi/ProbabilityModel.java',55,56,'org.apache.hadoop.fi.ProbabilityModel','injectCriteria(String)',NULL),(5839,'maybe too long','Line','src/java/org/apache/hadoop/io/UTF8.java',82,82,'org.apache.hadoop.io.UTF8','set(String)',NULL),(5840,'maybe too long','Line','common/src/java/org/apache/hadoop/io/UTF8.java',82,82,'org.apache.hadoop.io.UTF8','set(String)',NULL),(5841,'maybe too long','Line','src/java/org/apache/hadoop/io/UTF8.java',244,244,'org.apache.hadoop.io.UTF8','writeString(DataOutput, String)',NULL),(5842,'maybe too long','Line','common/src/java/org/apache/hadoop/io/UTF8.java',244,244,'org.apache.hadoop.io.UTF8','writeString(DataOutput, String)',NULL),(5843,'The following XDR recipe was done through a careful reading of\ngm_protocol.x in Ganglia 3.1 and carefully examining the output of\nthe gmetric utility with strace.','Line','common/src/java/org/apache/hadoop/metrics/ganglia/GangliaContext31.java',98,100,'org.apache.hadoop.metrics.ganglia.GangliaContext31','emitMetric(String, String, String)',NULL),(5844,'TODO: this really should be a -nl option','Line','common/src/java/org/apache/hadoop/fs/shell/CopyCommands.java',70,70,'org.apache.hadoop.fs.shell.CopyCommands','registerCommands(CommandFactory)',NULL),(5845,'too bad we can\'t tell exactly why it failed...','Line','common/src/java/org/apache/hadoop/fs/shell/CopyCommands.java',181,181,'org.apache.hadoop.fs.shell.CopyCommands','registerCommands(CommandFactory)',NULL),(5846,'NOTE: this logic should be better, mimics previous implementation','Line','common/src/java/org/apache/hadoop/fs/shell/CopyCommands.java',235,235,'org.apache.hadoop.fs.shell.CopyCommands','registerCommands(CommandFactory)',NULL),(5847,'Verify fix of bug identified in HADOOP-6004','Line','common/src/test/core/org/apache/hadoop/fs/TestBlockLocation.java',30,30,'org.apache.hadoop.fs.TestBlockLocation','testDeserialization()',NULL),(5848,'Workaround to handle the problem reported in HADOOP-4744','Line','src/java/org/apache/hadoop/http/HttpServer.java',592,592,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)',NULL),(5849,'Workaround to handle the problem reported in HADOOP-4744','Line','common/src/java/org/apache/hadoop/http/HttpServer.java',592,592,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)',NULL),(5850,'Workaround end','Line','src/java/org/apache/hadoop/http/HttpServer.java',621,621,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)',NULL),(5851,'Workaround end','Line','common/src/java/org/apache/hadoop/http/HttpServer.java',621,621,'org.apache.hadoop.http.HttpServer','createBaseListener(Configuration)',NULL),(5852,'The implementors of RawLocalFileSystem were trying to be very smart.\nThey implement FileStatus#getOwener lazily -- the object\nreturned is really a RawLocalFileSystem that expect the\nFileStatus#getPath to be unchanged so that it can get owner when needed.\nHence we need to interpose a new ViewFileSystemFileStatus that\nworks around.','Line','src/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java',334,339,'org.apache.hadoop.fs.viewfs.ViewFileSystem','readOnlyMountTable(String, String)',NULL),(5853,'The implementors of RawLocalFileSystem were trying to be very smart.\nThey implement FileStatus#getOwener lazily -- the object\nreturned is really a RawLocalFileSystem that expect the\nFileStatus#getPath to be unchanged so that it can get owner when needed.\nHence we need to interpose a new ViewFileSystemFileStatus that\nworks around.','Line','common/src/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java',334,339,'org.apache.hadoop.fs.viewfs.ViewFileSystem','readOnlyMountTable(String, String)',NULL),(5854,'this is the stupid semantics of FileSystem','Line','src/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java',645,645,'org.apache.hadoop.fs.viewfs.ViewFileSystem','mkdirs(Path, FsPermission)',NULL),(5855,'this is the stupid semantics of FileSystem','Line','common/src/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java',645,645,'org.apache.hadoop.fs.viewfs.ViewFileSystem','mkdirs(Path, FsPermission)',NULL),(5856,'The implementors of RawLocalFileSystem were trying to be very smart.\nThey implement FileStatus#getOwener lazily -- the object\nreturned is really a RawLocalFileSystem that expect the\nFileStatus#getPath to be unchanged so that it can get owner when needed.\nHence we need to interpose a new ViewFsFileStatus that works around.','Line','src/java/org/apache/hadoop/fs/viewfs/ViewFs.java',332,336,'org.apache.hadoop.fs.viewfs.ViewFs','readOnlyMountTable(String, String)',NULL),(5857,'The implementors of RawLocalFileSystem were trying to be very smart.\nThey implement FileStatus#getOwener lazily -- the object\nreturned is really a RawLocalFileSystem that expect the\nFileStatus#getPath to be unchanged so that it can get owner when needed.\nHence we need to interpose a new ViewFsFileStatus that works around.','Line','common/src/java/org/apache/hadoop/fs/viewfs/ViewFs.java',332,336,'org.apache.hadoop.fs.viewfs.ViewFs','readOnlyMountTable(String, String)',NULL),(5858,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','src/java/org/apache/hadoop/io/compress/bzip2/CRC.java',19,23,'None','None',NULL),(5859,'This package is based on the work done by Keiron Liddle, Aftex Software\n<keiron@aftexsw.com> to whom the Ant project is very grateful for his\ngreat code.','Block','common/src/java/org/apache/hadoop/io/compress/bzip2/CRC.java',19,23,'None','None',NULL),(5860,'For efficient implementation, there\'s no way around\nthe following massive code duplication.','Line','common/src/java/org/apache/hadoop/io/ArrayPrimitiveWritable.java',251,252,'org.apache.hadoop.io.ArrayPrimitiveWritable','writeBooleanArray(DataOutput)',NULL),(5861,'Flip to the newly parsed permissions','Line','src/java/org/apache/hadoop/security/authorize/ServiceAuthorizationManager.java',142,142,'org.apache.hadoop.security.authorize.ServiceAuthorizationManager','refresh(Configuration, PolicyProvider)',NULL),(5862,'Flip to the newly parsed permissions','Line','common/src/java/org/apache/hadoop/security/authorize/ServiceAuthorizationManager.java',142,142,'org.apache.hadoop.security.authorize.ServiceAuthorizationManager','refresh(Configuration, PolicyProvider)',NULL),(5863,'The following if clause handles the following case:\nAssume the following scenario in BZip2 compressed stream where\n. represent compressed data.\n.....[48 bit Block].....[48 bit   Block].....[48 bit Block]...\n........................[47 bits][1 bit].....[48 bit Block]...\n................................^[Assume a Byte alignment here]\n........................................^^[current position of stream]\n.....................^^[We go back 10 Bytes in stream and find a Block marker]\n........................................^^[We align at wrong position!]\n...........................................................^^[While this pos is correct]','Line','src/java/org/apache/hadoop/io/compress/BZip2Codec.java',160,169,'org.apache.hadoop.io.compress.BZip2Codec','createOutputStream(OutputStream)',NULL),(5864,'The following if clause handles the following case:\nAssume the following scenario in BZip2 compressed stream where\n. represent compressed data.\n.....[48 bit Block].....[48 bit   Block].....[48 bit Block]...\n........................[47 bits][1 bit].....[48 bit Block]...\n................................^[Assume a Byte alignment here]\n........................................^^[current position of stream]\n.....................^^[We go back 10 Bytes in stream and find a Block marker]\n........................................^^[We align at wrong position!]\n...........................................................^^[While this pos is correct]','Line','common/src/java/org/apache/hadoop/io/compress/BZip2Codec.java',160,169,'org.apache.hadoop.io.compress.BZip2Codec','createOutputStream(OutputStream)',NULL),(5865,'TODO: this really should be iterative','Line','src/java/org/apache/hadoop/fs/shell/Command.java',296,296,'org.apache.hadoop.fs.shell.Command','processPaths(PathData, PathData...)',NULL),(5866,'TODO: this really should be iterative','Line','common/src/java/org/apache/hadoop/fs/shell/Command.java',296,296,'org.apache.hadoop.fs.shell.Command','processPaths(PathData, PathData...)',NULL),(5867,'this is an unexpected condition, so dump the whole exception since\nit\'s probably a nasty internal error where the backtrace would be\nuseful','Line','src/java/org/apache/hadoop/fs/shell/Command.java',343,345,'org.apache.hadoop.fs.shell.Command','displayError(Exception)',NULL),(5868,'this is an unexpected condition, so dump the whole exception since\nit\'s probably a nasty internal error where the backtrace would be\nuseful','Line','common/src/java/org/apache/hadoop/fs/shell/Command.java',343,345,'org.apache.hadoop.fs.shell.Command','displayError(Exception)',NULL),(5869,'TODO: commands should implement a -f to enable this','Line','common/src/java/org/apache/hadoop/fs/shell/CommandWithDestination.java',41,41,'org.apache.hadoop.fs.shell.CommandWithDestination','setOverwrite(boolean)','DESIGN'),(5870,'move to current trash','Line','src/java/org/apache/hadoop/fs/Trash.java',192,192,'org.apache.hadoop.fs.Trash','moveToAppropriateTrash(FileSystem, Path, Configuration)',NULL),(5871,'move to current trash','Line','common/src/java/org/apache/hadoop/fs/Trash.java',192,192,'org.apache.hadoop.fs.Trash','moveToAppropriateTrash(FileSystem, Path, Configuration)',NULL),(5872,'A RecordTypeInfo is really just a wrapper around StructTypeID','Line','src/java/org/apache/hadoop/record/meta/RecordTypeInfo.java',45,45,'org.apache.hadoop.record.meta.RecordTypeInfo','None',NULL),(5873,'A RecordTypeInfo is really just a wrapper around StructTypeID','Line','common/src/java/org/apache/hadoop/record/meta/RecordTypeInfo.java',45,45,'org.apache.hadoop.record.meta.RecordTypeInfo','None',NULL),(5874,'TODO: Add ACL for LIST_JOBS when we have ability to authenticate\nusers in UI\nTODO: Add ACL for CHANGE_ACL when we have an admin tool for\nconfiguring queues.','Line','mapreduce/src/java/org/apache/hadoop/mapred/QueueACL.java',34,37,'None','None',NULL),(5875,'maybe didn\'t work','Line','mapreduce/src/test/mapred/org/apache/hadoop/fs/slive/SliveTest.java',146,146,'org.apache.hadoop.fs.slive.SliveTest','run(String[])',NULL),(5876,'the specified src path\nname of policy\nthe erasure code used\nA verbose description of this policy\nHadoop configuration','Line','mapreduce/src/contrib/raid/src/java/org/apache/hadoop/raid/protocol/PolicyInfo.java',50,54,'org.apache.hadoop.raid.protocol.PolicyInfo','None',NULL),(5877,'The scheduling Information object is read back as String.\nOnce the scheduling information is set there is no way to recover it.','Line','mapreduce/src/java/org/apache/hadoop/mapreduce/QueueInfo.java',44,45,'org.apache.hadoop.mapreduce.QueueInfo','None',NULL),(5878,'perhaps we should bail out here...','Line','hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/NamenodeFsck.java',438,438,'org.apache.hadoop.hdfs.server.namenode.NamenodeFsck','fsck()',NULL),(5879,'We need this semaphore to block when the number of running workitems\nis equal to the number of threads. FixedThreadPool limits the number\nof threads, but not the queue size. This way we will limit the memory\nusage.','Line','mapreduce/src/contrib/raid/src/java/org/apache/hadoop/raid/DirectoryTraversal.java',116,119,'org.apache.hadoop.raid.DirectoryTraversal','check(FileStatus)',NULL),