Giter Site home page Giter Site logo

repairthemall's People

Contributors

alcides avatar fermadeiral avatar jose avatar lxylxy123456 avatar martinezmatias avatar ruimaranhao avatar tdurieux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

repairthemall's Issues

Does Closure use a different Fault Localization strategy compared with other projects in Defects4J

Hi @tdurieux
I modified the source code of Arja according to your pull request and now I can run it.
Thanks!
I find another strange question. I can get the results among five projects except Closure in Defects4J. The log message is :
image

I am very confused about that. We donot transfer a parameter named gzoltarDataDir. So according to the source code of ARJA, it should call GZoltarFaultLocalizer2 to perform FL. Why in the trace is GZoltarFaultLocalizer and why it fails.
image

How is the repair process going on?

Hi, dear authors.
Here is a picture from my repair.log
image

I have read the source code and understand the prepare process of the repair task.
But from this sentence on "Fault localization starts...", I do not find the corresponding code. I'd like to know how the repair process for each bug goes on. Where is the code that locates and repairs the bug. Is it integrated in the benchmark files or APR tools files?

Fix process directly exits when there are too many dependencies

I observed in RepairThemAll execution framework that Camel-84922699 of Bugs.jar benchmark has 1958 dependencies (*.jar), and as shown by the publicly available repairThemAll results, all the 11 repair tools directly exits with no repair operations.

Then I checked other Camels bugs, I found that many of the Camel bugs did not receive any repair operations by any APR system. Therefore, I am very curious about if this is a implementation error or something else. It would be greatly appreciated if any help or advice on explaining the reason and associated solution about this issue coud be provided.

Thank you for your time and help in advance.

Init RepairThemAll

Hi @tdurieux ,

Two questions/comments about the init script.

1. Clone command reports an issue

$ git clone --recursive https://github.com/program-repair/RepairThemAll.git RepairThemAllFramework

...
Submodule path 'benchmarks/Bug-dot-jar/repositories/accumulo': checked out '41ec3e2a248e22037e200edfcae65c08eafab687'
Submodule path 'benchmarks/Bug-dot-jar/repositories/camel': checked out '75dae83e3fce549608e508a01edbdd54227a357b'
Submodule path 'benchmarks/Bug-dot-jar/repositories/commons-math': checked out 'eafb16c711d5cd79edad5fbb2055252acdb3825e'
Submodule path 'benchmarks/Bug-dot-jar/repositories/flink': checked out 'b2cc4515a842dea029bcf854fb5479e271192a09'
Submodule path 'benchmarks/Bug-dot-jar/repositories/jackrabbit-oak': checked out 'a7b1675adcab8b2c27ef73d8d6ad7ccccb3ddeea'
Submodule path 'benchmarks/Bug-dot-jar/repositories/logging-log4j2': checked out 'b50a2378784ae5e91cc44d8f8c81e2151d29cf57'
Submodule path 'benchmarks/Bug-dot-jar/repositories/maven': checked out '69c512a8203030f3fee657673b0416bc2a121eae'
Submodule path 'benchmarks/Bug-dot-jar/repositories/wicket': checked out 'd88cebe581232022bb481c325ea23bd0fe9a0110'
Submodule path 'benchmarks/IntroclassJava': checked out 'aec9de3495e2b588f1cb803d90892ee1a0ca6b41'
Submodule path 'benchmarks/QuixBugs': checked out 'b11cde571c412600e21fa60ad9f784e81e63b546'
Submodule path 'benchmarks/bears': checked out 'c637bf555ff3a9b5abb1ca219dabd6e1113ef581'
fatal: No url found for submodule path 'benchmarks/bears/src/test/resources/shift-parser-expectations' in .gitmodules
Submodule path 'benchmarks/defects4j': checked out 'fcf6b9bb030e0f5f03ebab112eb4d4b622f2f315'
Submodule path 'libs/z3': checked out 'b02c69828419e792c67876f7beecfabe73196aac'
Failed to recurse into submodule path 'benchmarks/bears'

2. The make install requires sudo permissions

Any idea how to configure Z3 build to avoid that?

--
Best,
Jose

Repair frameworks not configured with a timeout

Hi @tdurieux,

I have just noticed that some repair frameworks are configured with an explicit timeout and some are not.

  • Arja is correctly executed and configured. It is executed by the timeout command with the time limit defined in the config.py script.

  • Astor. Although the max_time value is hardcoded, it is the same as the one defined in the config.py script and Astor is properly configured with the -maxtime parameter. (Nevertheless, I would also use the timeout command, as you did for Arja, just in case Astor gets stuck at some point and it does not finish within the time limit)

  • NPEFix is configured with 100 iterations. As far I can see, by default, the timeout of each iteration is 5 seconds. Does this mean NPEFix only runs for a max time of 500 seconds?

  • Nopol is not executed by the timeout command and it does not seem to be properly configured. The parameter to configure Nopol's timeout is --maxTime "The maximum time execution in minute for the whole execution of Nopol. (default: 10)". However, the RepairThemAll framework does not set that parameter. Does this mean Nopol only runs for a max time of 10 minutes?

