You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2014/08/23 05:45:37 UTC
[2/2] git commit: Work around bug/feature of jruby 1.7.13 that caches
Gem::Version objects based on constructor parameters that causes issues with
Buildr as we mutate the version objects through monkey patching.
Work around bug/feature of jruby 1.7.13 that caches Gem::Version
objects based on constructor parameters that causes issues with
Buildr as we mutate the version objects through monkey patching.
Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/2a4892a5
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/2a4892a5
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/2a4892a5
Branch: refs/heads/master
Commit: 2a4892a5cf098d864f213a7ee4257f43728012f4
Parents: e2423a1
Author: Peter Donald <pe...@realityforge.org>
Authored: Sat Aug 23 13:45:12 2014 +1000
Committer: Peter Donald <pe...@realityforge.org>
Committed: Sat Aug 23 13:45:12 2014 +1000
----------------------------------------------------------------------
CHANGELOG | 3 +++
lib/buildr/java/version_requirement.rb | 6 ++++--
lib/buildr/packaging/version_requirement.rb | 11 ++++++-----
3 files changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/buildr/blob/2a4892a5/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index c4746ac..e1b99c1 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,7 @@
1.4.20 (Pending)
+* Fixed : Work around bug/feature of jruby 1.7.13 that caches Gem::Version
+ objects based on constructor parameters that causes issues with
+ Buildr as we mutate the version objects through monkey patching.
* Change: Upgrade rjb dependency to 1.4.9.
* Change: BUILDR-701 - Update to JUnit 4.11. Submitted by Jean-Philippe Caruana.
* Added: Support the 'report_level' property on findbugs addon.
http://git-wip-us.apache.org/repos/asf/buildr/blob/2a4892a5/lib/buildr/java/version_requirement.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/java/version_requirement.rb b/lib/buildr/java/version_requirement.rb
index 8b796cd..fd7f6cd 100644
--- a/lib/buildr/java/version_requirement.rb
+++ b/lib/buildr/java/version_requirement.rb
@@ -53,7 +53,8 @@ module Buildr #:nodoc:
raise "Invalid requirement string: #{req}"
end
comparator, version = $1, $2
- version = Gem::Version.new(0).tap { |v| v.version = version }
+ # dup required due to jruby 1.7.13 bug/feature that caches versions?
+ version = Gem::Version.new(0).dup.tap { |v| v.version = version }
VersionRequirement.new(nil, [$1, version])
end
@@ -122,7 +123,8 @@ module Buildr #:nodoc:
return false unless version
unless version.kind_of?(Gem::Version)
raise "Invalid version: #{version.inspect}" unless self.class.version?(version)
- version = Gem::Version.new(0).tap { |v| v.version = version.strip }
+ # dup required due to jruby 1.7.13 bug/feature that caches versions?
+ version = Gem::Version.new(0).dup.tap { |v| v.version = version.strip }
end
message = op == :| ? :any? : :all?
result = requirements.send message do |req|
http://git-wip-us.apache.org/repos/asf/buildr/blob/2a4892a5/lib/buildr/packaging/version_requirement.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/packaging/version_requirement.rb b/lib/buildr/packaging/version_requirement.rb
index c5a6d95..450a825 100644
--- a/lib/buildr/packaging/version_requirement.rb
+++ b/lib/buildr/packaging/version_requirement.rb
@@ -17,11 +17,10 @@
# Rubygems 1.3.6 removed the 'version' accessor so monkey-patch it back to
# circumvent version validation. This is needed because Gem::Version doesn't
# accept version specs with dashes.
-unless Gem::Version.new(0).respond_to?(:version=)
+unless Gem::Version.new("0").respond_to?(:version=)
class Gem::Version
def version=(version)
- @version = version.to_s
- @version.strip!
+ @version = version.to_s.strip
# re-prime @segments
@segments = nil
@@ -73,7 +72,8 @@ module Buildr #:nodoc:
raise "Invalid requirement string: #{req}"
end
comparator, version = $1, $2
- version = Gem::Version.new(0).tap { |v| v.version = version }
+ # dup required due to jruby 1.7.13 bug/feature that caches versions?
+ version = Gem::Version.new(0).dup.tap { |v| v.version = version }
VersionRequirement.new(nil, [$1, version])
end
@@ -142,7 +142,8 @@ module Buildr #:nodoc:
return false unless version
unless version.kind_of?(Gem::Version)
raise "Invalid version: #{version.inspect}" unless self.class.version?(version)
- version = Gem::Version.new(0).tap { |v| v.version = version.strip }
+ # dup required due to jruby 1.7.13 bug/feature that caches versions?
+ version = Gem::Version.new(0).dup.tap { |v| v.version = version.strip }
end
message = op == :| ? :any? : :all?
result = requirements.send message do |req|