logstash-output-scalyr 0.1.25.beta → 0.1.26.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +1 -0
  4. data/README.md +1 -2
  5. data/lib/logstash/outputs/scalyr.rb +26 -7
  6. data/lib/scalyr/constants.rb +1 -1
  7. data/logstash-output-scalyr.gemspec +3 -2
  8. data/spec/benchmarks/flattening_and_serialization.rb +1 -26
  9. data/spec/benchmarks/json_serialization.rb +85 -0
  10. data/spec/benchmarks/util.rb +24 -0
  11. data/spec/logstash/outputs/scalyr_spec.rb +54 -0
  12. data/vendor/bundle/jruby/2.5.0/cache/jrjackson-0.4.14-java.gem +0 -0
  13. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/Gemfile +0 -0
  14. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/Mavenfile +1 -7
  15. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/README.md +0 -0
  16. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/Rakefile +8 -2
  17. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/alt_bench.rb +0 -0
  18. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/changelog.md +25 -2
  19. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/jrjackson.gemspec +2 -1
  20. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.14-java/lib/com/fasterxml/jackson/core/jackson-annotations/2.9.10/jackson-annotations-2.9.10.jar +0 -0
  21. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.14-java/lib/com/fasterxml/jackson/core/jackson-core/2.9.10/jackson-core-2.9.10.jar +0 -0
  22. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.14-java/lib/com/fasterxml/jackson/core/jackson-databind/2.9.10.8/jackson-databind-2.9.10.8.jar +0 -0
  23. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.14-java/lib/com/fasterxml/jackson/module/jackson-module-afterburner/2.9.10/jackson-module-afterburner-2.9.10.jar +0 -0
  24. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/lib/jrjackson/build_info.rb +9 -5
  25. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java/lib/jrjackson/jars/jrjackson-1.2.26.jar → jrjackson-0.4.14-java/lib/jrjackson/jars/jrjackson-1.2.32.jar} +0 -0
  26. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/lib/jrjackson/jrjackson.rb +0 -0
  27. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/lib/jrjackson.rb +0 -0
  28. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/lib/jrjackson_jars.rb +8 -8
  29. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/lib/require_relative_patch.rb +0 -0
  30. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/pom.xml +8 -25
  31. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/profiling/profiled.rb +0 -0
  32. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/run_all_individual_bench.sh +0 -0
  33. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/run_jruby_individual_bench.sh +0 -0
  34. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/run_mri_individual_bench.sh +0 -0
  35. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/IParseHandler.java +0 -0
  36. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JavaBigDecimalValueConverter.java +0 -0
  37. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JavaBigIntValueConverter.java +0 -0
  38. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JavaConverter.java +0 -0
  39. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JavaFloatValueConverter.java +0 -0
  40. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JavaHandler.java +0 -0
  41. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JavaLongValueConverter.java +0 -0
  42. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JjParse.java +0 -0
  43. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrJacksonBase.java +0 -0
  44. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrJacksonJava.java +0 -0
  45. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrJacksonRaw.java +0 -0
  46. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrJacksonRuby.java +0 -0
  47. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrJacksonSaj.java +0 -0
  48. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrJacksonSch.java +0 -0
  49. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrJacksonService.java +0 -0
  50. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/JrParse.java +0 -0
  51. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/ParseError.java +0 -0
  52. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyAnySerializer.java +4 -4
  53. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyBigDecimalValueConverter.java +0 -0
  54. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyBigIntValueConverter.java +0 -0
  55. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyConverter.java +0 -0
  56. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyDateFormat.java +0 -0
  57. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyFloatValueConverter.java +0 -0
  58. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyHandler.java +0 -0
  59. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyIntValueConverter.java +0 -0
  60. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyJacksonModule.java +18 -6
  61. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyKeyConverter.java +0 -0
  62. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyNameConverter.java +0 -0
  63. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyObjectDeserializer.java +0 -0
  64. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyStringConverter.java +0 -0
  65. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyStringKeyConverter.java +0 -0
  66. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyStringNameConverter.java +0 -0
  67. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubySymbolKeyConverter.java +0 -0
  68. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubySymbolNameConverter.java +0 -0
  69. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/RubyUtils.java +0 -0
  70. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/SajParse.java +0 -0
  71. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/SchParse.java +0 -0
  72. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/main/java/com/jrjackson/StreamParse.java +0 -0
  73. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/src/test/java/com/jrjackson/RubyAnySerializerTest.java +0 -0
  74. data/vendor/bundle/jruby/2.5.0/gems/{jrjackson-0.4.8-java → jrjackson-0.4.14-java}/test/jrjackson_test.rb +15 -0
  75. data/vendor/bundle/jruby/2.5.0/specifications/{jrjackson-0.4.8-java.gemspec → jrjackson-0.4.14-java.gemspec} +7 -7
  76. metadata +97 -65
  77. data/vendor/bundle/jruby/2.5.0/cache/jrjackson-0.4.8-java.gem +0 -0
  78. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.8-java/lib/com/fasterxml/jackson/core/jackson-annotations/2.9.7/jackson-annotations-2.9.7.jar +0 -0
  79. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.8-java/lib/com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.jar +0 -0
  80. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.8-java/lib/com/fasterxml/jackson/core/jackson-databind/2.9.7/jackson-databind-2.9.7.jar +0 -0
  81. data/vendor/bundle/jruby/2.5.0/gems/jrjackson-0.4.8-java/lib/com/fasterxml/jackson/module/jackson-module-afterburner/2.9.7/jackson-module-afterburner-2.9.7.jar +0 -0