--
Best,
Jose

Crash when running same bug on 2 different terminals

Hello,

First of all thank you for creating this very useful framework!

I've followed all the instructions of the readme and encounter no problem when executing a repair tool over a bug

For instance when I execute the following command:

python script/repair.py Cardumen --seed 400 --benchmark Defects4j --id math_70

I gives me the correct output:

1 Finished, 1 Patched, 0 Error

Patched bug: 
1. Cardumen Defects4J_Math_70
Check the results and logs in /home/max/Desktop/tese/RepairThemAll/results/

However if I run the same command on 1 terminal and open a second terminal with a similar command but with a different seed, the first execution crashes. For example:

If i have 2 terminals open and on the first one I execute the command:
python script/repair.py Cardumen --seed 400 --benchmark Defects4j --id math_70

And 3 seconds later I execute the command (same bug_id and repair tool but different seed) on a different terminal:
python script/repair.py Cardumen --seed 100 --benchmark Defects4j --id math_70

Then the first execution crashes with the following error:

Command 'export PATH="/usr/lib/jvm/jdk1.7.0_80/bin/:/home/max/Desktop/tese/RepairThemAll/script/../benchmarks/defects4j/framework/bin:$PATH";export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_80/bin/..";
        cd /tmp/Cardumen_Defects4J_Math_70;
        defects4j export -p cp.test 2> /dev/null;
        ' returned non-zero exit status 1
Traceback (most recent call last):
1 Finished, 0 Patched, 1 Error

Is there anything i might have missed to avoid this error from happening?

Thank you for your time!

Import error

Hi Thomas,
When running the script repair, I got the following error:

Traceback (most recent call last):
File "script/repair.py", line 5, in
from core.utils import get_benchmark, parser
File "/Users/matias/develop/code/RepairThemAll/script/core/utils.py", line 49, in
import core.repair_tools.CapGen
ImportError: No module named CapGen

Similar to modules, import core.repair_tools.LSRepair and import core.repair_tools.TestInfo.

Did I forget to do something?
Thanks!
Matias

The directory of external project does not exist! ?

Hi authors, I met a very strange problem when executing ARJA system.
In the log, it does transport a parameter named externalProjRoot
image

But it ends with an error: The directory of external project does not exist!
image

I cannot understand. Have you met the same problem?
Thanks

SVN dependency

I tried to find the usage of SVN in the repo, but couldn't find any. There is a verification step, and that's it.

Can you confirm SVN is really required? Otherwise, it should be removed.

[bug] compiling D4J projects

The bugfix I commited yesterday is incorrect.
355f9ac#diff-a0dddd360955b4f2a6ecb343397ea54eR192

It solves some cases i.e., Math projects, but breaks others (e.g., Time).
The problem is in the information retrieved from Dj4 export cp.test. For example, for Math-104 it does not include the dependency to org.apache.commons.discovery. Thus, the library was never introduced.
Before reverting the patch, I would like to discuss possible alternatives to this issue.
WDYT?

Source code vs. Docker image

Hi,

(This is a follow up of issue #19).

The execution of, for example, Nopol on Closure-51 produces a different outcome when executed from the source code or via the provided docker image.

Nopol generates the following patch in a few minutes when executed from RepairThemAll's source code:

+++ b/src/com/google/javascript/rhino/Node.java
@@ -1566,7 +1566,9 @@
       if (diff != null) {
-        return "Node tree inequality:" +
-            "\nTree1:\n" + toStringTree() +
-            "\n\nTree2:\n" + node2.toStringTree() +
-            "\n\nSubtree1: " + diff.nodeA.toStringTree() +
-            "\n\nSubtree2: " + diff.nodeB.toStringTree();
+        if ((node2.type) != (com.google.javascript.rhino.Node.this.type)) {
+          return "Node tree inequality:" +
+          "\nTree1:\n" + toStringTree() +
+          "\n\nTree2:\n" + node2.toStringTree() +
+          "\n\nSubtree1: " + diff.nodeA.toStringTree() +
+          "\n\nSubtree2: " + diff.nodeB.toStringTree();
+        }
       }

However, when Nopol is executed via the provided docker image it crashes:

...
18:14:34.750 [main] INFO  fr.inria.lille.repair.nopol.NoPol - Java version: 1.8.0_111
18:14:34.750 [main] INFO  fr.inria.lille.repair.nopol.NoPol - JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/
18:14:34.751 [main] INFO  fr.inria.lille.repair.nopol.NoPol - PATH: /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/:/defects4j/framework/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:206)
	at fr.inria.lille.repair.Main.main(Main.java:106)
Caused by: java.lang.NullPointerException
	at com.gzoltar.core.GZoltar.run(GZoltar.java:51)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.run(GZoltarFaultLocalizer.java:163)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.<init>(GZoltarFaultLocalizer.java:94)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.<init>(GZoltarFaultLocalizer.java:68)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.createInstance(GZoltarFaultLocalizer.java:60)
	at fr.inria.lille.repair.nopol.NoPol.createLocalizer(NoPol.java:179)
	at fr.inria.lille.repair.nopol.NoPol.build(NoPol.java:131)
	at fr.inria.lille.repair.Main$1.call(Main.java:101)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Usage: java -jar nopol.jar
                          [(-m|--mode) <repair|ranking>] (-e|--type) <condition|precondition|pre_then_cond|loop|arithmetic> [(-o|--oracle) <angelic|symbolic>] [(-y|--synthesis) <smt|dynamoth>] [(-l|--solver) <z3|cvc4>] [(-p|--solver-path) <solverPath>] (-s|--source) source1:source2:...:sourceN  (-c|--classpath) <classpath> [(-t|--test) test1:test2:...:testN ] [--complianceLevel <complianceLevel>] [--maxTime <maxTime>] [--maxTimeType <maxTimeType>] [(-z|--flocal) < cocospoon|dumb|gzoltar>] [--output <outputFolder>] [--json[:<outputJson>]]
...

(here is the repair.log file)

The problem does not seem to be due to different classpaths (more info in here), and neither due to a different version of Java 8 (more info in here). The provided docker image might be (somehow) using a different version of Nopol... ๐Ÿคท๐Ÿปโ€โ™‚๏ธ

--
Best,
Jose

Why I fail to download Defects4J bugs using the framework in benchmark folder?

I try to download Defects4J bugs using the framework in benchmark folder. Below is the command line information. The framework works well when I use repair.py to start but why it fails here.

kaka@ubuntu:~$ defects4j checkout -p Math -v 5b -w /home/kaka/math/math_5_buggy
Use of uninitialized value $work_dir in concatenation (.) or string at /data/RepairThemAll/benchmarks/defects4j/framework/core/Project.pm line 331.
Use of uninitialized value $work_dir in -d at /data/RepairThemAll/benchmarks/defects4j/framework/core/Vcs.pm line 258.
Failed to create working directory: No such file or directory at /data/RepairThemAll/benchmarks/defects4j/framework/core/Vcs.pm line 287.
	Vcs::checkout_vid(Vcs::Git=HASH(0x1b00548), "5f", undef) called at /data/RepairThemAll/benchmarks/defects4j/framework/core/Project.pm line 357
	Project::checkout_vid(Project::Math=HASH(0x1b004d0), "5b") called at /data/RepairThemAll/benchmarks/defects4j/framework/bin/d4j/d4j-checkout line 94
	require /data/RepairThemAll/benchmarks/defects4j/framework/bin/d4j/d4j-checkout called at /data/RepairThemAll/benchmarks/defects4j/framework/bin/defects4j line 155
Compilation failed in require at /data/RepairThemAll/benchmarks/defects4j/framework/bin/defects4j line 155.

Empty content of "DbinTestDir"

I have modified the .jar file of ARJA and added two parameters for transferring to it: Dbenchmark and Dbugid.
The code in /script/core/repair_tools/ARJA.py is like this:
image

However, in the log, the content of DbinTestDir is empty:
image

Why could this happen. I cannot understand.

Repair tools

Where can I find the data produced by the docker image?

Hi @tdurieux,

I am using the docker image (id fbbb430881e3) you kindly provided to run Nopol on Math-76 from the Defects4J benchmark:

$ mkdir -p /tmp/repairthemall/attempt_9_7_2019
$ docker run -it --rm -v /tmp/repairthemall/attempt_9_7_2019:/results tdurieux/repairthemall Nopol -b Defects4J -i Math_76
1 Running, 0 Waiting, 0/1 Finished, 0 Patched, 0 Error
Running:
1. Nopol Defects4J_Math_76 0:03:13
Patched bug:



1 Finished, 1 Patched, 0 Error

Check the results and logs in /results/

