TruX-DTF / debug-method-name

Learning to Spot and Refactor Inconsistent Method Names
16 stars 17 forks source link

some running problem #23

Open konL opened 3 years ago

konL commented 3 years ago

Hi! Thank you for your excellent work! 我最近正在尝试把我自己的数据用您的方法跑一遍,但在运行您的源代码的时候遇到了一些问题... [Problem] when i run DebugMethodName/.../MainParser.java,I got all data correctlly. Then I run /RenamedMethodsCollector/.../Main.java, ..\Data\Output\RenamedMethods\ 里生成的文件全是空文件。 我查看了代码,应该是parseRenamedMethods(filePath, outputPath);这个函数出现了问题导致无法写入的。 (1)您认为可能是哪个地方出现了错误导致第二步无法生成文件呢? (2)是否可以展示一下data_prepare阶段三个运行文件的输出结果/文件/实例呢?这样我自己也好对比差异的地方去修改

konL commented 3 years ago

Hi!我把main.java生成的数据全部保留下来,Data\Output\RenamedMethods\proj 下的目录如下,其中methodBodies和renameMethods在后续合并数据后会被删除。我发现正是因为这两个文件夹中的文件内容为空导致的第二部数据生成出现了问题。我猜测是否和windows运行有关呢?另外,我注意到运行mainParser这一步也生成了methodBody文件,但是生成的数据却不会出现这样的问题,是否可以借鉴? RxRMeU.md.jpg

Kui-Liu commented 3 years ago

估计是windows的问题,windows系统里有些路径会出错。 输出路径示例:Output/RenamedMethods/Project-name/ActualRenamed/

截屏2021-07-10 下午1 25 06
konL commented 3 years ago

的确是的!我昨天已经解决了这个问题,由于代码中涉及到替换字符串的问题,是window获取的路径不是反斜杠导致的路径替换失败... 但代码中我有一个细节不太理解,这一行代码中的tokenVectorOfAllParsedMethodNames这个集合数据来自哪里?在这里您似乎只做了一个定义,因此集合是空的,这会导致我在运行DataPrepare.java发生错误?感谢您的解答! https://github.com/TruX-DTF/debug-method-name/blob/cb0f21b7add64d2c477e686bc94a7529dd8df140/LearningModel/src/main/java/edu/lu/uni/serval/dlMethods/DataInitializer.java#L176

Kui-Liu commented 3 years ago

https://github.com/TruX-DTF/debug-method-name/blob/cb0f21b7add64d2c477e686bc94a7529dd8df140/LearningModel/src/main/java/edu/lu/uni/serval/dlMethods/DataInitializer.java#L80 这段被注释的代码需要考虑进来,我当时好像是这里处理了几种不同的情况,所以这代码被注释了。

konL commented 3 years ago

感谢回答,这解决了我的问题👌接下来还有这么几行代码: https://github.com/TruX-DTF/debug-method-name/blob/cb0f21b7add64d2c477e686bc94a7529dd8df140/LearningModel/src/main/java/edu/lu/uni/serval/dlMethods/DataInitializer.java#L153 这里的methodInfoOfRenamedMethods集合数据应该来自./Data/Output/RenamedMethods/proj/ActualRenamed/methodToken.txt , methodInfo来自./Data/Output/proj/tokens.txt 但是存储的数据形式并不相同,会导致renameIndex=-1,结果是获取不了任何renamemathod。 请问这里的代码是需要修改为相同形式吗?还是我理解错误了? 以下是我获取的methodInfoOfRenamedMethods内容及methodInfo内容对比.... WVJfmT.png

konL commented 3 years ago

您提到了你们有训练好的模型文件,但我没有在clone下来的项目中找到,请问方便提供下载链接或者上传到您的仓库上吗?🙏

konL commented 3 years ago

当我继续处理数据,运行了LearningModel/src/main/java/edu/lu/uni/serval/dlMethods/MethodBodyCodeLearner.java,似乎是某一批的数据出现了问题....请问我应该修改哪个文件可以解决这个问题? WZ3xIJ.md.jpg

konL commented 3 years ago

您好,之前提到的问题都已经解决了,最后再打扰一下,希望这个细节能得到解答。请问这个的路径下的数据在哪里生成的呢? https://github.com/TruX-DTF/debug-method-name/blob/cb0f21b7add64d2c477e686bc94a7529dd8df140/DebugMethodName/src/main/java/edu/lu/uni/serval/sricmn/akka/EvaluateActor.java#L156

Kui-Liu commented 3 years ago

很抱歉,这个确认记不起来了,应该就是https://github.com/TruX-DTF/debug-method-name/blob/master/LearningModel/src/main/java/edu/lu/uni/deeplearning/extractor/CNNFeatureExtractor.java#L175 这里的数据,你可以看看有没有这个数据

jiang1971 commented 3 years ago

Hi! Thank you for your excellent work! 我最近正在尝试把我自己的数据用您的方法跑一遍,但在运行您的源代码的时候遇到了一些问题... [Problem] when i run DebugMethodName/.../MainParser.java,I got all data correctlly. Then I run /RenamedMethodsCollector/.../Main.java, ..\Data\Output\RenamedMethods\ 里生成的文件全是空文件。 我查看了代码,应该是parseRenamedMethods(filePath, outputPath);这个函数出现了问题导致无法写入的。 (1)您认为可能是哪个地方出现了错误导致第二步无法生成文件呢? (2)是否可以展示一下data_prepare阶段三个运行文件的输出结果/文件/实例呢?这样我自己也好对比差异的地方去修改

你好:很抱歉打扰您,请问你在运行过程MainParser.java中有遇到JavaFiles.txt文件找不到的问题吗?如果有遇到是如何解决的呢。(困扰很久 ,万分希望得到回复)

87aef2b8f6c2a3890aa791f956873de

a

Kui-Liu commented 3 years ago

@jiang1971 你这个是不是用的Choice-3先在运行先统一收集所有的Java文件,再解析?这个方式好像是最快的解析,但是和后面的好像有点冲突,因为我后面的代码都是根据Choice-4来写的。推荐用Choice-4来解析。 然后你这个问题,看这个trace,应该是Choice-3里的前一步“JavaFileGetter.main(null);”没有成功创建这个JavaFiles.txt文件。