@@ -1,5 +1,28 @@
1
+ v0.4.14
2
+ Bump jackson-databind to v2.9.10.8
3
+
4
+ v0.4.13
5
+ Bump jackson-databind to v2.9.10.6
6
+
7
+ v0.4.12
8
+ Bump jackson-databind to v2.9.10.4
9
+
10
+ v0.4.11
11
+ Bump Jackson to v2.9.10, and jackson-databind to v2.9.10.1
12
+
13
+ v0.4.10
14
+ fix concurrency issue when serializing dates.
15
+ Cache UTC TimeZone class to avoid unnecessary calls to synchronized method
16
+ Use a ThreadLocal to hold per-thread instances of SimpleDateFormat to avoid
17
+ unnecessary expensive clonings of that object
18
+ Replace unsafe call to setDateFormat on static ObjectMapper class by creating
19
+ an amended SerializationConfig
20
+
21
+ v0.4.9
22
+ bump Jackson to v2.9.9, and jackson-databind to v2.9.9.3
23
+
1
24
  v0.4.8
2
- fix serialisation of big numbers as Ruby 2.4 unifies Fixnum and Bignum into Integer
25
+ fix serialisation of big numbers as Ruby 2.4 unifies Fixnum and Bignum into Integer
3
26
 
4
27
  v0.4.4
5
28
  fix for issue 64
@@ -8,7 +31,7 @@ v0.4.4
8
31
  v0.4.3
9
32
  bump Jackson to v2.9.1
10
33
  make static_mapper public
11
-
34
+
12
35
  v0.4.1
13
36
  fix for issue 55
14
37
  Refactor AnySerializer acceptable class detection that does not use an exception
@@ -22,9 +22,10 @@ Gem::Specification.new do |s|
22
22
  s.add_development_dependency 'jar-dependencies', '< 2.0', '>= 0.3.2'
23
23
 
24
24
  jackson_version = JrJackson::BuildInfo.jackson_version
25
+ jackson_databind_version = JrJackson::BuildInfo.jackson_databind_version
25
26
  s.requirements << "jar com.fasterxml.jackson.core:jackson-core, #{jackson_version}"
26
27
  s.requirements << "jar com.fasterxml.jackson.core:jackson-annotations, #{jackson_version}"
27
- s.requirements << "jar com.fasterxml.jackson.core:jackson-databind, #{jackson_version}"
28
+ s.requirements << "jar com.fasterxml.jackson.core:jackson-databind, #{jackson_databind_version}"
28
29
  s.requirements << "jar com.fasterxml.jackson.module:jackson-module-afterburner, #{jackson_version}"
29
30
 
30
31
  s.files = JrJackson::BuildInfo.files
@@ -1,11 +1,11 @@
1
1
  module JrJackson
2
2
  module BuildInfo
3
3
  def self.version
4
- '0.4.8'
4
+ '0.4.14'
5
5
  end
6
6
 
7
7
  def self.release_date
8
- '2019-05-01'
8
+ '2021-01-06'
9
9
  end
10
10
 
11
11
  def self.files
@@ -13,11 +13,15 @@ module JrJackson
13
13
  end
14
14
 
15
15
  def self.jackson_version
16
- '2.9.7'
16
+ '2.9.10'
17
+ end
18
+
19
+ def self.jackson_databind_version
20
+ '2.9.10.8'
17
21
  end
18
22
 
19
23
  def self.jar_version
20
- '1.2.26'
24
+ '1.2.32'
21
25
  end
22
26
 
23
27
  private
@@ -34,7 +38,7 @@ module JrJackson
34
38
  [
35
39
  "lib/com/fasterxml/jackson/core/jackson-annotations/#{jackson_version}/jackson-annotations-#{jackson_version}.jar",
36
40
  "lib/com/fasterxml/jackson/core/jackson-core/#{jackson_version}/jackson-core-#{jackson_version}.jar",
37
- "lib/com/fasterxml/jackson/core/jackson-databind/#{jackson_version}/jackson-databind-#{jackson_version}.jar",
41
+ "lib/com/fasterxml/jackson/core/jackson-databind/#{jackson_databind_version}/jackson-databind-#{jackson_databind_version}.jar",
38
42
  "lib/com/fasterxml/jackson/module/jackson-module-afterburner/#{jackson_version}/jackson-module-afterburner-#{jackson_version}.jar",
39
43
  "lib/jrjackson/jars/jrjackson-#{jar_version}.jar"
40
44
  ]
@@ -2,15 +2,15 @@
2
2
  begin
3
3
  require 'jar_dependencies'
4
4
  rescue LoadError
5
- require 'com/fasterxml/jackson/core/jackson-databind/2.9.7/jackson-databind-2.9.7.jar'
6
- require 'com/fasterxml/jackson/module/jackson-module-afterburner/2.9.7/jackson-module-afterburner-2.9.7.jar'
7
- require 'com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.jar'
8
- require 'com/fasterxml/jackson/core/jackson-annotations/2.9.7/jackson-annotations-2.9.7.jar'
5
+ require 'com/fasterxml/jackson/core/jackson-databind/2.9.10.8/jackson-databind-2.9.10.8.jar'
6
+ require 'com/fasterxml/jackson/core/jackson-annotations/2.9.10/jackson-annotations-2.9.10.jar'
7
+ require 'com/fasterxml/jackson/core/jackson-core/2.9.10/jackson-core-2.9.10.jar'
8
+ require 'com/fasterxml/jackson/module/jackson-module-afterburner/2.9.10/jackson-module-afterburner-2.9.10.jar'
9
9
  end
10
10
 
11
11
  if defined? Jars
12
- require_jar 'com.fasterxml.jackson.core', 'jackson-databind', '2.9.7'
13
- require_jar 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.9.7'
14
- require_jar 'com.fasterxml.jackson.core', 'jackson-core', '2.9.7'
15
- require_jar 'com.fasterxml.jackson.core', 'jackson-annotations', '2.9.7'
12
+ require_jar 'com.fasterxml.jackson.core', 'jackson-databind', '2.9.10.8'
13
+ require_jar 'com.fasterxml.jackson.core', 'jackson-annotations', '2.9.10'
14
+ require_jar 'com.fasterxml.jackson.core', 'jackson-core', '2.9.10'
15
+ require_jar 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.9.10'
16
16
  end
@@ -11,7 +11,7 @@ DO NOT MODIFIY - GENERATED CODE
11
11
  <modelVersion>4.0.0</modelVersion>
12
12
  <groupId>com.jrjackson.jruby</groupId>
13
13
  <artifactId>jrjackson</artifactId>
14
- <version>1.2.26</version>
14
+ <version>1.2.32</version>
15
15
  <name>A JRuby wrapper for the java jackson json processor jar</name>
16
16
  <description>A mostly native JRuby wrapper for the java jackson json processor jar</description>
17
17
  <url>http://github.com/guyboertje/jrjackson</url>
@@ -54,22 +54,22 @@ DO NOT MODIFIY - GENERATED CODE
54
54
  <dependency>
55
55
  <groupId>com.fasterxml.jackson.core</groupId>
56
56
  <artifactId>jackson-core</artifactId>
57
- <version>2.9.7</version>
57
+ <version>2.9.10</version>
58
58
  </dependency>
59
59
  <dependency>
60
60
  <groupId>com.fasterxml.jackson.core</groupId>
61
61
  <artifactId>jackson-annotations</artifactId>
62
- <version>2.9.7</version>
62
+ <version>2.9.10</version>
63
63
  </dependency>
64
64
  <dependency>
65
65
  <groupId>com.fasterxml.jackson.core</groupId>
66
66
  <artifactId>jackson-databind</artifactId>
67
- <version>2.9.7</version>
67
+ <version>2.9.10.8</version>
68
68
  </dependency>
69
69
  <dependency>
70
70
  <groupId>com.fasterxml.jackson.module</groupId>
71
71
  <artifactId>jackson-module-afterburner</artifactId>
72
- <version>2.9.7</version>
72
+ <version>2.9.10</version>
73
73
  </dependency>
74
74
  <dependency>
75
75
  <groupId>junit</groupId>
@@ -80,7 +80,7 @@ DO NOT MODIFIY - GENERATED CODE
80
80
  <dependency>
81
81
  <groupId>org.jruby</groupId>
82
82
  <artifactId>jruby</artifactId>
83
- <version>9.2.4.0</version>
83
+ <version>9.2.13.0</version>
84
84
  <scope>provided</scope>
85
85
  </dependency>
86
86
  </dependencies>
@@ -118,7 +118,7 @@ DO NOT MODIFIY - GENERATED CODE
118
118
  </executions>
119
119
  <configuration>
120
120
  <outputDirectory>lib/jrjackson/jars</outputDirectory>
121
- <finalName>jrjackson-1.2.26</finalName>
121
+ <finalName>jrjackson-1.2.32</finalName>
122
122
  </configuration>
123
123
  </plugin>
124
124
  <plugin>
@@ -129,7 +129,7 @@ DO NOT MODIFIY - GENERATED CODE
129
129
  <fileset>
130
130
  <directory>lib/jrjackson/jars</directory>
131
131
  <includes>
132
- <include>jrjackson-1.2.26.jar</include>
132
+ <include>jrjackson-1.2.32.jar</include>
133
133
  <include>*/**/*.jar</include>
134
134
  </includes>
135
135
  </fileset>
@@ -163,23 +163,6 @@ DO NOT MODIFIY - GENERATED CODE
163
163
  <skipTests>true</skipTests>
164
164
  </configuration>
165
165
  </plugin>
166
- <plugin>
167
- <groupId>org.torquebox.mojo</groupId>
168
- <artifactId>jruby9-exec-maven-plugin</artifactId>
169
- <version>0.3.1</version>
170
- <executions>
171
- <execution>
172
- <id>vendor-jars</id>
173
- <phase>prepare-package</phase>
174
- <goals>
175
- <goal>exec</goal>
176
- </goals>
177
- <configuration>
178
- <script>require 'jars/installer';Jars::Installer.vendor_jars!</script>
179
- </configuration>
180
- </execution>
181
- </executions>
182
- </plugin>
183
166
  </plugins>
184
167
  </build>
185
168
  </project>
@@ -234,13 +234,13 @@ public class RubyAnySerializer extends JsonSerializer<IRubyObject> {
234
234
  if (df == null) {
235
235
  // DateFormat should always be set
236
236
  provider.defaultSerializeDateValue(dt.getJavaDate(), jgen);
237
- } else if (df instanceof RubyDateFormat) {
237
+ } // RWB Note: I believe this is no longer used
238
+ else if (df instanceof RubyDateFormat) {
238
239
  // why another branch? I thought there was an easy win on to_s
239
240
  // maybe with jruby 9000
240
- RubyDateFormat rdf = (RubyDateFormat) df.clone();
241
- jgen.writeString(rdf.format(dt.getJavaDate()));
241
+ RubyDateFormat clonedRubyDateFormat = (RubyDateFormat) df.clone();
242
+ jgen.writeString(clonedRubyDateFormat.format(dt.getJavaDate()));
242
243
  } else {
243
- SimpleDateFormat sdf = (SimpleDateFormat) df.clone();
244
244
  jgen.writeString(df.format(dt.getJavaDate()));
245
245
  }
246
246
  }
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.Version;
5
5
  import com.fasterxml.jackson.databind.DeserializationFeature;
6
6
  import com.fasterxml.jackson.databind.ObjectMapper;
7
7
  import com.fasterxml.jackson.databind.SerializationFeature;
8
+ import com.fasterxml.jackson.databind.SerializationConfig;
8
9
  import com.fasterxml.jackson.databind.module.SimpleModule;
9
10
  import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider;
10
11
  import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
@@ -17,6 +18,16 @@ import java.util.TimeZone;
17
18
  public class RubyJacksonModule extends SimpleModule {
18
19
  public static final ObjectMapper static_mapper = new ObjectMapper();
19
20
  public static final JsonFactory factory = new JsonFactory(static_mapper).disable(JsonFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW);
21
+ private static final TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
22
+
23
+ private static final ThreadLocal<SimpleDateFormat> dateFormat = new ThreadLocal<SimpleDateFormat> () {
24
+ @Override
25
+ protected SimpleDateFormat initialValue() {
26
+ SimpleDateFormat rdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
27
+ rdf.setTimeZone(utcTimeZone);
28
+ return rdf;
29
+ }
30
+ };
20
31
 
21
32
  static {
22
33
  static_mapper.registerModule(new RubyJacksonModule().addSerializer(
@@ -27,7 +38,7 @@ public class RubyJacksonModule extends SimpleModule {
27
38
  }
28
39
 
29
40
  private RubyJacksonModule() {
30
- super("JrJacksonStrModule", new Version(1, 2, 18, "0", "com.jrjackson.jruby", "jrjackson"));
41
+ super("JrJacksonStrModule", new Version(1, 2, 28, "0", "com.jrjackson.jruby", "jrjackson"));
31
42
  }
32
43
 
33
44
  public static ObjectMapper mapperWith(Ruby ruby, RubyKeyConverter nameConverter,
@@ -46,17 +57,18 @@ public class RubyJacksonModule extends SimpleModule {
46
57
  }
47
58
 
48
59
  public static DefaultSerializerProvider createProvider(SimpleDateFormat sdf) {
49
- static_mapper.setDateFormat(sdf);
60
+ // Use a copy of the SerializationConfig to avoid calling setDateFormat on the static ObjectMapper
61
+ // object, removing its thread safety properties. In future, we might want to think about doing
62
+ // a refactor to use ObjectWriters instead of modifying serialization configs.
63
+ SerializationConfig config = static_mapper.getSerializationConfig().with(sdf);
50
64
  return ((DefaultSerializerProvider) static_mapper.getSerializerProvider()).createInstance(
51
- static_mapper.getSerializationConfig(),
65
+ config,
52
66
  static_mapper.getSerializerFactory()
53
67
  );
54
68
  }
55
69
 
56
70
  public static DefaultSerializerProvider createProvider() {
57
- SimpleDateFormat rdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
58
- rdf.setTimeZone(TimeZone.getTimeZone("UTC"));
59
- return createProvider(rdf);
71
+ return createProvider(dateFormat.get());
60
72
  }
61
73
 
62
74
  public static ObjectMapper rawBigNumberMapper() {
@@ -548,6 +548,21 @@ class JrJacksonTest < Test::Unit::TestCase
548
548
  assert_equal "{\"foo\":9223372036854775808,\"bar\":65536}", actual
549
549
  end
550
550
 
551
+
552
+ # This test failed more often than not before fixing the underlying code
553
+ # and would fail every time if `100_000.times` was changed to `loop`
554
+ def test_concurrent_dump
555
+ now = Time.now
556
+ num_threads = 100
557
+
558
+ threads = num_threads.times.map do |i|
559
+ Thread.new do
560
+ 100_000.times { JrJackson::Json.dump("a" => now) }
561
+ end
562
+ end
563
+ threads.each(&:join)
564
+ end
565
+
551
566
  # -----------------------------
552
567
 
553
568
  def assert_bigdecimal_equal(expected, actual)
@@ -1,20 +1,20 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: jrjackson 0.4.8 java lib
2
+ # stub: jrjackson 0.4.14 java lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "jrjackson".freeze
6
- s.version = "0.4.8"
6
+ s.version = "0.4.14"
7
7
  s.platform = "java".freeze
8
8
 
9
9
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
10
10
  s.require_paths = ["lib".freeze]
11
11
  s.authors = ["Guy Boertje".freeze]
12
- s.date = "2019-05-01"
12
+ s.date = "2021-01-06"
13
13
  s.description = "A mostly native JRuby wrapper for the java jackson json processor jar".freeze
14
14
  s.email = ["guyboertje@gmail.com".freeze]
15
15
  s.homepage = "http://github.com/guyboertje/jrjackson".freeze
16
16
  s.licenses = ["Apache License 2.0".freeze]
17
- s.requirements = ["jar com.fasterxml.jackson.core:jackson-core, 2.9.7".freeze, "jar com.fasterxml.jackson.core:jackson-annotations, 2.9.7".freeze, "jar com.fasterxml.jackson.core:jackson-databind, 2.9.7".freeze, "jar com.fasterxml.jackson.module:jackson-module-afterburner, 2.9.7".freeze]
17
+ s.requirements = ["jar com.fasterxml.jackson.core:jackson-core, 2.9.10".freeze, "jar com.fasterxml.jackson.core:jackson-annotations, 2.9.10".freeze, "jar com.fasterxml.jackson.core:jackson-databind, 2.9.10.8".freeze, "jar com.fasterxml.jackson.module:jackson-module-afterburner, 2.9.10".freeze]
18
18
  s.rubygems_version = "2.7.10".freeze
19
19
  s.summary = "A JRuby wrapper for the java jackson json processor jar".freeze
20
20
 
@@ -25,13 +25,13 @@ Gem::Specification.new do |s|
25
25
 
26
26
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
27
27
  s.add_development_dependency(%q<bundler>.freeze, ["~> 1.10"])
28
- s.add_development_dependency(%q<jar-dependencies>.freeze, ["< 2.0", ">= 0.3.2"])
28
+ s.add_development_dependency(%q<jar-dependencies>.freeze, [">= 0.3.2", "< 2.0"])
29
29
  else
30
30
  s.add_dependency(%q<bundler>.freeze, ["~> 1.10"])
31
- s.add_dependency(%q<jar-dependencies>.freeze, ["< 2.0", ">= 0.3.2"])
31
+ s.add_dependency(%q<jar-dependencies>.freeze, [">= 0.3.2", "< 2.0"])
32
32
  end
33
33
  else
34
34
  s.add_dependency(%q<bundler>.freeze, ["~> 1.10"])
35
- s.add_dependency(%q<jar-dependencies>.freeze, ["< 2.0", ">= 0.3.2"])
35
+ s.add_dependency(%q<jar-dependencies>.freeze, [">= 0.3.2", "< 2.0"])
36
36
  end
37
37
  end