but I can't find the results/log files. I noticed the message Check the results and logs in /results/ but where is that /results/? I was expecting to find the results/log files in /tmp/repairthemall/attempt_9_7_2019, otherwise why would I need to provide a <absolute_path_to_store_results> as suggested in here... ๐Ÿ˜…

My system:

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.5
BuildVersion:	18F132

$ docker --version
Docker version 18.09.7, build 2d0083d

--
Best,
Jose

The system cannot create /results/ folders for some bugs in Bears

Hi, I executed "./repair.py jKali --benchmark Bears" and it finished. As expected, in the result/Bears folder, it should contain 71 folders. However, it only contains 43 folders.
That is to say, the system fails to create results folders for some bugs. I have checked it. These bugs are from projects like linkedin-point, molgenis-molgenis, openzipkin-zipkin....and so on.
I find when it's woking, it can download the buggy project into /tmp/. It just does not record the results.

Anyone can explain this strange thing?

How can I modify the test cases on Defects4j and repair again?

After I ran the command "python script/repair.py jGenProg --benchmark Defects4j --id chart-1",I go to the working_directory and want to modify the test cases in the folder named jGenProg_Defects4j_chart_1.However,the folder is disappear or being deleted,only the outcome left in "results".So I want to retain the " jGenProg_Defects4j_chart_1"folder and re-run this bug when test are modified,How can I do for it?

How to open the container and make some modification?

Usually we use the command docker run -t -i --name apr apr/aprtools to create a docker container. However, after downloading the repairthemall image, it goes wrong when executing this line.
image

I'd like to make some modification and then use the command provided by you docker run -it --rm -v <absolute_path_to_store_results>:/results tdurieux/repairthemall Nopol -b Defects4J -i Chart_5 to conduct some experiment. How to finish it please?

Nopol crashes on Closure-51

Hi,

I have just tried to run Nopol on Closure-51:

$ docker run -it --rm -v /tmp:/results tdurieux/repairthemall Nopol -b Defects4J -i Closure_51

and instead of a successful run (as reported in here), I got the following error:

...
18:14:34.750 [main] INFO  fr.inria.lille.repair.nopol.NoPol - Java version: 1.8.0_111
18:14:34.750 [main] INFO  fr.inria.lille.repair.nopol.NoPol - JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/
18:14:34.751 [main] INFO  fr.inria.lille.repair.nopol.NoPol - PATH: /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/:/defects4j/framework/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:206)
	at fr.inria.lille.repair.Main.main(Main.java:106)
Caused by: java.lang.NullPointerException
	at com.gzoltar.core.GZoltar.run(GZoltar.java:51)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.run(GZoltarFaultLocalizer.java:163)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.<init>(GZoltarFaultLocalizer.java:94)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.<init>(GZoltarFaultLocalizer.java:68)
	at fr.inria.lille.localization.GZoltarFaultLocalizer.createInstance(GZoltarFaultLocalizer.java:60)
	at fr.inria.lille.repair.nopol.NoPol.createLocalizer(NoPol.java:179)
	at fr.inria.lille.repair.nopol.NoPol.build(NoPol.java:131)
	at fr.inria.lille.repair.Main$1.call(Main.java:101)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Usage: java -jar nopol.jar
                          [(-m|--mode) <repair|ranking>] (-e|--type) <condition|precondition|pre_then_cond|loop|arithmetic> [(-o|--oracle) <angelic|symbolic>] [(-y|--synthesis) <smt|dynamoth>] [(-l|--solver) <z3|cvc4>] [(-p|--solver-path) <solverPath>] (-s|--source) source1:source2:...:sourceN  (-c|--classpath) <classpath> [(-t|--test) test1:test2:...:testN ] [--complianceLevel <complianceLevel>] [--maxTime <maxTime>] [--maxTimeType <maxTimeType>] [(-z|--flocal) < cocospoon|dumb|gzoltar>] [--output <outputFolder>] [--json[:<outputJson>]]
...

Please find the repair.log file in here.

--
Best,
Jose

Why my init step fails?

Dear authors,
Thanks for your great work!
Now I am trying to do some replicate experiments. But my init step fails as following:
image

Seems that it could not read from the GitHub repository of bugs.jar. I just don't know why it happens.

Remove checkout directory

Hi @tdurieux,

This is a feature request a not a bug report. Could you please make RepairThemAll remove the checkout/temporary directory at the end of each experiment? I've just noticed it does not do that and I'm pretty sure no one would like to end up with thousands of temporary directories. ๐Ÿ˜„

--
Thanks in advance,
Jose

Repair tools mismatch

Hi @tdurieux,

