You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The bugLineNum and fixLineNum for some bugs are off a little. These line numbers usually point to a comment on several lines before where the actual bug happens.
For example, in this bug, the fix happens at line 25, but line 25 is the start of a comment, and the actual fix starts at line 33:
{
"bugType": "CHANGE_MODIFIER",
"fixCommitSHA1": "378e87f1e3bf8b2451ca511668954b707680b843",
"fixCommitParentSHA1": "f7e86cdf5fc7c68d420f2f279b482ac9d1b5e3ac",
"bugFilePath": "src/checkstyle/com/puppycrawl/tools/checkstyle/LocalizedMessage.java",
"fixPatch": "diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/LocalizedMessage.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/LocalizedMessage.java\nindex 723b069..5601884 100644\n--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/LocalizedMessage.java\n+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/LocalizedMessage.java\n@@ -30,7 +30,7 @@\n * @author <a href=\"mailto:checkstyle@puppycrawl.com\">Oliver Burn</a>\n * @version 1.0\n */\n-class LocalizedMessage\n+public class LocalizedMessage\n implements Comparable\n {\n /** name of the resource bundle to get messages from **/\n@@ -84,7 +84,7 @@\n }\n \n /** @return the translated message **/\n- String getMessage()\n+ public String getMessage()\n {\n // Very simple approach - wait for performance problems\n final ResourceBundle bundle =\n@@ -94,13 +94,13 @@\n }\n \n /** @return the line number **/\n- int getLineNo()\n+ public int getLineNo()\n {\n return mLineNo;\n }\n \n /** @return the column number **/\n- int getColumnNo()\n+ public int getColumnNo()\n {\n return mColNo;\n }\n",
"projectName": "checkstyle.checkstyle",
"bugLineNum": 25,
"bugNodeStartChar": 1146,
"bugNodeLength": 3344,
"fixLineNum": 25,
"fixNodeStartChar": 1146,
"fixNodeLength": 3351,
"sourceBeforeFix": "0",
"sourceAfterFix": "1"
}
Same as this one where the fixed line number is 20:
{
"bugType": "CHANGE_MODIFIER",
"fixCommitSHA1": "9e669d7d3d316d5ba01157b4528d80157366305a",
"fixCommitParentSHA1": "594400d5ed8e299d7a586b7a80fa22fe5794c72c",
"bugFilePath": "src/main/java/org/bukkit/potion/PotionEffectType.java",
"fixPatch": "diff --git a/src/main/java/org/bukkit/potion/PotionEffectType.java b/src/main/java/org/bukkit/potion/PotionEffectType.java\nindex d43aea5..8a60055 100644\n--- a/src/main/java/org/bukkit/potion/PotionEffectType.java\n+++ b/src/main/java/org/bukkit/potion/PotionEffectType.java\n@@ -12,99 +12,100 @@\n /**\n * Increases movement speed.\n */\n- public static PotionEffectType SPEED = new PotionEffectTypeWrapper(1);\n+ public static final PotionEffectType SPEED = new PotionEffectTypeWrapper(1);\n \n /**\n * Decreases movement speed.\n */\n- public static PotionEffectType SLOW = new PotionEffectTypeWrapper(2);\n+ public static final PotionEffectType SLOW = new PotionEffectTypeWrapper(2);\n \n /**\n * Increases dig speed.\n */\n- public static PotionEffectType FAST_DIGGING = new PotionEffectTypeWrapper(3);\n+ public static final PotionEffectType FAST_DIGGING = new PotionEffectTypeWrapper(3);\n \n /**\n * Decreases dig speed.\n */\n- public static PotionEffectType SLOW_DIGGING = new PotionEffectTypeWrapper(4);\n+ public static final PotionEffectType SLOW_DIGGING = new PotionEffectTypeWrapper(4);\n \n /**\n * Increases damage dealt.\n */\n- public static PotionEffectType INCREASE_DAMAGE = new PotionEffectTypeWrapper(5);\n+ public static final PotionEffectType INCREASE_DAMAGE = new PotionEffectTypeWrapper(5);\n \n /**\n * Heals an entity.\n */\n- public static PotionEffectType HEAL = new PotionEffectTypeWrapper(6);\n+ public static final PotionEffectType HEAL = new PotionEffectTypeWrapper(6);\n \n /**\n * Hurts an entity.\n */\n- public static PotionEffectType HARM = new PotionEffectTypeWrapper(7);\n+ public static final PotionEffectType HARM = new PotionEffectTypeWrapper(7);\n \n /**\n * Increases jump height.\n */\n- public static PotionEffectType JUMP = new PotionEffectTypeWrapper(8);\n+ public static final PotionEffectType JUMP = new PotionEffectTypeWrapper(8);\n \n /**\n * Warps vision on the client.\n */\n- public static PotionEffectType CONFUSION = new PotionEffectTypeWrapper(9);\n+ public static final PotionEffectType CONFUSION = new PotionEffectTypeWrapper(9);\n \n /**\n * Regenerates health.\n */\n- public static PotionEffectType REGENERATION = new PotionEffectTypeWrapper(10);\n+ public static final PotionEffectType REGENERATION = new PotionEffectTypeWrapper(10);\n \n /**\n * Decreases damage dealt to an entity.\n */\n- public static PotionEffectType DAMAGE_RESISTANCE = new PotionEffectTypeWrapper(11);\n+ public static final PotionEffectType DAMAGE_RESISTANCE = new PotionEffectTypeWrapper(11);\n \n /**\n * Stops fire damage.\n */\n- public static PotionEffectType FIRE_RESISTANCE = new PotionEffectTypeWrapper(12);\n+ public static final PotionEffectType FIRE_RESISTANCE = new PotionEffectTypeWrapper(12);\n \n /**\n * Allows breathing underwater.\n */\n- public static PotionEffectType WATER_BREATHING = new PotionEffectTypeWrapper(13);\n+ public static final PotionEffectType WATER_BREATHING = new PotionEffectTypeWrapper(13);\n \n /**\n- * Grants invisibility.\n+ * Grants invisibility. NOTE: Unusable due to not being implemented by Minecraft.\n */\n @Deprecated\n- public static PotionEffectType INVISIBILITY = new PotionEffectTypeWrapper(14); // unimplemented\n+ public static final PotionEffectType INVISIBILITY = new PotionEffectTypeWrapper(14); // unimplemented\n \n /**\n * Blinds an entity.\n */\n- public static PotionEffectType BLINDNESS = new PotionEffectTypeWrapper(15);\n+ public static final PotionEffectType BLINDNESS = new PotionEffectTypeWrapper(15);\n \n /**\n- * Allows an entity to see in the dark.\n+ * Allows an entity to see in the dark. NOTE: Unusable due to not being \n+ * implemented by Minecraft.\n */\n @Deprecated\n- public static PotionEffectType NIGHT_VISION = new PotionEffectTypeWrapper(16); // unimplemented\n+ public static final PotionEffectType NIGHT_VISION = new PotionEffectTypeWrapper(16); // unimplemented\n \n /**\n * Increases hunger.\n */\n- public static PotionEffectType HUNGER = new PotionEffectTypeWrapper(17);\n+ public static final PotionEffectType HUNGER = new PotionEffectTypeWrapper(17);\n \n /**\n * Decreases damage dealt by an entity.\n */\n- public static PotionEffectType WEAKNESS = new PotionEffectTypeWrapper(18);\n+ public static final PotionEffectType WEAKNESS = new PotionEffectTypeWrapper(18);\n \n /**\n * Deals damage to an entity over time.\n */\n- public static PotionEffectType POISON = new PotionEffectTypeWrapper(19);\n+ public static final PotionEffectType POISON = new PotionEffectTypeWrapper(19);\n \n private final int id;\n \n",
"projectName": "Bukkit.Bukkit",
"bugLineNum": 17,
"bugNodeStartChar": 357,
"bugNodeLength": 118,
"fixLineNum": 17,
"fixNodeStartChar": 357,
"fixNodeLength": 124,
"sourceBeforeFix": "9",
"sourceAfterFix": "25"
}
In the above examples, it is easy to find the intended line, you just go down until the comment finishes, and the next line is the one. However, there are some line numbers that are completely wrong, and there is no clear way to identify them.
{
"bugType": "CHANGE_NUMERAL",
"fixCommitSHA1": "b8a86c4259cf3d058106ef9c0388a86fae42469f",
"fixCommitParentSHA1": "1982e95061fe991f2a00979cf97a6edadce04833",
"bugFilePath": "tests/gdx-tests/src/com/badlogic/gdx/tests/TileTest.java",
"fixPatch": "diff --git a/tests/gdx-tests/src/com/badlogic/gdx/tests/TileTest.java b/tests/gdx-tests/src/com/badlogic/gdx/tests/TileTest.java\nindex 1739621..1740101 100644\n--- a/tests/gdx-tests/src/com/badlogic/gdx/tests/TileTest.java\n+++ b/tests/gdx-tests/src/com/badlogic/gdx/tests/TileTest.java\n@@ -1,3 +1,15 @@\n+/*\r\n+ * Copyright 2010 Mario Zechner (contact@badlogicgames.com), Nathan Sweet (admin@esotericsoftware.com)\r\n+ * \r\n+ * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the\r\n+ * License. You may obtain a copy of the License at\r\n+ * \r\n+ * http://www.apache.org/licenses/LICENSE-2.0\r\n+ * \r\n+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\"\r\n+ * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language\r\n+ * governing permissions and limitations under the License.\r\n+ */\r\n package com.badlogic.gdx.tests;\r\n \r\n import com.badlogic.gdx.Gdx;\r\n@@ -11,7 +23,7 @@\n import com.badlogic.gdx.tests.utils.GdxTest;\r\n \r\n public class TileTest extends GdxTest {\r\n-\tstatic final int LAYERS \u003d 10;\r\n+\tstatic final int LAYERS \u003d 5;\r\n \tstatic final int BLOCK_TILES \u003d 25;\r\n \tstatic final int WIDTH \u003d 15;\r\n \tstatic final int HEIGHT \u003d 10;\r\n@@ -26,7 +38,7 @@\n \tpublic void create() {\r\n \t\tcam \u003d new OrthographicCamera();\r\n \t\tcam.setViewport(480, 320);\r\n-\t\tcam.getPosition().set(WIDTH*32/2, 10*HEIGHT/2,0);\t\t\r\n+\t\tcam.getPosition().set(WIDTH*32/2, HEIGHT/2,0);\t\t\r\n \t\ttexture \u003d Gdx.graphics.newTexture(Gdx.files.internal(\"data/tiles.png\"), TextureFilter.Nearest, TextureFilter.Nearest, TextureWrap.ClampToEdge, TextureWrap.ClampToEdge);\r\n \t\t\r\n \t\tfor(int i \u003d 0; i \u003c LAYERS; i++) {\r\n",
"projectName": "libgdx.libgdx",
"bugLineNum": 14,
"bugNodeStartChar": 509,
"bugNodeLength": 11,
"fixLineNum": 14,
"fixNodeStartChar": 496,
"fixNodeLength": 10,
"sourceBeforeFix": "LAYERS\u003d10",
"sourceAfterFix": "LAYERS\u003d5"
}
{
"bugType": "CHANGE_IDENTIFIER",
"fixCommitSHA1": "4974c29d05335dd33f73787a82ff6f91e0cced1e",
"fixCommitParentSHA1": "dc6b41ea7ba85ae5ed053c82f3f4f09a68f7d827",
"bugFilePath": "modules/apps/foundation/vulcan/vulcan-api/src/main/java/com/liferay/vulcan/resource/builder/RoutesBuilder.java",
"fixPatch": "diff --git a/modules/apps/foundation/vulcan/vulcan-api/src/main/java/com/liferay/vulcan/resource/builder/RoutesBuilder.java b/modules/apps/foundation/vulcan/vulcan-api/src/main/java/com/liferay/vulcan/resource/builder/RoutesBuilder.java\nindex eba0f94..fadaf72 100644\n--- a/modules/apps/foundation/vulcan/vulcan-api/src/main/java/com/liferay/vulcan/resource/builder/RoutesBuilder.java\n+++ b/modules/apps/foundation/vulcan/vulcan-api/src/main/java/com/liferay/vulcan/resource/builder/RoutesBuilder.java\n@@ -37,7 +37,7 @@\n * @author Alejandro Hernández\n */\n @SuppressWarnings(\"unused\")\n-public interface RoutesBuilder\u003cT\u003e {\n+public interface RoutesBuilder\u003cT, U extends Identifier\u003e {\n \n \t/**\n \t * Constructs the \u003ccode\u003eRoutes\u003c/code\u003e instance with the information provided\n@@ -52,21 +52,18 @@\n \t *\n \t * @param biFunction the function that will be used to calculate the single\n \t * model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A\u003e RoutesBuilder\u003cT\u003e collectionItem(\n-\t\tBiFunction\u003cU, A, T\u003e biFunction, Class\u003cU\u003e identifierClass,\n-\t\tClass\u003cA\u003e aClass);\n+\tpublic \u003cA\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n+\t\tBiFunction\u003cU, A, T\u003e biFunction, Class\u003cA\u003e aClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param decaFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n@@ -87,19 +84,17 @@\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E, F, G, H, I\u003e RoutesBuilder\u003cT\u003e\n-\t\tcollectionItem(\n+\tpublic \u003cA, B, C, D, E, F, G, H, I\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n \t\t\tDecaFunction\u003cU, A, B, C, D, E, F, G, H, I, T\u003e decaFunction,\n-\t\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n-\t\t\tClass\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass, Class\u003cF\u003e fClass,\n-\t\t\tClass\u003cG\u003e gClass, Class\u003cH\u003e hClass, Class\u003cI\u003e iClass);\n+\t\tClass\u003cA\u003e aClass, Class\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass,\n+\t\tClass\u003cE\u003e eClass, Class\u003cF\u003e fClass, Class\u003cG\u003e gClass, Class\u003cH\u003e hClass,\n+\t\tClass\u003cI\u003e iClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param enneaFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n@@ -118,30 +113,25 @@\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E, F, G, H\u003e RoutesBuilder\u003cT\u003e\n-\t\tcollectionItem(\n+\tpublic \u003cA, B, C, D, E, F, G, H\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n \t\t\tEnneaFunction\u003cU, A, B, C, D, E, F, G, H, T\u003e enneaFunction,\n-\t\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n-\t\t\tClass\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass, Class\u003cF\u003e fClass,\n-\t\t\tClass\u003cG\u003e gClass, Class\u003cH\u003e hClass);\n+\t\tClass\u003cA\u003e aClass, Class\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass,\n+\t\tClass\u003cE\u003e eClass, Class\u003cF\u003e fClass, Class\u003cG\u003e gClass, Class\u003cH\u003e hClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param function the function that will be used to calculate the single\n \t * model.\n-\t * @param identifierClass the class of the identifier.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier\u003e RoutesBuilder\u003cT\u003e collectionItem(\n-\t\tFunction\u003cU, T\u003e function, Class\u003cU\u003e identifierClass);\n+\tpublic RoutesBuilder\u003cT, U\u003e collectionItem(Function\u003cU, T\u003e function);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param heptaFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n@@ -156,18 +146,16 @@\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E, F\u003e RoutesBuilder\u003cT\u003e\n-\t\tcollectionItem(\n-\t\t\tHeptaFunction\u003cU, A, B, C, D, E, F, T\u003e heptaFunction,\n-\t\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n-\t\t\tClass\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass, Class\u003cF\u003e fClass);\n+\tpublic \u003cA, B, C, D, E, F\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n+\t\tHeptaFunction\u003cU, A, B, C, D, E, F, T\u003e heptaFunction, Class\u003cA\u003e aClass,\n+\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass,\n+\t\tClass\u003cF\u003e fClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param hexaFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n@@ -180,18 +168,15 @@\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E\u003e RoutesBuilder\u003cT\u003e\n-\t\tcollectionItem(\n-\t\t\tHexaFunction\u003cU, A, B, C, D, E, T\u003e hexaFunction,\n-\t\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n-\t\t\tClass\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass);\n+\tpublic \u003cA, B, C, D, E\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n+\t\tHexaFunction\u003cU, A, B, C, D, E, T\u003e hexaFunction, Class\u003cA\u003e aClass,\n+\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param octaFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n@@ -208,19 +193,16 @@\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E, F, G\u003e RoutesBuilder\u003cT\u003e\n-\t\tcollectionItem(\n-\t\t\tOctaFunction\u003cU, A, B, C, D, E, F, G, T\u003e octaFunction,\n-\t\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n-\t\t\tClass\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass, Class\u003cF\u003e fClass,\n-\t\t\tClass\u003cG\u003e gClass);\n+\tpublic \u003cA, B, C, D, E, F, G\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n+\t\tOctaFunction\u003cU, A, B, C, D, E, F, G, T\u003e octaFunction, Class\u003cA\u003e aClass,\n+\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass,\n+\t\tClass\u003cF\u003e fClass, Class\u003cG\u003e gClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param pentaFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n@@ -231,16 +213,15 @@\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D\u003e RoutesBuilder\u003cT\u003e collectionItem(\n-\t\tPentaFunction\u003cU, A, B, C, D, T\u003e pentaFunction, Class\u003cU\u003e identifierClass,\n-\t\tClass\u003cA\u003e aClass, Class\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass);\n+\tpublic \u003cA, B, C, D\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n+\t\tPentaFunction\u003cU, A, B, C, D, T\u003e pentaFunction, Class\u003cA\u003e aClass,\n+\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param tetraFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n@@ -249,25 +230,23 @@\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C\u003e RoutesBuilder\u003cT\u003e collectionItem(\n-\t\tTetraFunction\u003cU, A, B, C, T\u003e tetraFunction, Class\u003cU\u003e identifierClass,\n-\t\tClass\u003cA\u003e aClass, Class\u003cB\u003e bClass, Class\u003cC\u003e cClass);\n+\tpublic \u003cA, B, C\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n+\t\tTetraFunction\u003cU, A, B, C, T\u003e tetraFunction, Class\u003cA\u003e aClass,\n+\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass);\n \n \t/**\n \t * Adds a route to a single model function.\n \t *\n \t * @param triFunction the function that will be used to calculate the\n \t * single model.\n-\t * @param identifierClass the class of the identifier.\n \t * @param aClass the class of the second parameter of the single model\n \t * function.\n \t * @param bClass the class of the third parameter of the single model\n \t * function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B\u003e RoutesBuilder\u003cT\u003e collectionItem(\n-\t\tTriFunction\u003cU, A, B, T\u003e triFunction, Class\u003cU\u003e identifierClass,\n-\t\tClass\u003cA\u003e aClass, Class\u003cB\u003e bClass);\n+\tpublic \u003cA, B\u003e RoutesBuilder\u003cT, U\u003e collectionItem(\n+\t\tTriFunction\u003cU, A, B, T\u003e triFunction, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass);\n \n \t/**\n \t * Adds a route to a collection page function.\n@@ -276,9 +255,9 @@\n \t * @param identifierClass the class of the identifier.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier\u003e RoutesBuilder\u003cT\u003e collectionPage(\n-\t\tBiFunction\u003cPagination, U, PageItems\u003cT\u003e\u003e biFunction,\n-\t\tClass\u003cU\u003e identifierClass);\n+\tpublic \u003cV extends Identifier\u003e RoutesBuilder\u003cT, U\u003e collectionPage(\n+\t\tBiFunction\u003cPagination, V, PageItems\u003cT\u003e\u003e biFunction,\n+\t\tClass\u003cV\u003e identifierClass);\n \n \t/**\n \t * Adds a route to a collection page function.\n@@ -296,10 +275,10 @@\n \t * @param hClass the class of the ninth parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E, F, G, H\u003e RoutesBuilder\u003cT\u003e\n+\tpublic \u003cV extends Identifier, A, B, C, D, E, F, G, H\u003e RoutesBuilder\u003cT, U\u003e\n \t\tcollectionPage(\n-\t\t\tDecaFunction\u003cPagination, U, A, B, C, D, E, F, G, H,\n-\t\t\t\tPageItems\u003cT\u003e\u003e decaFunction, Class\u003cU\u003e identifierClass,\n+\t\t\tDecaFunction\u003cPagination, V, A, B, C, D, E, F, G, H,\n+\t\t\t\tPageItems\u003cT\u003e\u003e decaFunction, Class\u003cV\u003e identifierClass,\n \t\t\tClass\u003cA\u003e aClass, Class\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass,\n \t\t\tClass\u003cE\u003e eClass, Class\u003cF\u003e fClass, Class\u003cG\u003e gClass, Class\u003cH\u003e hClass);\n \n@@ -318,10 +297,10 @@\n \t * @param gClass the class of the eighth parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E, F, G\u003e RoutesBuilder\u003cT\u003e\n+\tpublic \u003cV extends Identifier, A, B, C, D, E, F, G\u003e RoutesBuilder\u003cT, U\u003e\n \t\tcollectionPage(\n-\t\t\tEnneaFunction\u003cPagination, U, A, B, C, D, E, F, G, PageItems\u003cT\u003e\u003e\n-\t\t\t\tenneaFunction, Class\u003cU\u003e identifierClass, Class\u003cA\u003e aClass,\n+\t\t\tEnneaFunction\u003cPagination, V, A, B, C, D, E, F, G, PageItems\u003cT\u003e\u003e\n+\t\t\t\tenneaFunction, Class\u003cV\u003e identifierClass, Class\u003cA\u003e aClass,\n \t\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass,\n \t\t\tClass\u003cF\u003e fClass, Class\u003cG\u003e gClass);\n \n@@ -338,10 +317,10 @@\n \t * @param eClass the class of the sixth parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E\u003e RoutesBuilder\u003cT\u003e\n+\tpublic \u003cV extends Identifier, A, B, C, D, E\u003e RoutesBuilder\u003cT, U\u003e\n \t\tcollectionPage(\n-\t\t\tHeptaFunction\u003cPagination, U, A, B, C, D, E, PageItems\u003cT\u003e\u003e\n-\t\t\t\theptaFunction, Class\u003cU\u003e identifierClass, Class\u003cA\u003e aClass,\n+\t\t\tHeptaFunction\u003cPagination, V, A, B, C, D, E, PageItems\u003cT\u003e\u003e\n+\t\t\t\theptaFunction, Class\u003cV\u003e identifierClass, Class\u003cA\u003e aClass,\n \t\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass);\n \n \t/**\n@@ -356,9 +335,10 @@\n \t * @param dClass the class of the fifth parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D\u003e RoutesBuilder\u003cT\u003e collectionPage(\n-\t\tHexaFunction\u003cPagination, U, A, B, C, D, PageItems\u003cT\u003e\u003e hexaFunction,\n-\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n+\tpublic \u003cV extends Identifier, A, B, C, D\u003e RoutesBuilder\u003cT, U\u003e\n+\t\tcollectionPage(\n+\t\t\tHexaFunction\u003cPagination, V, A, B, C, D, PageItems\u003cT\u003e\u003e hexaFunction,\n+\t\t\tClass\u003cV\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n \t\tClass\u003cC\u003e cClass, Class\u003cD\u003e dClass);\n \n \t/**\n@@ -375,10 +355,10 @@\n \t * @param fClass the class of the seventh parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C, D, E, F\u003e RoutesBuilder\u003cT\u003e\n+\tpublic \u003cV extends Identifier, A, B, C, D, E, F\u003e RoutesBuilder\u003cT, U\u003e\n \t\tcollectionPage(\n-\t\t\tOctaFunction\u003cPagination, U, A, B, C, D, E, F, PageItems\u003cT\u003e\u003e\n-\t\t\t\toctaFunction, Class\u003cU\u003e identifierClass, Class\u003cA\u003e aClass,\n+\t\t\tOctaFunction\u003cPagination, V, A, B, C, D, E, F, PageItems\u003cT\u003e\u003e\n+\t\t\t\toctaFunction, Class\u003cV\u003e identifierClass, Class\u003cA\u003e aClass,\n \t\t\tClass\u003cB\u003e bClass, Class\u003cC\u003e cClass, Class\u003cD\u003e dClass, Class\u003cE\u003e eClass,\n \t\t\tClass\u003cF\u003e fClass);\n \n@@ -393,9 +373,9 @@\n \t * @param cClass the class of the fourth parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B, C\u003e RoutesBuilder\u003cT\u003e collectionPage(\n-\t\tPentaFunction\u003cPagination, U, A, B, C, PageItems\u003cT\u003e\u003e pentaFunction,\n-\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n+\tpublic \u003cV extends Identifier, A, B, C\u003e RoutesBuilder\u003cT, U\u003e collectionPage(\n+\t\tPentaFunction\u003cPagination, V, A, B, C, PageItems\u003cT\u003e\u003e pentaFunction,\n+\t\tClass\u003cV\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass,\n \t\tClass\u003cC\u003e cClass);\n \n \t/**\n@@ -408,9 +388,9 @@\n \t * @param bClass the class of the third parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A, B\u003e RoutesBuilder\u003cT\u003e collectionPage(\n-\t\tTetraFunction\u003cPagination, U, A, B, PageItems\u003cT\u003e\u003e tetraFunction,\n-\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass);\n+\tpublic \u003cV extends Identifier, A, B\u003e RoutesBuilder\u003cT, U\u003e collectionPage(\n+\t\tTetraFunction\u003cPagination, V, A, B, PageItems\u003cT\u003e\u003e tetraFunction,\n+\t\tClass\u003cV\u003e identifierClass, Class\u003cA\u003e aClass, Class\u003cB\u003e bClass);\n \n \t/**\n \t * Adds a route to a collection page function.\n@@ -421,8 +401,8 @@\n \t * @param aClass the class of the second parameter of the page function.\n \t * @return the updated builder.\n \t */\n-\tpublic \u003cU extends Identifier, A\u003e RoutesBuilder\u003cT\u003e collectionPage(\n-\t\tTriFunction\u003cPagination, U, A, PageItems\u003cT\u003e\u003e triFunction,\n-\t\tClass\u003cU\u003e identifierClass, Class\u003cA\u003e aClass);\n+\tpublic \u003cV extends Identifier, A\u003e RoutesBuilder\u003cT, U\u003e collectionPage(\n+\t\tTriFunction\u003cPagination, V, A, PageItems\u003cT\u003e\u003e triFunction,\n+\t\tClass\u003cV\u003e identifierClass, Class\u003cA\u003e aClass);\n \n }\n\\ No newline at end of file\n",
"projectName": "liferay.liferay-portal",
"bugLineNum": 424,
"bugNodeStartChar": 17769,
"bugNodeLength": 20,
"fixLineNum": 424,
"fixNodeStartChar": 17769,
"fixNodeLength": 20,
"sourceBeforeFix": "U extends Identifier",
"sourceAfterFix": "V extends Identifier"
}
The file only has 408 lines but the fixLineNum is 424:
The
bugLineNum
andfixLineNum
for some bugs are off a little. These line numbers usually point to a comment on several lines before where the actual bug happens.For example, in this bug, the fix happens at line 25, but line 25 is the start of a comment, and the actual fix starts at line 33:
https://github.com/checkstyle/checkstyle/blob/378e87f1e3bf8b2451ca511668954b707680b843/src/checkstyle/com/puppycrawl/tools/checkstyle/LocalizedMessage.java#L25-L33
Same as this one where the fixed line number is 20:
Bukkit/Bukkit@9e669d7/src/main/java/org/bukkit/potion/PotionEffectType.java
In the above examples, it is easy to find the intended line, you just go down until the comment finishes, and the next line is the one. However, there are some line numbers that are completely wrong, and there is no clear way to identify them.
For example, in this bug:
The actual fixed line is 34:
Activiti/Activiti@0f61fff/modules/activiti-modeler/src/main/java/org/activiti/rest/editor/main/StencilsetRestResource.java
Or in this one:
Fixed line is 26:
libgdx/libgdx@b8a86c4/tests/gdx-tests/src/com/badlogic/gdx/tests/TileTest.java
In this one:
The file only has 408 lines but the
fixLineNum
is 424:liferay/liferay-portal@4974c29/modules/apps/foundation/vulcan/vulcan-api/src/main/java/com/liferay/vulcan/resource/builder/RoutesBuilder.java
More examples
The text was updated successfully, but these errors were encountered: