From c294067862d2ce449cb07e719ab6e0d49e6a7dde Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Wed, 4 Sep 2024 22:00:28 -0700 Subject: [PATCH 1/7] Set default Java target to 6 --- framework/core/Project/Cli.pm | 8 ++++++++ framework/core/Project/Closure.pm | 8 ++++++++ framework/core/Project/Codec.pm | 3 +++ framework/core/Project/Compress.pm | 4 ++++ framework/core/Project/Csv.pm | 4 ++++ framework/core/Project/Gson.pm | 4 ++++ framework/core/Project/Jsoup.pm | 4 ++++ framework/core/Project/Lang.pm | 7 +++++++ framework/core/Project/Math.pm | 16 +++++++++++++++- framework/core/Project/Mockito.pm | 12 ++++++++++-- framework/core/Project/Time.pm | 8 ++++++++ 11 files changed, 75 insertions(+), 3 deletions(-) diff --git a/framework/core/Project/Cli.pm b/framework/core/Project/Cli.pm index d5ffb86ae..81e4fba8c 100644 --- a/framework/core/Project/Cli.pm +++ b/framework/core/Project/Cli.pm @@ -145,6 +145,14 @@ sub _post_checkout { print OUT $converted_file; close(OUT); } + + # Set default Java target to 6. + # either these: + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + # or these: + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/build.xml"); } # diff --git a/framework/core/Project/Closure.pm b/framework/core/Project/Closure.pm index 4065552d9..4e1286148 100644 --- a/framework/core/Project/Closure.pm +++ b/framework/core/Project/Closure.pm @@ -79,6 +79,14 @@ sub _post_checkout { open FH, ">$work_dir/build.xml" or die $!; print FH $build_file; close FH; + + # Set default Java target to 6. + # either these: + Utils::sed_cmd("s/source-level: 1\.[1-5]/source-level 1.6/", "$work_dir/lib/rhino/build.properties"); + Utils::sed_cmd("s/target-jvm: 1\.[1-5]/target-jvm 1.6/", "$work_dir/lib/rhino/build.properties"); + # or these: + Utils::sed_cmd("s/source-level: 1\.[1-5]/source-level 1.6/", "$work_dir/lib/rhino/src/mozilla/js/rhino/build.properties"); + Utils::sed_cmd("s/target-jvm: 1\.[1-5]/target-jvm 1.6/", "$work_dir/lib/rhino/src/mozilla/js/rhino/build.properties"); } 1; diff --git a/framework/core/Project/Codec.pm b/framework/core/Project/Codec.pm index b3f325be6..32da1b56f 100644 --- a/framework/core/Project/Codec.pm +++ b/framework/core/Project/Codec.pm @@ -125,6 +125,9 @@ sub _post_checkout { close(OUT); } } + + # Set default Java target to 6. + Utils::sed_cmd("s/1\.[1-5]/1.6/", "$work_dir/default.properties"); } # diff --git a/framework/core/Project/Compress.pm b/framework/core/Project/Compress.pm index aa808a0a0..44362adbe 100644 --- a/framework/core/Project/Compress.pm +++ b/framework/core/Project/Compress.pm @@ -91,6 +91,10 @@ sub _post_checkout { Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die; } } + + # Set default Java target to 6. + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); } # diff --git a/framework/core/Project/Csv.pm b/framework/core/Project/Csv.pm index 98e456a3f..14617f074 100644 --- a/framework/core/Project/Csv.pm +++ b/framework/core/Project/Csv.pm @@ -92,6 +92,10 @@ sub _post_checkout { Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die; } } + + # Set default Java target to 6. + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); } # diff --git a/framework/core/Project/Gson.pm b/framework/core/Project/Gson.pm index df324dba5..d8755c3cb 100644 --- a/framework/core/Project/Gson.pm +++ b/framework/core/Project/Gson.pm @@ -73,6 +73,10 @@ sub _post_checkout { Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die; } } + + # Set default Java target to 6. + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); } # diff --git a/framework/core/Project/Jsoup.pm b/framework/core/Project/Jsoup.pm index 4290634c2..e224435d1 100644 --- a/framework/core/Project/Jsoup.pm +++ b/framework/core/Project/Jsoup.pm @@ -71,6 +71,10 @@ sub _post_checkout { Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die; } } + + # Set default Java target to 6. + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); } # diff --git a/framework/core/Project/Lang.pm b/framework/core/Project/Lang.pm index 0f8056846..abf36e258 100644 --- a/framework/core/Project/Lang.pm +++ b/framework/core/Project/Lang.pm @@ -112,6 +112,13 @@ sub _post_checkout { unless (-e "$work_dir/build.xml") { system("cp $PROJECTS_DIR/$PID/build_files/$revision_id/* $work_dir"); } + + # Set default Java target to 6. + # either these: + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + # or this + Utils::sed_cmd("s/1\.[1-5]/1.6/", "$work_dir/default.properties"); } # diff --git a/framework/core/Project/Math.pm b/framework/core/Project/Math.pm index 19eaeea0c..e0f895840 100644 --- a/framework/core/Project/Math.pm +++ b/framework/core/Project/Math.pm @@ -50,7 +50,8 @@ sub new { my $name = "commons-math"; my $vcs = Vcs::Git->new($PID, "$REPO_DIR/$name.git", - "$PROJECTS_DIR/$PID/$BUGS_CSV_ACTIVE"); + "$PROJECTS_DIR/$PID/$BUGS_CSV_ACTIVE", + \&_post_checkout); return $class->SUPER::new($PID, $name, $vcs); } @@ -101,6 +102,19 @@ sub _layout2 { return {src=>$src, test=>$test}; } +sub _post_checkout { + my ($self, $revision_id, $work_dir) = @_; + my $vid = $self->{_vcs}->lookup_vid($revision_id); + + # Convert the file encoding of problematic files + my $result = determine_layout($self, $revision_id); + Utils::convert_file_encoding($work_dir."/".$result->{src}."/org/apache/commons/math3/stat/correlation/StorelessBivariateCovariance.java"); + Utils::convert_file_encoding($work_dir."/".$result->{src}."/org/apache/commons/math3/stat/correlation/StorelessCovariance.java"); + + # Set default Java target to 6. + Utils::sed_cmd("s/value=\\\"1\.[1-5]\\\"/value=\\\"1.6\\\"/", "$work_dir/build.xml"); +} + # # Remove looping tests in addition to the broken ones # diff --git a/framework/core/Project/Mockito.pm b/framework/core/Project/Mockito.pm index ac901f12b..a575bc522 100644 --- a/framework/core/Project/Mockito.pm +++ b/framework/core/Project/Mockito.pm @@ -97,8 +97,16 @@ sub _post_checkout { system("sed -i.bak s/org.gradle.daemon=true/org.gradle.daemon=false/g \"$work_dir/gradle.properties\""); } - # Enable local repository - system("find $work_dir -type f -name \"build.gradle\" -exec sed -i.bak 's|jcenter()|maven { url \"$BUILD_SYSTEMS_LIB_DIR/gradle/deps\" }\\\n maven { url \"https://jcenter.bintray.com/\" }\\\n|g' {} \\;"); + # Set default Java target to 6. + # some bids use gradle: + Utils::sed_cmd("s/sourceCompatibility = 1\.[1-5]/sourceCompatibility=1.6/", "$work_dir/build.gradle"); + Utils::sed_cmd("s/targetCompatibility = 1\.[1-5]/targetCompatibility=1.6/", "$work_dir/build.gradle"); + Utils::sed_cmd("s/gradle-1.12-bin/gradle-4.9-bin/", "$work_dir/gradle/wrapper/gradle-wrapper.properties"); + Utils::sed_cmd("s/gradle-2.2.1-all/gradle-4.9-bin/", "$work_dir/gradle/wrapper/gradle-wrapper.properties"); + Utils::sed_cmd("s/0.7-groovy-1.8/1.1-groovy-2.4/", "$work_dir/buildSrc/build.gradle"); + # and some don't: + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/build.xml"); } sub determine_layout { diff --git a/framework/core/Project/Time.pm b/framework/core/Project/Time.pm index a9e552321..56f6c10a2 100644 --- a/framework/core/Project/Time.pm +++ b/framework/core/Project/Time.pm @@ -81,6 +81,14 @@ sub _post_checkout { Utils::exec_cmd("cp $filename $work_dir/build.xml", "Fix broken build") or die; } + + # Set default Java target to 6. + # either these: + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml"); + # or these: + Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/build.xml"); + Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/build.xml"); } sub determine_layout { From 5a08354a1c5ab108d876774b40b06a1bd2df93f5 Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Wed, 4 Sep 2024 22:02:05 -0700 Subject: [PATCH 2/7] Set default Java target to 6 --- framework/projects/Chart/Chart.build.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/framework/projects/Chart/Chart.build.xml b/framework/projects/Chart/Chart.build.xml index f0297a11d..d1d67a906 100644 --- a/framework/projects/Chart/Chart.build.xml +++ b/framework/projects/Chart/Chart.build.xml @@ -53,8 +53,8 @@ of the checked-out project version. destdir="${d4j.workdir}/build" debug="on" deprecation="false" - source="1.4" - target="1.4"> + source="1.6" + target="1.6"> @@ -102,8 +102,8 @@ of the checked-out project version. destdir="${d4j.workdir}/build" debug="on" deprecation="false" - source="1.4" - target="1.4"> + source="1.6" + target="1.6"> @@ -116,8 +116,8 @@ of the checked-out project version. From c2792ffbcfbf359caf126f2f1b5570e44d6108e7 Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Wed, 4 Sep 2024 22:03:08 -0700 Subject: [PATCH 3/7] Define sed_cmd --- framework/core/Utils.pm | 65 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/framework/core/Utils.pm b/framework/core/Utils.pm index 6e7403922..70cd3e699 100644 --- a/framework/core/Utils.pm +++ b/framework/core/Utils.pm @@ -276,6 +276,69 @@ sub print_env { =pod +=item C + +Print the current Perl execution stack trace to F. + +=cut + +sub print_perl_call_stack { + my ($package, $filename, $line, $subroutine, $hasargs, $wantarray, $evaltext, $is_require, $hints, $bitmask, $hinthash); + my $i = 1; + my @r; + while (@r = caller($i)) { + ($package, $filename, $line, $subroutine, $hasargs, $wantarray, $evaltext, $is_require, $hints, $bitmask, $hinthash) = @r; + print(STDERR "$filename:$line $subroutine\n"); + $i++; + } +} + +=pod + +=item C + +Copies the original file to .bak then converts +the encoding of file_name from iso-8859-1 to utf-8. + +=cut + +sub convert_file_encoding { + @_ == 1 or die $ARG_ERROR; + my ($file_name) = @_; + if (-e $file_name){ + rename($file_name, $file_name.".bak"); + open(OUT, '>'.$file_name) or die $!; + my $converted_file = `iconv -f iso-8859-1 -t utf-8 $file_name.bak`; + print OUT $converted_file; + close(OUT); + } +} + +=pod + +=item C + +Uses sed with cmd_string to modify file_name. + +=cut + +sub sed_cmd { + @_ == 2 || die $ARG_ERROR; + my ($cmd_string, $file_name) = @_; + + print(STDERR "About to execute command: sed -i $cmd_string $file_name\n") if $DEBUG; + + # We ignore sed result as it is ok if command fails. + chomp(my $uname = `uname -s`); + if ($uname eq "Darwin" ) { + `sed -i '' -e '$cmd_string' $file_name`; + } else { + `sed -i "$cmd_string" "$file_name"`; + } +} + +=pod + =item C Returns true if this process is running under continuous integration. @@ -342,7 +405,7 @@ sub fix_dependency_urls { exec_cmd("cp $build_file $build_file.bak", "Backing up build file: $build_file"); $modified = 1; } - print(STDERR "Pattern matches in build file ($build_file): $$_[0]\n"); + print(STDERR "Pattern matches in build file ($build_file): $$_[0]\n") if $DEBUG; $lines[$i] = $l; last; } From 22ae661ee0df0749920b851651824db52253f638 Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Wed, 4 Sep 2024 22:26:06 -0700 Subject: [PATCH 4/7] Fix file encodings --- framework/core/Project/Codec.pm | 18 ++++---------- framework/core/Project/Lang.pm | 42 ++++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/framework/core/Project/Codec.pm b/framework/core/Project/Codec.pm index 32da1b56f..80a78f988 100644 --- a/framework/core/Project/Codec.pm +++ b/framework/core/Project/Codec.pm @@ -95,20 +95,10 @@ sub _post_checkout { # Convert the file encoding of problematic files my $result = determine_layout($self, $rev_id); - if (-e $work_dir."/".$result->{test}."/org/apache/commons/codec/language/DoubleMetaphoneTest.java"){ - rename($work_dir."/".$result->{test}."/org/apache/commons/codec/language/DoubleMetaphoneTest.java", $work_dir."/".$result->{test}."/org/apache/commons/codec/language/DoubleMetaphoneTest.java".".bak"); - open(OUT, '>'.$work_dir."/".$result->{test}."/org/apache/commons/codec/language/DoubleMetaphoneTest.java") or die $!; - my $converted_file = `iconv -f iso-8859-1 -t utf-8 $work_dir"/"$result->{test}"/org/apache/commons/codec/language/DoubleMetaphoneTest.java.bak"`; - print OUT $converted_file; - close(OUT); - } - if (-e $work_dir."/".$result->{test}."/org/apache/commons/codec/language/SoundexTest.java"){ - rename($work_dir."/".$result->{test}."/org/apache/commons/codec/language/SoundexTest.java", $work_dir."/".$result->{test}."/org/apache/commons/codec/language/SoundexTest.java".".bak"); - open(OUT, '>'.$work_dir."/".$result->{test}."/org/apache/commons/codec/language/SoundexTest.java") or die $!; - my $converted_file = `iconv -f iso-8859-1 -t utf-8 $work_dir"/"$result->{test}"/org/apache/commons/codec/language/SoundexTest.java.bak"`; - print OUT $converted_file; - close(OUT); - } + Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/binary/Base64Test.java"); + Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/ColognePhoneticTest.java"); + Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/DoubleMetaphoneTest.java"); + Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/SoundexTest.java"); # Copy in a missing dependency if (-d $work_dir."/src/main/resources"){ diff --git a/framework/core/Project/Lang.pm b/framework/core/Project/Lang.pm index abf36e258..fdda1dfd9 100644 --- a/framework/core/Project/Lang.pm +++ b/framework/core/Project/Lang.pm @@ -39,6 +39,7 @@ use warnings; use Constants; use Vcs::Git; +use File::Path 'rmtree'; our @ISA = qw(Project); my $PID = "Lang"; @@ -107,10 +108,49 @@ sub _layout2 { # sub _post_checkout { my ($self, $revision_id, $work_dir) = @_; + my $vid = $self->{_vcs}->lookup_vid($revision_id); + + # Convert the file encoding of problematic files + my $result = determine_layout($self, $revision_id); + Utils::convert_file_encoding($work_dir."/".$result->{src}."/org/apache/commons/lang3/text/translate/EntityArrays.java"); + Utils::convert_file_encoding($work_dir."/".$result->{src}."/org/apache/commons/lang/Entities.java"); + + # Some of the Lang tests were created pre Java 1.5 and contain an 'enum' package. + # The is now a reserved word in Java so we convert all references to 'oldenum'. + my $cmd = "grep -lR '\.enum;' $work_dir'/'$result->{src}'/org/apache/commons/lang/enum/'"; + my $log = `$cmd`; + my $ret = $?; + if ($ret == 0 && length($log) > 0) { + Utils::exec_cmd("grep -lR '\\.enum;' $work_dir'/'$result->{src}'/org/apache/commons/lang/enum/' | xargs sed -i'.bak' 's/\\.enum;/\\.oldenum;/'", "Rename enum 1") or die; + } + + $cmd = "grep -lR '\.enum;' $work_dir'/'$result->{test}'/org/apache/commons/lang/enum/'"; + $log = `$cmd`; + $ret = $?; + if ($ret == 0 && length($log) > 0) { + Utils::exec_cmd("grep -lR '\\.enum;' $work_dir'/'$result->{test}'/org/apache/commons/lang/enum/' | xargs sed -i'.bak' 's/\\.enum;/\\.oldenum;/'", "Rename enum 2") or die; + } + + # Fix compilation errors if necessary + my $compile_errors = "$PROJECTS_DIR/$self->{pid}/compile-errors/"; + opendir(DIR, $compile_errors) or die "Could not find compile-errors directory."; + my @entries = readdir(DIR); + closedir(DIR); + foreach my $file (@entries) { + if ($file =~ /-(\d+)-(\d+).diff/) { + if ($vid >= $1 && $vid <= $2) { + $self->apply_patch($work_dir, "$compile_errors/$file") + or confess("Couldn't apply patch ($file): $!"); + } + } + } # Check whether ant build file exists unless (-e "$work_dir/build.xml") { - system("cp $PROJECTS_DIR/$PID/build_files/$revision_id/* $work_dir"); + my $build_files_dir = "$PROJECTS_DIR/$PID/build_files/$revision_id"; + if (-d "$build_files_dir") { + Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die; + } } # Set default Java target to 6. From f284721c22d9613e15ffa22a7bc3723aaf106aa4 Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Wed, 4 Sep 2024 22:40:11 -0700 Subject: [PATCH 5/7] Add compile-error files --- framework/core/Project/Closure.pm | 15 ++++ framework/core/Vcs.pm | 25 +++++++ .../Closure/compile-errors/test-134-154.diff | 13 ++++ .../Closure/compile-errors/test-79-105.diff | 13 ++++ .../DateDeserialization-90-99.diff | 40 ++++++++++ .../NodeContext2049Test-98-101.diff | 13 ++++ .../SimpleModuleTest-80-81.diff | 22 ++++++ .../compile-errors/TestSOAP-16-94.diff | 26 +++++++ .../TestTypeFactory-23-112.diff | 21 ++++++ .../compile-errors/classLoader1-1-57.diff | 30 ++++++++ .../compile-errors/classLoader2-58-62.diff | 31 ++++++++ .../compile-errors/classLoader2a-69-69.diff | 31 ++++++++ .../compile-errors/classLoader2b-71-79.diff | 31 ++++++++ .../compile-errors/classLoader2c-92-94.diff | 31 ++++++++ .../compile-errors/classLoader3-63-99.diff | 31 ++++++++ .../compile-errors/test-93-97.diff | 13 ---- .../compile-errors/test-99-109.diff | 13 ---- .../compile-errors/testIgnorals1-50-61.diff | 13 ++++ .../compile-errors/testIgnorals2-63-99.diff | 13 ++++ ...-111-112.diff => testJDKTypes-93-112.diff} | 0 .../compile-errors/testStackTrace1-1-94.diff | 13 ++++ .../compile-errors/testStackTrace2-59-99.diff | 13 ++++ .../Lang/compile-errors/test-1-10.diff | 71 ++++++++++++++++++ .../Lang/compile-errors/test-1-4.diff | 12 +++ .../Lang/compile-errors/test-14-16.diff | 71 ++++++++++++++++++ .../Lang/compile-errors/test-17-20.diff | 73 +++++++++++++++++++ .../Lang/compile-errors/test-21-21.diff | 67 +++++++++++++++++ .../Lang/compile-errors/test-42-65.diff | 14 ++++ .../Lang/compile-errors/test-44-48.diff | 19 +++++ .../Lang/compile-errors/test-5-27.diff | 12 +++ .../Lang/compile-errors/test-65-65.diff | 16 ++++ 31 files changed, 780 insertions(+), 26 deletions(-) create mode 100644 framework/projects/Closure/compile-errors/test-134-154.diff create mode 100644 framework/projects/Closure/compile-errors/test-79-105.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/DateDeserialization-90-99.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/NodeContext2049Test-98-101.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/SimpleModuleTest-80-81.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/TestSOAP-16-94.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/TestTypeFactory-23-112.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/classLoader1-1-57.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/classLoader2-58-62.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/classLoader2a-69-69.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/classLoader2b-71-79.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/classLoader2c-92-94.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/classLoader3-63-99.diff delete mode 100644 framework/projects/JacksonDatabind/compile-errors/test-93-97.diff delete mode 100644 framework/projects/JacksonDatabind/compile-errors/test-99-109.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/testIgnorals1-50-61.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/testIgnorals2-63-99.diff rename framework/projects/JacksonDatabind/compile-errors/{test-111-112.diff => testJDKTypes-93-112.diff} (100%) create mode 100644 framework/projects/JacksonDatabind/compile-errors/testStackTrace1-1-94.diff create mode 100644 framework/projects/JacksonDatabind/compile-errors/testStackTrace2-59-99.diff create mode 100644 framework/projects/Lang/compile-errors/test-1-10.diff create mode 100644 framework/projects/Lang/compile-errors/test-1-4.diff create mode 100644 framework/projects/Lang/compile-errors/test-14-16.diff create mode 100644 framework/projects/Lang/compile-errors/test-17-20.diff create mode 100644 framework/projects/Lang/compile-errors/test-21-21.diff create mode 100644 framework/projects/Lang/compile-errors/test-42-65.diff create mode 100644 framework/projects/Lang/compile-errors/test-44-48.diff create mode 100644 framework/projects/Lang/compile-errors/test-5-27.diff create mode 100644 framework/projects/Lang/compile-errors/test-65-65.diff diff --git a/framework/core/Project/Closure.pm b/framework/core/Project/Closure.pm index 4e1286148..688f32b66 100644 --- a/framework/core/Project/Closure.pm +++ b/framework/core/Project/Closure.pm @@ -68,6 +68,7 @@ sub determine_layout { sub _post_checkout { @_ == 3 or die $ARG_ERROR; my ($self, $rev_id, $work_dir) = @_; + my $vid = $self->{_vcs}->lookup_vid($rev_id); open FH, "$work_dir/build.xml" or die $!; my $build_file = do { local $/; }; @@ -80,6 +81,20 @@ sub _post_checkout { print FH $build_file; close FH; + # Fix compilation errors if necessary + my $compile_errors = "$PROJECTS_DIR/$self->{pid}/compile-errors/"; + opendir(DIR, $compile_errors) or die "Could not find compile-errors directory."; + my @entries = readdir(DIR); + closedir(DIR); + foreach my $file (@entries) { + if ($file =~ /-(\d+)-(\d+).diff/) { + if ($vid >= $1 && $vid <= $2) { + $self->apply_patch($work_dir, "$compile_errors/$file") + or confess("Couldn't apply patch ($file): $!"); + } + } + } + # Set default Java target to 6. # either these: Utils::sed_cmd("s/source-level: 1\.[1-5]/source-level 1.6/", "$work_dir/lib/rhino/build.properties"); diff --git a/framework/core/Vcs.pm b/framework/core/Vcs.pm index 05d31aba5..13b05c91f 100644 --- a/framework/core/Vcs.pm +++ b/framework/core/Vcs.pm @@ -398,9 +398,34 @@ sub _apply_cmd { $log .= "* $cmd\n"; $log .= `$cmd`; if ($? == 0) { + print(STDERR "patch applied: $patch_file\n") if $DEBUG; return("cd $work_dir; git apply -p$n $patch_file 2>&1"); } } + # The code above checks for an exact match before patching + # but if we're patching to fix compile errors, because of using + # newer versions of the JDK, we want to use a 'fuzzy' match. + # Also, if a 'compile-errors' patch doesn't apply, we skip + # it rather than report an error. This allows us to significantly + # reduce the number of unique patches in the compile-errors directory. + if (index($patch_file, "compile-errors") != -1) { + # We have a 'compile-errors' patch. Reset the log file. + $log = ""; + my $cmd = "cd $work_dir; patch -p1 --dry-run -l < $patch_file 2>&1"; + $log .= "* $cmd\n"; + #print "\nlog: $log\n\n"; + $log .= `$cmd`; + if ($? == 0) { + print(STDERR "patch applied: $patch_file\n") if $DEBUG; + return("cd $work_dir; patch -p1 -l < $patch_file 2>&1"); + } else { + #print "\nlog: $log\n\n"; + # Patch doesn't apply, just skip it. + print(STDERR "patch skipped: $patch_file\n") if $DEBUG; + return("echo patch skipped"); + } + } + confess("Cannot determine how to apply patch!\n" . "All attempts failed:\n$log" . "-" x 70 . "\n"); } diff --git a/framework/projects/Closure/compile-errors/test-134-154.diff b/framework/projects/Closure/compile-errors/test-134-154.diff new file mode 100644 index 000000000..cf2ad51a7 --- /dev/null +++ b/framework/projects/Closure/compile-errors/test-134-154.diff @@ -0,0 +1,13 @@ +diff --git a/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java b/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java +index e07b13513..0dd914e4b 100644 +--- a/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java ++++ b/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java +@@ -659,7 +659,7 @@ public class DataFlowAnalysisTest extends TestCase { + assertTrue(outEdges.size() < 2); + ConstPropLatticeElement aResult = flowThroughArithmeticInstruction( + (ArithmeticInstruction) node, input); +- for (DiGraphEdge _ : outEdges) { ++ for (int i = 0; i < outEdges.size(); i++) { + result.add(aResult); + } + } else { diff --git a/framework/projects/Closure/compile-errors/test-79-105.diff b/framework/projects/Closure/compile-errors/test-79-105.diff new file mode 100644 index 000000000..cf2ad51a7 --- /dev/null +++ b/framework/projects/Closure/compile-errors/test-79-105.diff @@ -0,0 +1,13 @@ +diff --git a/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java b/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java +index e07b13513..0dd914e4b 100644 +--- a/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java ++++ b/test/com/google/javascript/jscomp/DataFlowAnalysisTest.java +@@ -659,7 +659,7 @@ public class DataFlowAnalysisTest extends TestCase { + assertTrue(outEdges.size() < 2); + ConstPropLatticeElement aResult = flowThroughArithmeticInstruction( + (ArithmeticInstruction) node, input); +- for (DiGraphEdge _ : outEdges) { ++ for (int i = 0; i < outEdges.size(); i++) { + result.add(aResult); + } + } else { diff --git a/framework/projects/JacksonDatabind/compile-errors/DateDeserialization-90-99.diff b/framework/projects/JacksonDatabind/compile-errors/DateDeserialization-90-99.diff new file mode 100644 index 000000000..b2aaeb243 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/DateDeserialization-90-99.diff @@ -0,0 +1,40 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/DateDeserializationTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/DateDeserializationTest.java +index 8a7a0b5ca..040679cda 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/DateDeserializationTest.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/DateDeserializationTest.java +@@ -119,7 +119,7 @@ public class DateDeserializationTest + public void testDateUtilISO8601_DateTimeMillis() throws Exception + { + // WITH timezone (from 4 to 0 digits) +- failure(MAPPER, "2000-01-02T03:04:05.6789+01:00"); ++ //failure(MAPPER, "2000-01-02T03:04:05.6789+01:00"); + verify( MAPPER, "2000-01-02T03:04:05.678+01:00", judate(2000, 1, 2, 3, 4, 5, 678, "GMT+1")); + verify( MAPPER, "2000-01-02T03:04:05.67+01:00", judate(2000, 1, 2, 3, 4, 5, 670, "GMT+1")); + verify( MAPPER, "2000-01-02T03:04:05.6+01:00", judate(2000, 1, 2, 3, 4, 5, 600, "GMT+1")); +@@ -234,7 +234,7 @@ public class DateDeserializationTest + + // seconds (+01:00) + failure(MAPPER, "2000-01-02T03:04:5+01:00"); +- failure(MAPPER, "2000-01-02T03:04:5.000+01:00"); ++ //failure(MAPPER, "2000-01-02T03:04:5.000+01:00"); + failure(MAPPER, "2000-01-02T03:04:005+01:00"); + + // seconds (Z) +@@ -250,7 +250,7 @@ public class DateDeserializationTest + + // minutes (+01:00) + failure(MAPPER, "2000-01-02T03:4:05+01:00"); +- failure(MAPPER, "2000-01-02T03:4:05.000+01:00"); ++ //failure(MAPPER, "2000-01-02T03:4:05.000+01:00"); + failure(MAPPER, "2000-01-02T03:004:05+01:00"); + + // minutes (Z) +@@ -266,7 +266,7 @@ public class DateDeserializationTest + + // hour (+01:00) + failure(MAPPER, "2000-01-02T3:04:05+01:00"); +- failure(MAPPER, "2000-01-02T3:04:05.000+01:00"); ++ //failure(MAPPER, "2000-01-02T3:04:05.000+01:00"); + failure(MAPPER, "2000-01-02T003:04:05+01:00"); + + // hour (Z) diff --git a/framework/projects/JacksonDatabind/compile-errors/NodeContext2049Test-98-101.diff b/framework/projects/JacksonDatabind/compile-errors/NodeContext2049Test-98-101.diff new file mode 100644 index 000000000..b1c0d00a1 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/NodeContext2049Test-98-101.diff @@ -0,0 +1,13 @@ +diff --git a/src/test/java/com/fasterxml/jackson/failing/NodeContext2049Test.java b/src/test/java/com/fasterxml/jackson/failing/NodeContext2049Test.java +index ab198d492..f60b9f381 100644 +--- a/src/test/java/com/fasterxml/jackson/failing/NodeContext2049Test.java ++++ b/src/test/java/com/fasterxml/jackson/failing/NodeContext2049Test.java +@@ -134,7 +134,7 @@ public class NodeContext2049Test extends BaseMapTest + private ObjectMapper objectMapper; + { + objectMapper = new ObjectMapper(); +- objectMapper.registerModule(new Module() { ++ objectMapper.registerModule(new com.fasterxml.jackson.databind.Module() { + @Override + public String getModuleName() { + return "parentSetting"; diff --git a/framework/projects/JacksonDatabind/compile-errors/SimpleModuleTest-80-81.diff b/framework/projects/JacksonDatabind/compile-errors/SimpleModuleTest-80-81.diff new file mode 100644 index 000000000..ad7b6fff4 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/SimpleModuleTest-80-81.diff @@ -0,0 +1,22 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/module/SimpleModuleTest.java b/src/test/java/com/fasterxml/jackson/databind/module/SimpleModuleTest.java +index 505a9a2d9..71ebfb9c0 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/module/SimpleModuleTest.java ++++ b/src/test/java/com/fasterxml/jackson/databind/module/SimpleModuleTest.java +@@ -241,7 +241,7 @@ public class SimpleModuleTest extends BaseMapTest + SimpleModule mod = new SimpleModule("test", Version.unknownVersion()); + mod.addSerializer(new BaseSerializer()); + // and another variant here too +- List mods = Arrays.asList((Module) mod); ++ List mods = Arrays.asList((com.fasterxml.jackson.databind.Module) mod); + mapper.registerModules(mods); + assertEquals(quote("Base:1"), mapper.writeValueAsString(new Impl1())); + assertEquals(quote("Base:2"), mapper.writeValueAsString(new Impl2())); +@@ -340,7 +340,7 @@ public class SimpleModuleTest extends BaseMapTest + + public void testAutoDiscovery() throws Exception + { +- List mods = ObjectMapper.findModules(); ++ List mods = ObjectMapper.findModules(); + assertEquals(0, mods.size()); + } + } diff --git a/framework/projects/JacksonDatabind/compile-errors/TestSOAP-16-94.diff b/framework/projects/JacksonDatabind/compile-errors/TestSOAP-16-94.diff new file mode 100644 index 000000000..11fb3e5e9 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/TestSOAP-16-94.diff @@ -0,0 +1,26 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/ext/TestSOAP.java b/src/test/java/com/fasterxml/jackson/databind/ext/TestSOAP.java +index eb78c19ae..8dea50796 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/ext/TestSOAP.java ++++ b/src/test/java/com/fasterxml/jackson/databind/ext/TestSOAP.java +@@ -1,20 +1,10 @@ + package com.fasterxml.jackson.databind.ext; + +-import javax.xml.soap.Detail; +-import javax.xml.soap.SOAPException; +-import javax.xml.soap.SOAPFactory; +- + import com.fasterxml.jackson.core.JsonProcessingException; + import com.fasterxml.jackson.databind.ObjectMapper; + + public class TestSOAP extends com.fasterxml.jackson.databind.BaseMapTest { + +- public void testSerializeSOAP() throws SOAPException, JsonProcessingException { +- ObjectMapper objectMapper = new ObjectMapper(); +- SOAPFactory fac = SOAPFactory.newInstance(); +- Detail detailElement = fac.createDetail(); +- detailElement.setTextContent("test"); +- String result = objectMapper.writer().writeValueAsString(detailElement); +- assertNotNull(result); ++ public void testSerializeSOAP() { + } + } diff --git a/framework/projects/JacksonDatabind/compile-errors/TestTypeFactory-23-112.diff b/framework/projects/JacksonDatabind/compile-errors/TestTypeFactory-23-112.diff new file mode 100644 index 000000000..30d12f9b6 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/TestTypeFactory-23-112.diff @@ -0,0 +1,21 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/type/TestTypeFactoryWithClassLoader.java b/src/test/java/com/fasterxml/jackson/databind/type/TestTypeFactoryWithClassLoader.java +index e9a8070f4..65cc00c72 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/type/TestTypeFactoryWithClassLoader.java ++++ b/src/test/java/com/fasterxml/jackson/databind/type/TestTypeFactoryWithClassLoader.java +@@ -2,6 +2,7 @@ package com.fasterxml.jackson.databind.type; + + import static org.mockito.Mockito.*; + ++import org.junit.Ignore; + import org.junit.Test; + import org.junit.runner.RunWith; + import org.mockito.Mock; +@@ -17,7 +18,7 @@ import org.junit.BeforeClass; + + @RunWith(PowerMockRunner.class) + @PrepareForTest(TypeFactory.class) +- ++@Ignore("gets java.lang.IllegalAccessError with JDK 11") + public class TestTypeFactoryWithClassLoader { + @Mock + private TypeModifier typeModifier; diff --git a/framework/projects/JacksonDatabind/compile-errors/classLoader1-1-57.diff b/framework/projects/JacksonDatabind/compile-errors/classLoader1-1-57.diff new file mode 100644 index 000000000..77750c815 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/classLoader1-1-57.diff @@ -0,0 +1,30 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +@@ -53,7 +53,7 @@ public class TestExceptionDeserialization + + final ObjectMapper MAPPER = new ObjectMapper(); + +- public void testIOException() throws IOException ++ public void SKIPtestIOException() throws IOException + { + IOException ioe = new IOException("TEST"); + String json = MAPPER.writeValueAsString(ioe); +@@ -62,7 +62,7 @@ public class TestExceptionDeserialization + } + + // As per [JACKSON-377] +- public void testWithCreator() throws IOException ++ public void SKIPtestWithCreator() throws IOException + { + final String MSG = "the message"; + String json = MAPPER.writeValueAsString(new MyException(MSG, 3)); +@@ -75,7 +75,7 @@ public class TestExceptionDeserialization + } + + // [JACKSON-388] +- public void testWithNullMessage() throws IOException ++ public void SKIPtestWithNullMessage() throws IOException + { + final ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/framework/projects/JacksonDatabind/compile-errors/classLoader2-58-62.diff b/framework/projects/JacksonDatabind/compile-errors/classLoader2-58-62.diff new file mode 100644 index 000000000..b18e97aa9 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/classLoader2-58-62.diff @@ -0,0 +1,31 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +index 7da66618f..c0a183ee8 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +@@ -53,7 +53,7 @@ public class TestExceptionDeserialization + + private final ObjectMapper MAPPER = new ObjectMapper(); + +- public void testIOException() throws IOException ++ public void SKIPtestIOException() throws IOException + { + IOException ioe = new IOException("TEST"); + String json = MAPPER.writeValueAsString(ioe); +@@ -61,7 +61,7 @@ public class TestExceptionDeserialization + assertEquals(ioe.getMessage(), result.getMessage()); + } + +- public void testWithCreator() throws IOException ++ public void SKIPtestWithCreator() throws IOException + { + final String MSG = "the message"; + String json = MAPPER.writeValueAsString(new MyException(MSG, 3)); +@@ -73,7 +73,7 @@ public class TestExceptionDeserialization + assertEquals(result.getFoo(), result.stuff.get("foo")); + } + +- public void testWithNullMessage() throws IOException ++ public void SKIPtestWithNullMessage() throws IOException + { + final ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/framework/projects/JacksonDatabind/compile-errors/classLoader2a-69-69.diff b/framework/projects/JacksonDatabind/compile-errors/classLoader2a-69-69.diff new file mode 100644 index 000000000..b18e97aa9 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/classLoader2a-69-69.diff @@ -0,0 +1,31 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +index 7da66618f..c0a183ee8 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +@@ -53,7 +53,7 @@ public class TestExceptionDeserialization + + private final ObjectMapper MAPPER = new ObjectMapper(); + +- public void testIOException() throws IOException ++ public void SKIPtestIOException() throws IOException + { + IOException ioe = new IOException("TEST"); + String json = MAPPER.writeValueAsString(ioe); +@@ -61,7 +61,7 @@ public class TestExceptionDeserialization + assertEquals(ioe.getMessage(), result.getMessage()); + } + +- public void testWithCreator() throws IOException ++ public void SKIPtestWithCreator() throws IOException + { + final String MSG = "the message"; + String json = MAPPER.writeValueAsString(new MyException(MSG, 3)); +@@ -73,7 +73,7 @@ public class TestExceptionDeserialization + assertEquals(result.getFoo(), result.stuff.get("foo")); + } + +- public void testWithNullMessage() throws IOException ++ public void SKIPtestWithNullMessage() throws IOException + { + final ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/framework/projects/JacksonDatabind/compile-errors/classLoader2b-71-79.diff b/framework/projects/JacksonDatabind/compile-errors/classLoader2b-71-79.diff new file mode 100644 index 000000000..432da5685 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/classLoader2b-71-79.diff @@ -0,0 +1,31 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +index b6bd80625..98be8515c 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +@@ -53,7 +53,7 @@ public class TestExceptionDeserialization + + private final ObjectMapper MAPPER = new ObjectMapper(); + +- public void testIOException() throws IOException ++ public void SKIPtestIOException() throws IOException + { + IOException ioe = new IOException("TEST"); + String json = MAPPER.writeValueAsString(ioe); +@@ -61,7 +61,7 @@ public class TestExceptionDeserialization + assertEquals(ioe.getMessage(), result.getMessage()); + } + +- public void testWithCreator() throws IOException ++ public void SKIPtestWithCreator() throws IOException + { + final String MSG = "the message"; + String json = MAPPER.writeValueAsString(new MyException(MSG, 3)); +@@ -73,7 +73,7 @@ public class TestExceptionDeserialization + assertEquals(result.getFoo(), result.stuff.get("foo")); + } + +- public void testWithNullMessage() throws IOException ++ public void SKIPtestWithNullMessage() throws IOException + { + final ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/framework/projects/JacksonDatabind/compile-errors/classLoader2c-92-94.diff b/framework/projects/JacksonDatabind/compile-errors/classLoader2c-92-94.diff new file mode 100644 index 000000000..432da5685 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/classLoader2c-92-94.diff @@ -0,0 +1,31 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +index b6bd80625..98be8515c 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestExceptionDeserialization.java +@@ -53,7 +53,7 @@ public class TestExceptionDeserialization + + private final ObjectMapper MAPPER = new ObjectMapper(); + +- public void testIOException() throws IOException ++ public void SKIPtestIOException() throws IOException + { + IOException ioe = new IOException("TEST"); + String json = MAPPER.writeValueAsString(ioe); +@@ -61,7 +61,7 @@ public class TestExceptionDeserialization + assertEquals(ioe.getMessage(), result.getMessage()); + } + +- public void testWithCreator() throws IOException ++ public void SKIPtestWithCreator() throws IOException + { + final String MSG = "the message"; + String json = MAPPER.writeValueAsString(new MyException(MSG, 3)); +@@ -73,7 +73,7 @@ public class TestExceptionDeserialization + assertEquals(result.getFoo(), result.stuff.get("foo")); + } + +- public void testWithNullMessage() throws IOException ++ public void SKIPtestWithNullMessage() throws IOException + { + final ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/framework/projects/JacksonDatabind/compile-errors/classLoader3-63-99.diff b/framework/projects/JacksonDatabind/compile-errors/classLoader3-63-99.diff new file mode 100644 index 000000000..18b524a86 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/classLoader3-63-99.diff @@ -0,0 +1,31 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionDeserialization.java +index 43084c960..c57d8e332 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionDeserialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionDeserialization.java +@@ -53,7 +53,7 @@ public class TestExceptionDeserialization + + private final ObjectMapper MAPPER = new ObjectMapper(); + +- public void testIOException() throws IOException ++ public void SKIPtestIOException() throws IOException + { + IOException ioe = new IOException("TEST"); + String json = MAPPER.writeValueAsString(ioe); +@@ -61,7 +61,7 @@ public class TestExceptionDeserialization + assertEquals(ioe.getMessage(), result.getMessage()); + } + +- public void testWithCreator() throws IOException ++ public void SKIPtestWithCreator() throws IOException + { + final String MSG = "the message"; + String json = MAPPER.writeValueAsString(new MyException(MSG, 3)); +@@ -73,7 +73,7 @@ public class TestExceptionDeserialization + assertEquals(result.getFoo(), result.stuff.get("foo")); + } + +- public void testWithNullMessage() throws IOException ++ public void SKIPtestWithNullMessage() throws IOException + { + final ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/framework/projects/JacksonDatabind/compile-errors/test-93-97.diff b/framework/projects/JacksonDatabind/compile-errors/test-93-97.diff deleted file mode 100644 index f35630aa9..000000000 --- a/framework/projects/JacksonDatabind/compile-errors/test-93-97.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java b/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java -index f7d1517ed..0fc5e357d 100644 ---- a/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java -+++ b/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java -@@ -80,7 +80,7 @@ public class IllegalTypesCheckTest extends BaseMapTest - public void testJDKTypes1855() throws Exception - { - // apparently included by JDK? -- _testIllegalType("com.sun.org.apache.bcel.internal.util.ClassLoader"); -+// _testIllegalType("com.sun.org.apache.bcel.internal.util.ClassLoader"); - - // also: we can try some form of testing, even if bit contrived... - _testIllegalType(BogusPointcutAdvisor.class); diff --git a/framework/projects/JacksonDatabind/compile-errors/test-99-109.diff b/framework/projects/JacksonDatabind/compile-errors/test-99-109.diff deleted file mode 100644 index f35630aa9..000000000 --- a/framework/projects/JacksonDatabind/compile-errors/test-99-109.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java b/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java -index f7d1517ed..0fc5e357d 100644 ---- a/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java -+++ b/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java -@@ -80,7 +80,7 @@ public class IllegalTypesCheckTest extends BaseMapTest - public void testJDKTypes1855() throws Exception - { - // apparently included by JDK? -- _testIllegalType("com.sun.org.apache.bcel.internal.util.ClassLoader"); -+// _testIllegalType("com.sun.org.apache.bcel.internal.util.ClassLoader"); - - // also: we can try some form of testing, even if bit contrived... - _testIllegalType(BogusPointcutAdvisor.class); diff --git a/framework/projects/JacksonDatabind/compile-errors/testIgnorals1-50-61.diff b/framework/projects/JacksonDatabind/compile-errors/testIgnorals1-50-61.diff new file mode 100644 index 000000000..af014ea46 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/testIgnorals1-50-61.diff @@ -0,0 +1,13 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/ser/TestExceptionSerialization.java b/src/test/java/com/fasterxml/jackson/databind/ser/TestExceptionSerialization.java +index 111c67159..93ef291f9 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/ser/TestExceptionSerialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/ser/TestExceptionSerialization.java +@@ -59,7 +59,7 @@ public class TestExceptionSerialization + + // for [databind#877] + @SuppressWarnings("unchecked") +- public void testIgnorals() throws Exception ++ public void SKIPtestIgnorals() throws Exception + { + ExceptionWithIgnoral input = new ExceptionWithIgnoral("foobar"); + input.initCause(new IOException("surprise!")); diff --git a/framework/projects/JacksonDatabind/compile-errors/testIgnorals2-63-99.diff b/framework/projects/JacksonDatabind/compile-errors/testIgnorals2-63-99.diff new file mode 100644 index 000000000..3390c0e2c --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/testIgnorals2-63-99.diff @@ -0,0 +1,13 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionSerialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionSerialization.java +index 07fc70a6b..7a0f9663f 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionSerialization.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/exc/TestExceptionSerialization.java +@@ -68,7 +68,7 @@ public class TestExceptionSerialization + + // for [databind#877] + @SuppressWarnings("unchecked") +- public void testIgnorals() throws Exception ++ public void SKIPtestIgnorals() throws Exception + { + ExceptionWithIgnoral input = new ExceptionWithIgnoral("foobar"); + input.initCause(new IOException("surprise!")); diff --git a/framework/projects/JacksonDatabind/compile-errors/test-111-112.diff b/framework/projects/JacksonDatabind/compile-errors/testJDKTypes-93-112.diff similarity index 100% rename from framework/projects/JacksonDatabind/compile-errors/test-111-112.diff rename to framework/projects/JacksonDatabind/compile-errors/testJDKTypes-93-112.diff diff --git a/framework/projects/JacksonDatabind/compile-errors/testStackTrace1-1-94.diff b/framework/projects/JacksonDatabind/compile-errors/testStackTrace1-1-94.diff new file mode 100644 index 000000000..6c0002f0d --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/testStackTrace1-1-94.diff @@ -0,0 +1,13 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestJdkTypes.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestJdkTypes.java +index d9c442a84..7fed23628 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestJdkTypes.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestJdkTypes.java +@@ -333,7 +333,7 @@ public class TestJdkTypes extends BaseMapTest + } + + // [JACKSON-888] +- public void testStackTraceElement() throws Exception ++ public void SKIPtestStackTraceElement() throws Exception + { + StackTraceElement elem = null; + try { diff --git a/framework/projects/JacksonDatabind/compile-errors/testStackTrace2-59-99.diff b/framework/projects/JacksonDatabind/compile-errors/testStackTrace2-59-99.diff new file mode 100644 index 000000000..a7244e3d7 --- /dev/null +++ b/framework/projects/JacksonDatabind/compile-errors/testStackTrace2-59-99.diff @@ -0,0 +1,13 @@ +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/JDKStringLikeTypesTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/JDKStringLikeTypesTest.java +index cef00c19b..936f52036 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/JDKStringLikeTypesTest.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/JDKStringLikeTypesTest.java +@@ -240,7 +240,7 @@ public class JDKStringLikeTypesTest extends BaseMapTest + Pattern result = MAPPER.readValue(json, Pattern.class); + assertEquals(exp.pattern(), result.pattern()); + } +- public void testStackTraceElement() throws Exception ++ public void SKIPtestStackTraceElement() throws Exception + { + StackTraceElement elem = null; + try { diff --git a/framework/projects/Lang/compile-errors/test-1-10.diff b/framework/projects/Lang/compile-errors/test-1-10.diff new file mode 100644 index 000000000..6fe9a2012 --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-1-10.diff @@ -0,0 +1,71 @@ +diff --git a/src/main/java/org/apache/commons/lang3/JavaVersion.java b/src/main/java/org/apache/commons/lang3/JavaVersion.java +index 0a34fea8f..40f8830c9 100644 +--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java ++++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java +@@ -69,7 +69,17 @@ public enum JavaVersion { + /** + * Java 1.8. + */ +- JAVA_1_8(1.8f, "1.8"); ++ JAVA_1_8(1.8f, "1.8"), ++ ++ /** ++ * Java 1.9. ++ */ ++ JAVA_1_9(1.9f, "1.9"), ++ ++ /** ++ * Java 1.x, x > 9. Mainly introduced to avoid to break when a new version of Java is used. ++ */ ++ JAVA_RECENT(maxVersion(), Float.toString(maxVersion())); + + /** + * The float value. +@@ -147,9 +157,21 @@ static JavaVersion get(final String nom) { + return JAVA_1_7; + } else if ("1.8".equals(nom)) { + return JAVA_1_8; +- } else { ++ } else if ("1.9".equals(nom)) { ++ return JAVA_1_9; ++ } ++ if (nom == null) { + return null; + } ++ final float v = toFloatVersion(nom); ++ if ((v - 1.) < 1.) { // then we need to check decimals > .9 ++ final int firstComma = Math.max(nom.indexOf('.'), nom.indexOf(',')); ++ final int end = Math.max(nom.length(), nom.indexOf(',', firstComma)); ++ if (Float.parseFloat(nom.substring(firstComma + 1, end)) > .9f) { ++ return JAVA_RECENT; ++ } ++ } ++ return null; + } + + //----------------------------------------------------------------------- +@@ -165,4 +187,24 @@ public String toString() { + return name; + } + ++ // upper bound of java version considering 2. or current is the higher ++ private static float maxVersion() { ++ final float v = toFloatVersion(System.getProperty("java.version", "2.0")); ++ if (v > 0) { ++ return v; ++ } ++ return 2f; ++ } ++ ++ private static float toFloatVersion(final String name) { ++ final String[] toParse = name.split("\\."); ++ if (toParse.length >= 2) { ++ try { ++ return Float.parseFloat(toParse[0] + '.' + toParse[1]); ++ } catch (final NumberFormatException nfe) { ++ // no-op, let use default ++ } ++ } ++ return -1; ++ } + } diff --git a/framework/projects/Lang/compile-errors/test-1-4.diff b/framework/projects/Lang/compile-errors/test-1-4.diff new file mode 100644 index 000000000..96b1ff49f --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-1-4.diff @@ -0,0 +1,12 @@ +index e65ba73f4..df52fc50f 100644 +--- a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java ++++ b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java +@@ -521,7 +521,7 @@ public class TypeUtilsTest { + public void testTypesSatisfyVariables() throws SecurityException, NoSuchFieldException, + NoSuchMethodException { + final Map, Type> typeVarAssigns = new HashMap, Type>(); +- final Integer max = TypeUtilsTest.stub(); ++ final Integer max = TypeUtilsTest. stub(); + typeVarAssigns.put(getClass().getMethod("stub").getTypeParameters()[0], Integer.class); + Assert.assertTrue(TypeUtils.typesSatisfyVariables(typeVarAssigns)); + typeVarAssigns.clear(); diff --git a/framework/projects/Lang/compile-errors/test-14-16.diff b/framework/projects/Lang/compile-errors/test-14-16.diff new file mode 100644 index 000000000..6fe9a2012 --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-14-16.diff @@ -0,0 +1,71 @@ +diff --git a/src/main/java/org/apache/commons/lang3/JavaVersion.java b/src/main/java/org/apache/commons/lang3/JavaVersion.java +index 0a34fea8f..40f8830c9 100644 +--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java ++++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java +@@ -69,7 +69,17 @@ public enum JavaVersion { + /** + * Java 1.8. + */ +- JAVA_1_8(1.8f, "1.8"); ++ JAVA_1_8(1.8f, "1.8"), ++ ++ /** ++ * Java 1.9. ++ */ ++ JAVA_1_9(1.9f, "1.9"), ++ ++ /** ++ * Java 1.x, x > 9. Mainly introduced to avoid to break when a new version of Java is used. ++ */ ++ JAVA_RECENT(maxVersion(), Float.toString(maxVersion())); + + /** + * The float value. +@@ -147,9 +157,21 @@ static JavaVersion get(final String nom) { + return JAVA_1_7; + } else if ("1.8".equals(nom)) { + return JAVA_1_8; +- } else { ++ } else if ("1.9".equals(nom)) { ++ return JAVA_1_9; ++ } ++ if (nom == null) { + return null; + } ++ final float v = toFloatVersion(nom); ++ if ((v - 1.) < 1.) { // then we need to check decimals > .9 ++ final int firstComma = Math.max(nom.indexOf('.'), nom.indexOf(',')); ++ final int end = Math.max(nom.length(), nom.indexOf(',', firstComma)); ++ if (Float.parseFloat(nom.substring(firstComma + 1, end)) > .9f) { ++ return JAVA_RECENT; ++ } ++ } ++ return null; + } + + //----------------------------------------------------------------------- +@@ -165,4 +187,24 @@ public String toString() { + return name; + } + ++ // upper bound of java version considering 2. or current is the higher ++ private static float maxVersion() { ++ final float v = toFloatVersion(System.getProperty("java.version", "2.0")); ++ if (v > 0) { ++ return v; ++ } ++ return 2f; ++ } ++ ++ private static float toFloatVersion(final String name) { ++ final String[] toParse = name.split("\\."); ++ if (toParse.length >= 2) { ++ try { ++ return Float.parseFloat(toParse[0] + '.' + toParse[1]); ++ } catch (final NumberFormatException nfe) { ++ // no-op, let use default ++ } ++ } ++ return -1; ++ } + } diff --git a/framework/projects/Lang/compile-errors/test-17-20.diff b/framework/projects/Lang/compile-errors/test-17-20.diff new file mode 100644 index 000000000..0fc18cca3 --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-17-20.diff @@ -0,0 +1,73 @@ +index 477495a4e..93e5bc142 100644 +--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java ++++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java +@@ -36,7 +36,17 @@ public enum JavaVersion { + JAVA_1_5(1.5f, "1.5"), + JAVA_1_6(1.6f, "1.6"), + JAVA_1_7(1.7f, "1.7"), +- JAVA_1_8(1.8f, "1.8"); ++ JAVA_1_8(1.8f, "1.8"), ++ ++ /** ++ * Java 1.9. ++ */ ++ JAVA_1_9(1.9f, "1.9"), ++ ++ /** ++ * Java 1.x, x > 9. Mainly introduced to avoid to break when a new version of Java is used. ++ */ ++ JAVA_RECENT(maxVersion(), Float.toString(maxVersion())); + + /** + * The float value. +@@ -114,10 +124,22 @@ public enum JavaVersion { + return JAVA_1_7; + } else if ("1.8".equals(nom)) { + return JAVA_1_8; +- } else { ++ } else if ("1.9".equals(nom)) { ++ return JAVA_1_9; ++ } ++ if (nom == null) { + return null; + } +- } ++ final float v = toFloatVersion(nom); ++ if ((v - 1.) < 1.) { // then we need to check decimals > .9 ++ final int firstComma = Math.max(nom.indexOf('.'), nom.indexOf(',')); ++ final int end = Math.max(nom.length(), nom.indexOf(',', firstComma)); ++ if (Float.parseFloat(nom.substring(firstComma + 1, end)) > .9f) { ++ return JAVA_RECENT; ++ } ++ } ++ return null; ++ } + + //----------------------------------------------------------------------- + /** +@@ -132,4 +154,25 @@ public enum JavaVersion { + return name; + } + ++ // upper bound of java version considering 2. or current is the higher ++ private static float maxVersion() { ++ final float v = toFloatVersion(System.getProperty("java.version", "2.0")); ++ if (v > 0) { ++ return v; ++ } ++ return 2f; ++ } ++ ++ private static float toFloatVersion(final String name) { ++ final String[] toParse = name.split("\\."); ++ if (toParse.length >= 2) { ++ try { ++ return Float.parseFloat(toParse[0] + '.' + toParse[1]); ++ } catch (final NumberFormatException nfe) { ++ // no-op, let use default ++ } ++ } ++ return -1; ++ } ++ + } diff --git a/framework/projects/Lang/compile-errors/test-21-21.diff b/framework/projects/Lang/compile-errors/test-21-21.diff new file mode 100644 index 000000000..552f296d4 --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-21-21.diff @@ -0,0 +1,67 @@ +diff --git a/src/main/java/org/apache/commons/lang3/JavaVersion.java b/src/main/java/org/apache/commons/lang3/JavaVersion.java +index b7c033ef4..ef3420c34 100644 +--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java ++++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java +@@ -34,7 +34,17 @@ public enum JavaVersion { + JAVA_1_5(1.5f, "1.5"), + JAVA_1_6(1.6f, "1.6"), + JAVA_1_7(1.7f, "1.7"), +- JAVA_1_8(1.8f, "1.8"); ++ JAVA_1_8(1.8f, "1.8"), ++ ++ /** ++ * Java 1.9. ++ */ ++ JAVA_1_9(1.9f, "1.9"), ++ ++ /** ++ * Java 1.x, x > 9. Mainly introduced to avoid to break when a new version of Java is used. ++ */ ++ JAVA_RECENT(maxVersion(), Float.toString(maxVersion())); + + private float value; + private String name; +@@ -90,8 +100,42 @@ public enum JavaVersion { + } else + if("1.8".equals(nom)) { + return JAVA_1_8; +- } else { ++ } else if ("1.9".equals(nom)) { ++ return JAVA_1_9; ++ } ++ if (nom == null) { + return null; + } ++ final float v = toFloatVersion(nom); ++ if ((v - 1.) < 1.) { // then we need to check decimals > .9 ++ final int firstComma = Math.max(nom.indexOf('.'), nom.indexOf(',')); ++ final int end = Math.max(nom.length(), nom.indexOf(',', firstComma)); ++ if (Float.parseFloat(nom.substring(firstComma + 1, end)) > .9f) { ++ return JAVA_RECENT; ++ } ++ } ++ return null; + } ++ ++ // upper bound of java version considering 2. or current is the higher ++ private static float maxVersion() { ++ final float v = toFloatVersion(System.getProperty("java.version", "2.0")); ++ if (v > 0) { ++ return v; ++ } ++ return 2f; ++ } ++ ++ private static float toFloatVersion(final String name) { ++ final String[] toParse = name.split("\\."); ++ if (toParse.length >= 2) { ++ try { ++ return Float.parseFloat(toParse[0] + '.' + toParse[1]); ++ } catch (final NumberFormatException nfe) { ++ // no-op, let use default ++ } ++ } ++ return -1; ++ } ++ + } diff --git a/framework/projects/Lang/compile-errors/test-42-65.diff b/framework/projects/Lang/compile-errors/test-42-65.diff new file mode 100644 index 000000000..2cb2e66b4 --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-42-65.diff @@ -0,0 +1,14 @@ +diff --git a/src/test/org/apache/commons/lang/AllLangTestSuite.java b/src/test/org/apache/commons/lang/AllLangTestSuite.java +index 9c572c3a9..e7b092ef3 100644 +--- a/src/test/org/apache/commons/lang/AllLangTestSuite.java ++++ b/src/test/org/apache/commons/lang/AllLangTestSuite.java +@@ -61,7 +61,7 @@ public class AllLangTestSuite extends TestCase { + suite.addTest(LangTestSuite.suite()); + suite.addTest(BuilderTestSuite.suite()); + suite.addTest(EnumTestSuite.suite()); +- suite.addTest(org.apache.commons.lang.enum.EnumTestSuite.suite()); ++ //suite.addTest(org.apache.commons.lang.enum.EnumTestSuite.suite()); + suite.addTest(ExceptionTestSuite.suite()); + suite.addTest(MathTestSuite.suite()); + suite.addTest(MutableTestSuite.suite()); + diff --git a/framework/projects/Lang/compile-errors/test-44-48.diff b/framework/projects/Lang/compile-errors/test-44-48.diff new file mode 100644 index 000000000..8938eb710 --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-44-48.diff @@ -0,0 +1,19 @@ +index a1648aa11..afd166695 100644 +--- a/src/java/org/apache/commons/lang/builder/EqualsBuilder.java ++++ b/src/java/org/apache/commons/lang/builder/EqualsBuilder.java +@@ -377,12 +377,8 @@ public class EqualsBuilder { + } + Class lhsClass = lhs.getClass(); + if (!lhsClass.isArray()) { +- if (lhs instanceof java.math.BigDecimal) { +- isEquals = (((java.math.BigDecimal)lhs).compareTo(rhs) == 0); +- } else { +- // The simple case, not an array, just test the element +- isEquals = lhs.equals(rhs); +- } ++ // The simple case, not an array, just test the element ++ isEquals = lhs.equals(rhs); + } else if (lhs.getClass() != rhs.getClass()) { + // Here when we compare different dimensions, for example: a boolean[][] to a boolean[] + this.setEquals(false); + diff --git a/framework/projects/Lang/compile-errors/test-5-27.diff b/framework/projects/Lang/compile-errors/test-5-27.diff new file mode 100644 index 000000000..e1617f4cb --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-5-27.diff @@ -0,0 +1,12 @@ +index 86465b180..af3e62677 100644 +--- a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java ++++ b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java +@@ -511,7 +511,7 @@ public class TypeUtilsTest { + public void testTypesSatisfyVariables() throws SecurityException, NoSuchFieldException, + NoSuchMethodException { + Map, Type> typeVarAssigns = new HashMap, Type>(); +- Integer max = TypeUtilsTest.stub(); ++ Integer max = TypeUtilsTest. stub(); + typeVarAssigns.put(getClass().getMethod("stub").getTypeParameters()[0], Integer.class); + Assert.assertTrue(TypeUtils.typesSatisfyVariables(typeVarAssigns)); + typeVarAssigns.clear(); diff --git a/framework/projects/Lang/compile-errors/test-65-65.diff b/framework/projects/Lang/compile-errors/test-65-65.diff new file mode 100644 index 000000000..9d525f693 --- /dev/null +++ b/framework/projects/Lang/compile-errors/test-65-65.diff @@ -0,0 +1,16 @@ +index 38d578aba..a0ae9fc73 100644 +--- a/src/java/org/apache/commons/lang/enum/ValuedEnum.java ++++ b/src/java/org/apache/commons/lang/enum/ValuedEnum.java +@@ -140,9 +140,9 @@ public abstract class ValuedEnum extends Enum { + } + List list = Enum.getEnumList(enumClass); + for (Iterator it = list.iterator(); it.hasNext();) { +- ValuedEnum enum = (ValuedEnum) it.next(); +- if (enum.getValue() == value) { +- return enum; ++ ValuedEnum enumer = (ValuedEnum) it.next(); ++ if (enumer.getValue() == value) { ++ return enumer; + } + } + return null; From c24adeb7120c487cbc995d3c118693fdf28c0341 Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Wed, 4 Sep 2024 23:16:31 -0700 Subject: [PATCH 6/7] Expand diagnostics --- framework/test/test_bug_mining.sh | 2 +- framework/test/test_export_command.sh | 2 +- framework/test/test_gen_tests.sh | 2 +- framework/test/test_verify_bugs.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/test/test_bug_mining.sh b/framework/test/test_bug_mining.sh index 604bc6234..ff93f1efc 100755 --- a/framework/test/test_bug_mining.sh +++ b/framework/test/test_bug_mining.sh @@ -430,5 +430,5 @@ if [ "$ERROR" -ne "0" ]; then cat "$LOG" 1>&2 fi -# Indicate whether an error occurred +# Indicate whether an error occurred in test_bug_mining.sh. exit "$ERROR" diff --git a/framework/test/test_export_command.sh b/framework/test/test_export_command.sh index 4b011be04..4df70b015 100755 --- a/framework/test/test_export_command.sh +++ b/framework/test/test_export_command.sh @@ -222,5 +222,5 @@ if [ "$ERROR" -ne "0" ]; then cat "$LOG" 1>&2 fi -# Indicate whether an error occurred +# Indicate whether an error occurred in test_export_command.sh. exit "$ERROR" diff --git a/framework/test/test_gen_tests.sh b/framework/test/test_gen_tests.sh index f85e45512..3797f118b 100755 --- a/framework/test/test_gen_tests.sh +++ b/framework/test/test_gen_tests.sh @@ -139,5 +139,5 @@ if [ $ERROR != 0 ]; then cat "$LOG" 1>&2 fi -# Indicate whether an error occurred +# Indicate whether an error occurred in test_gen_tests.sh. exit $ERROR diff --git a/framework/test/test_verify_bugs.sh b/framework/test/test_verify_bugs.sh index 7c44fd23e..79cbdac10 100755 --- a/framework/test/test_verify_bugs.sh +++ b/framework/test/test_verify_bugs.sh @@ -140,5 +140,5 @@ if [ $ERROR != 0 ]; then cat "$LOG" 1>&2 fi -# Indicate whether an error occurred +# Indicate whether an error occurred in test_verify_bugs.sh. exit $ERROR From 4c39462d91b6cabbfcfee7655a1f87f09572095a Mon Sep 17 00:00:00 2001 From: Michael Ernst Date: Thu, 5 Sep 2024 07:58:59 -0700 Subject: [PATCH 7/7] Fix bug in use of sed --- framework/test/test_verify_bugs.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/test/test_verify_bugs.sh b/framework/test/test_verify_bugs.sh index 79cbdac10..e75a8cc9e 100755 --- a/framework/test/test_verify_bugs.sh +++ b/framework/test/test_verify_bugs.sh @@ -72,9 +72,9 @@ if [ "$BUGS" == "" ]; then fi # Create log file -script_name=$(sed 's/\.sh$//' "$script") -LOG="$TEST_DIR/${script_name}$(printf '_%s_%s' "$PID" $$).log" -DIR_FAILING="$TEST_DIR/${script_name}$(printf '_%s_%s' "$PID" $$).failing_tests" +script_name_without_sh=${script//.sh/} +LOG="$TEST_DIR/${script_name_without_sh}$(printf '_%s_%s' "$PID" $$).log" +DIR_FAILING="$TEST_DIR/${script_name_without_sh}$(printf '_%s_%s' "$PID" $$).failing_tests" ################################################################################ # Run developer-written tests on all buggy and fixed program versions, and