I have been debugging the root cause of some errors/exceptions thrown by some repair tools and I noticed that the binaries provided by the RTA infrastructure do not match the ones build from each official repository. For instance, there is one class named fr.inria.lille.repair.synthesis.collect.spoon.SuspiciousExpressionCollector in the provided nopol.jar file which does not exist in the official repository of the Nopol framework. Also, the following classes:

fr.inria.spirals.npefix.resi.PatchActivation
fr.inria.spirals.npefix.resi.ICSE2018$1
fr.inria.spirals.npefix.resi.ICSE2018$InheritanceModel
fr.inria.spirals.npefix.resi.AresDataset
fr.inria.spirals.npefix.resi.PatchActivationImpl
fr.inria.spirals.npefix.resi.PatchActivationListener
fr.inria.spirals.npefix.resi.ICSE2018
fr.inria.spirals.npefix.resi.WebsocketClient

do not exist in the official repository of the NPEFix framework but exist in the provided npefix.jar file.

Could you please double check whether the commit ids listed in here are indeed the ones you used? (Note: it is known the commit id of NPEFix and Arja is incorrect.)

--
Best,
Jose


Please find below a step-by-step to identify which provided jar files are not based on the commit ids described in here.

$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

$ mvn --version
Apache Maven 3.5.0 (Red Hat 3.5.0-4.3)

$ md5sum --version
md5sum (GNU coreutils) 8.22

$ mkdir "/tmp/repair_tools"

Nopol

$ mkdir "/tmp/repair_tools/nopol"

Get official Nopol

$ mkdir "/tmp/repair_tools/nopol/official"
$ cd "/tmp/repair_tools/nopol/official"
$ git clone https://github.com/SpoonLabs/nopol.git repository
$ cd "/tmp/repair_tools/nopol/official/repository/nopol"
$ git checkout 7ba58a78d099530e8f40d1d2b3b4531756f698c5
$ mvn package -DskipTests
$ cp "/tmp/repair_tools/nopol/official/repository/nopol/target/nopol-0.2-SNAPSHOT-jar-with-dependencies.jar" "/tmp/repair_tools/nopol/official/nopol.zip"
$ cd "/tmp/repair_tools/nopol/official"
$ unzip "nopol.zip"

Get RTA Nopol

$ mkdir "/tmp/repair_tools/nopol/rta"
$ cd "/tmp/repair_tools/nopol/rta"
$ curl -OL https://raw.githubusercontent.com/program-repair/RepairThemAll/master/repair_tools/nopol.jar
$ mv "nopol.jar" "nopol.zip"
$ unzip "nopol.zip"

RTA Nopol vs Official Nopol

$ cd "/tmp/repair_tools/nopol"

$ find rta/fr/inria/lille -type f | while read -r file; do \
    rta=$(md5sum "$file" | cut -f1 -d' '); \
    official=$(md5sum $(echo "$file" | sed 's|rta/|official/|g') | cut -f1 -d' '); \
    if [ "$rta" != "$official" ]; then \
      echo "$file :: $rta vs $official"; \
    fi; \
  done

md5sum: official/fr/inria/lille/repair/synthesis/collect/spoon/SuspiciousExpressionCollector.class: No such file or directory
rta/fr/inria/lille/repair/synthesis/collect/spoon/SuspiciousExpressionCollector.class :: 7a9c23ebf915f343d3224271de04cf2d vs
rta/fr/inria/lille/repair/synthesis/DynamothCodeGenesisImpl$1.class :: 5b9f3427b3ba13cc16d60e0a06f53547 vs bac9fd304ed80e1ed0ea601a92068c2e
rta/fr/inria/lille/repair/synthesis/DynamothCodeGenesisImpl$2.class :: 0af943457665cae3832346a5865a343d vs 6f12c943b7f5052cd815ec8dbabe62be
rta/fr/inria/lille/repair/synthesis/DynamothCodeGenesisImpl.class :: 366c7c5888abc76aa7ca7bf88beefee8 vs a029457dcb9169f54ae26b28ecc0311a

$ find rta/sacha -type f | while read -r file; do \
    rta=$(md5sum "$file" | cut -f1 -d' '); \
    official=$(md5sum $(echo "$file" | sed 's|rta/|official/|g') | cut -f1 -d' '); \
    if [ "$rta" != "$official" ]; then \
      echo "$file :: $rta vs $official"; \
    fi; \
  done


$ find rta/xxl/java -type f | while read -r file; do \
    rta=$(md5sum "$file" | cut -f1 -d' '); \
    official=$(md5sum $(echo "$file" | sed 's|rta/|official/|g') | cut -f1 -d' '); \
    if [ "$rta" != "$official" ]; then \
      echo "$file :: $rta vs $official"; \
    fi; \
  done

rta/xxl/java/junit/TestCasesListener.class :: ccd90101337d5da0d22948486370723b vs 9bba2c6082bc75cd94e7201b0213a64c

NPEFix

$ mkdir "/tmp/repair_tools/npefix"

Get official NPEFix

Note: As suggested in here, the script below checkouts commit id 00f977ec20e8b16672610706cfd330c9dcaeedd1.

$ mkdir "/tmp/repair_tools/npefix/official"
$ cd "/tmp/repair_tools/npefix/official"
$ git clone https://github.com/SpoonLabs/npefix.git repository
$ cd "/tmp/repair_tools/npefix/official/repository"
$ git checkout 00f977ec20e8b16672610706cfd330c9dcaeedd1
$ mvn package -DskipTests
$ cp "/tmp/repair_tools/npefix/official/repository/target/npefix-0.8-SNAPSHOT-jar-with-dependencies.jar" "/tmp/repair_tools/npefix/official/npefix.zip"
$ cd "/tmp/repair_tools/npefix/official"
$ unzip "npefix.zip"

Get RTA NPEFix

$ mkdir "/tmp/repair_tools/npefix/rta"
$ cd "/tmp/repair_tools/npefix/rta"
$ curl -OL https://raw.githubusercontent.com/program-repair/RepairThemAll/master/repair_tools/npefix.jar
$ mv "npefix.jar" "npefix.zip"
$ unzip "npefix.zip"

RTA NPEFix vs Official NPEFix

$ cd "/tmp/repair_tools/npefix"

$ find rta/utils -type f | while read -r file; do \
    rta=$(md5sum "$file" | cut -f1 -d' '); \
    official=$(md5sum $(echo "$file" | sed 's|rta/|official/|g') | cut -f1 -d' '); \
    if [ "$rta" != "$official" ]; then \
      echo "$file :: $rta vs $official"; \
    fi; \
  done


$ find rta/fr/inria/spirals/npefix -type f | while read -r file; do \
    rta=$(md5sum "$file" | cut -f1 -d' '); \
    official=$(md5sum $(echo "$file" | sed 's|rta/|official/|g') | cut -f1 -d' '); \
    if [ "$rta" != "$official" ]; then \
      echo "$file :: $rta vs $official"; \
    fi; \
  done

rta/fr/inria/spirals/npefix/resi/context/Lapse.class :: e4e44fde333c7bf96fc2fa37d4872408 vs 73580faeead094d389c087f37ab73a10
md5sum: official/fr/inria/spirals/npefix/resi/PatchActivation.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/PatchActivation.class :: ec8a2900ce9ce5822ad26dc700f191e9 vs
md5sum: official/fr/inria/spirals/npefix/resi/ICSE2018$1.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/ICSE2018$1.class :: 8f7be932a946c9a19db53cdfeb957675 vs
rta/fr/inria/spirals/npefix/resi/NPEFixTemplateEvaluation.class :: 5ec33151ab56b534c7c78124ecb02a0a vs d8b079f5bd868cf49411399b40e78777
md5sum: official/fr/inria/spirals/npefix/resi/ICSE2018$InheritanceModel.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/ICSE2018$InheritanceModel.class :: 35f3d5ef1396748c29fcb7e569e7e89e vs
md5sum: official/fr/inria/spirals/npefix/resi/AresDataset.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/AresDataset.class :: 86170e178bebff6d55ef6a93672b5b03 vs
md5sum: official/fr/inria/spirals/npefix/resi/PatchActivationImpl.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/PatchActivationImpl.class :: c8fe744ab5e6ee1447cddc4fe5f9afab vs
md5sum: official/fr/inria/spirals/npefix/resi/PatchActivationListener.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/PatchActivationListener.class :: d7bea8a894ce6b8d806fd82d0bd1aa6a vs
md5sum: official/fr/inria/spirals/npefix/resi/ICSE2018.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/ICSE2018.class :: 977eaec0cebed4bee7063a320b5cb273 vs
rta/fr/inria/spirals/npefix/resi/NPEFixTemplateEvaluation$1.class :: 23c2fceb6a0ddbce5ca1ef99d84546f0 vs a1a910e293659d561c38e77b3dacc62b
md5sum: official/fr/inria/spirals/npefix/resi/WebsocketClient.class: No such file or directory
rta/fr/inria/spirals/npefix/resi/WebsocketClient.class :: 352eb65950272bedae75600b0bdf232b vs
rta/fr/inria/spirals/npefix/resi/NPEFixTemplateEvaluation$NpePosition.class :: 39442b281c2b23ec94ae74045957af0f vs 83e64942b54db40be3c453a0bf97a15d
rta/fr/inria/spirals/npefix/transformer/processors/BeforeDerefAdder$3.class :: c77e7b848ad854043a06d0057833e544 vs 3641a5d60a2fc2f500177f7c8d69f629
rta/fr/inria/spirals/npefix/transformer/processors/BeforeDerefAdder$4.class :: 0b831176958e3cc48238da8142d2ee46 vs 77f7fe69fb7a299254d83a5699fe8462
rta/fr/inria/spirals/npefix/transformer/processors/BeforeDerefAdder$2.class :: d933ffe3575e2f4c9ce7ef31ad8e9ff6 vs e4bed11fe7ec9eeb2d23b7bc6c963b30
rta/fr/inria/spirals/npefix/transformer/processors/BeforeDerefAdder$1.class :: 6ecb53cf499c5c7f2005d43aa1f364f2 vs 17dd5406a39b0fb40a0dc9fcfbec3f56
rta/fr/inria/spirals/npefix/transformer/processors/BeforeDerefAdder.class :: bb748d656cbec1cf69400111559e90b9 vs 8003f9310501f934c920fd033579ed9d
rta/fr/inria/spirals/npefix/config/Config.class :: 9736bba74f9da265712cbef916dd34b3 vs 5411e4b4b967b955d04dc9dbb0961b20
rta/fr/inria/spirals/npefix/patch/generator/PatchesGenerator.class :: 3b74f91adae651ed1947dabc076de741 vs c81c7af1081d063e5bb39c1f0b1a9331
rta/fr/inria/spirals/npefix/main/run/Main.class :: 133d2bde4a63bb08353e5d56f9dcad6c vs f9a0bb742c8efea946f04ef63aa33ab8
rta/fr/inria/spirals/npefix/main/all/Launcher.class :: 1186ed0d9bb010a9d89fc23e5fe29806 vs 0a8a8c0db81c7409f9ce459936d29f72
rta/fr/inria/spirals/npefix/main/all/TryCatchRepairStrategy.class :: a5395f1dccacf99ad1d35b4d7520f5e2 vs 819d9cc08cf2120867c732e9bb589052
rta/fr/inria/spirals/npefix/main/all/DefaultRepairStrategy.class :: 52f89937f3b6b5be924a48e505f2470c vs 634fbad80643afaa3598d25cb702a11a
rta/fr/inria/spirals/npefix/main/patch/SortPatch.class :: 46a0ea731a8d40fa7a69f38db4e8d6ee vs 4c017c39563a4c2b88850dc4085423fd
rta/fr/inria/spirals/npefix/main/ExecutionClient.class :: 8bc7ac4f092f4d63acc4f737b285f7a6 vs f2a204c7591adff20fc4724ede417f6b
rta/fr/inria/spirals/npefix/main/ExecutionClient$1.class :: 500a55b11de5a2350763066665eb7723 vs 7fb846a8d4e3468e279ab417eddd5511

Astor

$ mkdir "/tmp/repair_tools/astor"

Get official Astor

$ mkdir "/tmp/repair_tools/astor/official"
$ cd "/tmp/repair_tools/astor/official"
$ git clone https://github.com/SpoonLabs/astor.git repository
$ cd "/tmp/repair_tools/astor/official/repository"
$ git checkout 26ee3dfc8b2d7ed4373f7cfe0d4bd5bcf31d9f28
$ mvn package -DskipTests
$ cp "/tmp/repair_tools/astor/official/repository/target/astor-0.0.2-SNAPSHOT-jar-with-dependencies.jar" "/tmp/repair_tools/astor/official/astor.zip"
$ cd "/tmp/repair_tools/astor/official"
$ unzip "astor.zip"

Get RTA Astor

$ mkdir "/tmp/repair_tools/astor/rta"
$ cd "/tmp/repair_tools/astor/rta"
$ curl -OL https://raw.githubusercontent.com/program-repair/RepairThemAll/master/repair_tools/astor.jar
$ mv "astor.jar" "astor.zip"
$ unzip "astor.zip"

RTA Astor vs Official Astor

$ cd "/tmp/repair_tools/astor"

$ find rta/fr/inria -type f | while read -r file; do \
    rta=$(md5sum "$file" | cut -f1 -d' '); \
    official=$(md5sum $(echo "$file" | sed 's|rta/|official/|g') | cut -f1 -d' '); \
    if [ "$rta" != "$official" ]; then \
      echo "$file :: $rta vs $official"; \
    fi; \
  done

As there is no difference, the provided astor.jar file seems to match the one build from the official repository.

Arja

$ mkdir "/tmp/repair_tools/arja"

Get official Arja

Note: As suggested in here, the script below checkouts commit id 918ad29c6c3f4cb7e202125fc71e53661a1146f4.

$ mkdir "/tmp/repair_tools/arja/official"
$ cd "/tmp/repair_tools/arja/official"
$ git clone https://github.com/yyxhdy/arja.git repository
$ cd "/tmp/repair_tools/arja/official/repository"
$ git checkout 918ad29c6c3f4cb7e202125fc71e53661a1146f4
$ mvn package -DskipTests
$ cp "/tmp/repair_tools/arja/official/repository/target/Arja-0.0.1-SNAPSHOT-jar-with-dependencies.jar" "/tmp/repair_tools/arja/official/arja.zip"
$ cd "/tmp/repair_tools/arja/official"
$ unzip "arja.zip"

Get RTA Arja

$ mkdir "/tmp/repair_tools/arja/rta"
$ cd "/tmp/repair_tools/arja/rta"
$ curl -OL https://raw.githubusercontent.com/program-repair/RepairThemAll/master/repair_tools/arja.jar
$ mv "arja.jar" "arja.zip"
$ unzip "arja.zip"

RTA Arja vs Official Arja

$ cd "/tmp/repair_tools/arja"

$ find rta/us/msu/cse/repair -type f | while read -r file; do \
    rta=$(md5sum "$file" | cut -f1 -d' '); \
    official=$(md5sum $(echo "$file" | sed 's|rta/|official/|g') | cut -f1 -d' '); \
    if [ "$rta" != "$official" ]; then \
      echo "$file :: $rta vs $official"; \
    fi; \
  done

rta/us/msu/cse/repair/algorithms/kali/Kali$1.class :: b0ef2825bad281969873332e787ea132 vs 4b3a8b237aa3dfd7dff50f18f45a8662
rta/us/msu/cse/repair/algorithms/kali/Kali.class :: 5a1c2505682200d815989c45dd1afed3 vs 039c21fc9a2e871d052f65accf6ab8b4
rta/us/msu/cse/repair/core/util/IO.class :: 4f3282acbf27d9c31d3051954b8678fe vs 89483926803278df57d7339ac8a2b2ce
rta/us/msu/cse/repair/ec/problems/ArjaProblem$1.class :: 47a13c2d672750a9517e801dde1a2988 vs 8f21ada3f6642114a497362d5de23d7b
rta/us/msu/cse/repair/ec/problems/GenProgProblem.class :: f8c89dcab82b734ee8d2a830f78d9e97 vs abc3c563a149988bdb21dd2333d29a98
rta/us/msu/cse/repair/ec/problems/ArjaProblem.class :: cb024b5ce4efb5817ff01db4352cdf49 vs a0b40e8070033a1afca183ccdcc334de
rta/us/msu/cse/repair/ParameterInfoMain.class :: e6b651bc44cb67ede10e6cb1a3d81aaa vs 59c208562a21d4f63dd7bc567c37411f
rta/us/msu/cse/repair/ArjaMain.class :: c228acdc160021d18072ddcdeb23d874 vs 918ef946e2ac9294c44b258dc2c84614
rta/us/msu/cse/repair/Interpreter.class :: db60ea46c3b7171dba97cdca05a08d2d vs 72ba0053160664498cdafb06db771138

A new bug in the new version?

Hi everyone,
I cloned the repository yesterday and succeeded in running in Quixbugs benchmark.
However, when I try to run in Defects4J benchmark, there is an error like:

Traceback (most recent call last):
  File "/home/wp/RepairThemAll/script/core/runner/local/LocalRunner.py", line 41, in run
    task.run()
  File "/home/wp/RepairThemAll/script/core/runner/RepairTask.py", line 30, in run
    return self.tool.repair(self)
  File "/home/wp/RepairThemAll/script/core/repair_tools/Astor.py", line 48, in repair
    classpath = bug.classpath()
  File "/home/wp/RepairThemAll/script/core/Bug.py", line 59, in classpath
    return self.benchmark.classpath(self)
  File "/home/wp/RepairThemAll/script/core/benchmarks/Defects4J.py", line 184, in classpath
    libs_split = subprocess.check_output(cmd, shell=True, stderr=FNULL).split(":")
  File "/usr/lib/python2.7/subprocess.py", line 223, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command 'export PATH="/usr/java/jdk1.7.0_80/bin/:/home/wp/RepairThemAll/script/../benchmarks/defects4j/framework/bin:$PATH";export JAVA_HOME="/usr/java/jdk1.7.0_80/bin/..";
        cd /tmp/jKali_Defects4J_Math_48;
        defects4j export -p cp.test 2> /dev/null;
        ' returned non-zero exit status 2

Seems that this is a new bug after you updated the files last week.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.