Coder Social home page Coder Social logo

msgpack-ruby's Introduction

MessagePack

MessagePack is an efficient binary serialization format. It's like JSON. but fast and small.

This repository manages specification of MessagePack format. See Spec for the specification.

Implementation projects have each own repository. See msgpack.org website to find implementations and their documents.

If you'd like to show your msgpack implementation to the msgpack.org website, please follow the website document.

msgpack-ruby's People

Contributors

advect avatar ahorek avatar byroot avatar chrisseaton avatar christopheraue avatar cosmo0920 avatar dgryski avatar eregon avatar frsyuki avatar funny-falcon avatar gfx avatar grddev avatar iconara avatar kazuki avatar koichiro avatar kou avatar kzk avatar makamaka avatar mattheworiordan avatar methane avatar moriyoshi avatar muga avatar olleolleolle avatar peterzhu2118 avatar repeatedly avatar tagomoris avatar tanakh avatar tenderlove avatar tokuhirom avatar xerial avatar

Stargazers

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

Watchers

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

msgpack-ruby's Issues

msgpack-0.5.4 segment fault with fluentd-0.10.33

Hi, I'm using fluentd to transfer log.

I encountered this problem when using fluentd-0.10.33 with msgpack-0.5.4.

I'm using RHEL5.5.

the error logs is here

Segment fault doesn't show up every time.

Is there something wrong with my log size?

thanks!

Unpack strings to ASCII-8Bit, not UTF-8

MessagePack doesn't know the encoding of any String in a message serialized with MessagePack. Some of the Strings might be byte arrays (since there's no real distinction between Strings and byte arrays in MessagePack), and those will cause problems later when the wrongly-encoded Strings are used where a correct encoding is expected.

I suggest you set the encoding of unpacked Strings to ASCII-8Bit (Encoding::ASCII_8BIT). Users of this library who expect a String (not a byte array) will have to use String#force_encoding because only they know what unpacked Strings have which encoding.

Segfaults on very large message on 0.5.2 and 0.5.1 (works fine on 0.4.7)

I think I've found a bug in the newest (0.5.2 and 0.5.1) versions on the msgpack-ruby library when serializing very large messages. I'm running under MRI 1.9.3 and I've tried it both on p327 and p374 (and the issue happens on both). Using version 0.4.7 works fine.

I couldn't come up with a minimum working test case, but I do have a very large one which I've uploaded here: http://vps.nilson.org/test_msgpack.tar.gz

It happens on both of these Linux systems (dev laptop and production server):

Linux localhost.localdomain 2.6.43.8-1.fc15.x86_64 #1 SMP Mon Jun 4 20:33:44 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Linux xxxxxxxxxxx.com.br 2.6.35.6-48.fc14.x86_64 #1 SMP Fri Oct 22 15:36:08 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

In case you're not able to reproduce it, below is the stack trace - let me know if you need more details.

*** glibc detected *** ruby: munmap_chunk(): invalid pointer: 0x0000000002957a20 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3ecc878526]
/home/nilsonsfj/.rvm/gems/ruby-1.9.3-p327@omniworkers002/gems/msgpack-0.5.2/lib/msgpack/msgpack.so(_msgpack_buffer_shift_chunk+0x58)[0x7f02557134f8]
/home/nilsonsfj/.rvm/gems/ruby-1.9.3-p327@omniworkers002/gems/msgpack-0.5.2/lib/msgpack/msgpack.so(msgpack_buffer_clear+0x10)[0x7f0255713590]
/home/nilsonsfj/.rvm/gems/ruby-1.9.3-p327@omniworkers002/gems/msgpack-0.5.2/lib/msgpack/msgpack.so(MessagePack_pack+0x112)[0x7f0255715102]
/home/nilsonsfj/.rvm/gems/ruby-1.9.3-p327@omniworkers002/gems/msgpack-0.5.2/lib/msgpack/msgpack.so(+0x75a5)[0x7f02557175a5]
/home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9(+0x174501)[0x7f025c3e3501]
/home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9(+0x169fc9)[0x7f025c3d8fc9]
/home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9(+0x17045a)[0x7f025c3df45a]
/home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9(rb_iseq_eval_main+0xae)[0x7f025c3e551e]
/home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9(+0x62862)[0x7f025c2d1862]
/home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9(ruby_exec_node+0x1d)[0x7f025c2d260d]
/home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9(ruby_run_node+0x1e)[0x7f025c2d45be]
ruby[0x40081b]
/lib64/libc.so.6(__libc_start_main+0xed)[0x3ecc82135d]
ruby[0x400849]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:01 952034 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
00600000-00601000 rw-p 00000000 fd:01 952034 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
00fdc000-0314e000 rw-p 00000000 00:00 0 [heap]
3532800000-3532808000 r-xp 00000000 fd:01 15909 /lib64/libcrypt-2.14.1.so
3532808000-3532a07000 ---p 00008000 fd:01 15909 /lib64/libcrypt-2.14.1.so
3532a07000-3532a08000 r--p 00007000 fd:01 15909 /lib64/libcrypt-2.14.1.so
3532a08000-3532a09000 rw-p 00008000 fd:01 15909 /lib64/libcrypt-2.14.1.so
3532a09000-3532a37000 rw-p 00000000 00:00 0
3532c00000-3532c5d000 r-xp 00000000 fd:01 4729 /lib64/libfreebl3.so
3532c5d000-3532e5d000 ---p 0005d000 fd:01 4729 /lib64/libfreebl3.so
3532e5d000-3532e5e000 r--p 0005d000 fd:01 4729 /lib64/libfreebl3.so
3532e5e000-3532e5f000 rw-p 0005e000 fd:01 4729 /lib64/libfreebl3.so
3532e5f000-3532e63000 rw-p 00000000 00:00 0
3ecc400000-3ecc41f000 r-xp 00000000 fd:01 5231 /lib64/ld-2.14.1.so
3ecc61e000-3ecc61f000 r--p 0001e000 fd:01 5231 /lib64/ld-2.14.1.so
3ecc61f000-3ecc620000 rw-p 0001f000 fd:01 5231 /lib64/ld-2.14.1.so
3ecc620000-3ecc621000 rw-p 00000000 00:00 0
3ecc800000-3ecc990000 r-xp 00000000 fd:01 5248 /lib64/libc-2.14.1.so
3ecc990000-3eccb8f000 ---p 00190000 fd:01 5248 /lib64/libc-2.14.1.so
3eccb8f000-3eccb93000 r--p 0018f000 fd:01 5248 /lib64/libc-2.14.1.so
3eccb93000-3eccb94000 rw-p 00193000 fd:01 5248 /lib64/libc-2.14.1.so
3eccb94000-3eccb9a000 rw-p 00000000 00:00 0
3eccc00000-3eccc02000 r-xp 00000000 fd:01 6228 /lib64/libdl-2.14.1.so
3eccc02000-3ecce02000 ---p 00002000 fd:01 6228 /lib64/libdl-2.14.1.so
3ecce02000-3ecce03000 r--p 00002000 fd:01 6228 /lib64/libdl-2.14.1.so
3ecce03000-3ecce04000 rw-p 00003000 fd:01 6228 /lib64/libdl-2.14.1.so
3ecd000000-3ecd016000 r-xp 00000000 fd:01 5818 /lib64/libpthread-2.14.1.so
3ecd016000-3ecd215000 ---p 00016000 fd:01 5818 /lib64/libpthread-2.14.1.so
3ecd215000-3ecd216000 r--p 00015000 fd:01 5818 /lib64/libpthread-2.14.1.so
3ecd216000-3ecd217000 rw-p 00016000 fd:01 5818 /lib64/libpthread-2.14.1.so
3ecd217000-3ecd21b000 rw-p 00000000 00:00 0
3ecd400000-3ecd407000 r-xp 00000000 fd:01 5829 /lib64/librt-2.14.1.so
3ecd407000-3ecd606000 ---p 00007000 fd:01 5829 /lib64/librt-2.14.1.so
3ecd606000-3ecd607000 r--p 00006000 fd:01 5829 /lib64/librt-2.14.1.so
3ecd607000-3ecd608000 rw-p 00007000 fd:01 5829 /lib64/librt-2.14.1.so
3ecd800000-3ecd815000 r-xp 00000000 fd:01 5580 /lib64/libgcc_s-4.6.3-20120306.so.1
3ecd815000-3ecda14000 ---p 00015000 fd:01 5580 /lib64/libgcc_s-4.6.3-20120306.so.1
3ecda14000-3ecda15000 rw-p 00014000 fd:01 5580 /lib64/libgcc_s-4.6.3-20120306.so.1
3ecdc00000-3ecdc83000 r-xp 00000000 fd:01 5255 /lib64/libm-2.14.1.so
3ecdc83000-3ecde82000 ---p 00083000 fd:01 5255 /lib64/libm-2.14.1.so
3ecde82000-3ecde83000 r--p 00082000 fd:01 5255 /lib64/libm-2.14.1.so
3ecde83000-3ecde84000 rw-p 00083000 fd:01 5255 /lib64/libm-2.14.1.so
7f0254b1c000-7f0254d0a000 rw-p 00000000 00:00 0
7f0254d0a000-7f0254dea000 rw-p 00000000 00:00 0
7f0254e91000-7f0255138000 rw-p 00000000 00:00 0
7f0255710000-7f025571e000 r-xp 00000000 fd:01 1087168 /home/nilsonsfj/.rvm/gems/ruby-1.9.3-p327@omniworkers002/gems/msgpack-0.5.2/lib/msgpack/msgpack.so
7f025571e000-7f025591d000 ---p 0000e000 fd:01 1087168 /home/nilsonsfj/.rvm/gems/ruby-1.9.3-p327@omniworkers002/gems/msgpack-0.5.2/lib/msgpack/msgpack.so
7f025591d000-7f025591e000 rw-p 0000d000 fd:01 1087168 /home/nilsonsfj/.rvm/gems/ruby-1.9.3-p327@omniworkers002/gems/msgpack-0.5.2/lib/msgpack/msgpack.so
7f025591e000-7f0255920000 r-xp 00000000 fd:01 61764 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so
7f0255920000-7f0255b20000 ---p 00002000 fd:01 61764 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so
7f0255b20000-7f0255b21000 rw-p 00002000 fd:01 61764 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so
7f0255b21000-7f0255b23000 r-xp 00000000 fd:01 61767 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so
7f0255b23000-7f0255d22000 ---p 00002000 fd:01 61767 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so
7f0255d22000-7f0255d23000 rw-p 00001000 fd:01 61767 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so
7f0255d23000-7f0255d24000 ---p 00000000 00:00 0
7f0255d24000-7f0255e28000 rw-p 00000000 00:00 0
7f0255e28000-7f025c24b000 r--p 00000000 fd:01 54046 /usr/lib/locale/locale-archive
7f025c24b000-7f025c251000 rw-p 00000000 00:00 0
7f025c26e000-7f025c26f000 rw-p 00000000 00:00 0
7f025c26f000-7f025c486000 r-xp 00000000 fd:01 952036 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9.1
7f025c486000-7f025c686000 ---p 00217000 fd:01 952036 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9.1
7f025c686000-7f025c68e000 rw-p 00217000 fd:01 952036 /home/nilsonsfj/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.so.1.9.1
7f025c68e000-7f025c6ab000 rw-p 00000000 00:00 0
7fff9bdbb000-7fff9bddd000 rw-p 00000000 00:00 0 [stack]
7fff9bdff000-7fff9be00000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted (core dumped)

Documentation of Unpacker#read

I want to read just one message from an IO stream (e.g. a TCPSocket) and have it returned. How to do this is not clearly documented.

After reading the API docs the best I could come up with was this ugly solution:

u = MessagePack::Unpacker.new(s)
res = nil
u.each { |m| res = m; break }

However after digging around the ext source I found Unpacker#read. The documentation says:

Deserializes an object from internal buffer and returns it. If there're [sic] not enough buffer, this method raises EOFError

That doesn't sound at all like what I want. I want is for it to wait until enough data is available, if necessary calling readpartial() repeatedly on the IO stream until there is enough for a complete msgpack message, an then return it. And by testing, it appears that is indeed what it does - it certainly doesn't raise an EOFError if the buffer is empty and it is waiting for data.

If this is correct, then I think the documentation could be much clearer. I would suggest something along these lines:

"Reads data from the IO stream until there is enough to deserialize one object, and returns that object. If excess data is read then it is retained in an internal buffer to be processed by subsequent calls to this method.

If the IO object is closed before the end of the object this method raises EOFError. If data format is invalid, this method raises MessagePack::MalformedFormatError. If the stack is too deep, this method raises MessagePack::StackError."

Kernel panic on to_msgpack

I'm using Ruby 2.2.2 on Mac 10.10.4, and the stuff-classifier gem, which pulls in msgpack 0.6.1.

I've trained the classifier on a large list of words, resulting in a hash 5mb hash structure like so:

{"aardvark"=>{:public=>1},
 "aardwolf"=>{:public=>1},
 "aaron"=>{:public=>1, :confidential=>3},
 "aback"=>{:public=>1},
 "abacu"=>{:public=>1},
 "abaft"=>{:public=>1},

The classifier tries to pack it, and a kernel panic ensues. I've tried recreating this by creating another large hash, but it serializes without issue.

https://gist.github.com/justinwiley/9a6c59000949a1fcac3a

undefined method `to_msgpack' for Cql::TimeUuid & bignum too big to convert

I have keywords that I store into cassandra using Cequel. When I want to pack it using to_msgpack, I get the following error.

irb(main):024:0> Keywords.first.as_json.to_msgpack
NoMethodError: undefined method `to_msgpack' for #<Cql::TimeUuid:0x007fcf43dff830>
    from (irb):24:in `to_msgpack'
    from (irb):24
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:90:in `start'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:9:in `start'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:69:in `console'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands.rb:17:in `<top (required)>'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/mickael/Documents/adwords-api/bin/rails:8:in `<top (required)>'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `load'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `block in load'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `load'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/commands/rails.rb:6:in `call'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/command_wrapper.rb:38:in `call'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:183:in `block in serve'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:156:in `fork'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:156:in `serve'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:131:in `block in run'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:125:in `loop'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:125:in `run'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application/boot.rb:18:in `<top (required)>'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'irb(main):025:0>

I understand what this error is about.
I would suggest that to_msgpack call as_json when it can't to_msgpack in first place.
Because #<Cql::TimeUuid:0x007fcf43dff830>.as_json gives {"n"=>81669062298108866050539035482603516879}.
But then here is the thing {"n"=>81669062298108866050539035482603516879}.to_msgpack gives RangeError: bignum too big to convert into 'unsigned long long'.

irb(main):028:0> {"n"=>81669062298108866050539035482603516879}.to_msgpack
RangeError: bignum too big to convert into `unsigned long long'
    from (irb):28:in `to_msgpack'
    from (irb):28
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:90:in `start'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:9:in `start'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:69:in `console'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands.rb:17:in `<top (required)>'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/mickael/Documents/adwords-api/bin/rails:8:in `<top (required)>'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `load'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `block in load'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `load'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/commands/rails.rb:6:in `call'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/command_wrapper.rb:38:in `call'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:183:in `block in serve'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:156:in `fork'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:156:in `serve'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:131:in `block in run'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:125:in `loop'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application.rb:125:in `run'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/spring-1.2.0/lib/spring/application/boot.rb:18:in `<top (required)>'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'

Extension type for modules

Currently, an extension type can only be registered for classes: https://github.com/msgpack/msgpack-ruby/blob/master/ext/msgpack/packer_class.c#L283.

Couldn't modules be allowed as well? Inheritance of ext types works and already checks modules in the ancestor chain: https://github.com/msgpack/msgpack-ruby/blob/master/ext/msgpack/packer_ext_registry.h#L55

I'm looking to accomplish something like this (without inheritance):

module Local
  def local_id
    # ...
  end
end

class LocalObject
  include Local
end

pk = MessagePack::Packer.new(io)
pk.register_type(0x01, Local) { |obj| obj.local_id }

obj1 = LocalObject.new
pk.write(obj1)

obj2 = LocalObject.new
pk.write(obj2)

And deserializing on a remote machine:

class RemoteObject
  def initialize(remote_id)
    # ...
  end
end

uk = MessagePack::Unpacker.new(io)
uk.register_type(0x01) { |remote_id| RemoteObject.new(remote_id) }

Invalid argument @ io_getpartial when loading from big files

The following code triggers the error:

require 'msgpack'
require 'fileutils'
require 'securerandom'

TMP_FILE_PATH = "/tmp/testmsgpack1"
MAX_SIZE = 1_000_000 * 3_000 # 3gb
# note that no error is raised if for example MAX_SIZE = 2mb

def generate_random_string
  string = "".force_encoding("BINARY")
  loop do
    string << (SecureRandom.random_bytes(2048)*100)
    return string if string.bytesize >= MAX_SIZE
  end
end

begin
  # Create an hash with 3 keys, the value of the key "c" is a binary string of 3gb
  print "to_msgpack..."
  string = {"a" => "foo", "b" => 42, "c" => generate_random_string}.to_msgpack
  puts "done"

  # Write the msgpack to disk
  print "write to disk..."
  File.open(TMP_FILE_PATH, "wb") do |f|
    curr = 0
    loop do
      buffer = string[curr..curr+20000-1]
      break if buffer.to_s.bytesize == 0
      curr += f.write(buffer)
    end
  end
  puts "done"

  # Load it...
  print "loading..."
  # the next line will trigger `readpartial': Invalid argument @ io_getpartial - /tmp/testmsgpack1 (Errno::EINVAL) 
  MessagePack.load(File.open(TMP_FILE_PATH))
  puts "done"
ensure
  FileUtils.rm_f(TMP_FILE_PATH)
end

0.6.0 generates messages not decodable by msgpack-js 0.3.0

This lib: https://github.com/creationix/msgpack-js

Can no longer decode messages that contain | (pipe) characters which are generated by msgpack-ruby 0.6.0.

msgpack-js throws this:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: -590689048 trailing bytes
  at Object.decode (/var/www/pigeon/node_modules/socket.io-redis/node_modules/msgpack-js/msgpack.js:201:47)
  at Redis.onmessage (/var/www/pigeon/node_modules/socket.io-redis/index.js:94:24)
  at RedisClient.emit (events.js:106:17)
  at RedisClient.return_reply (/var/www/pigeon/node_modules/redis/index.js:696:22)
  at HiredisReplyParser.<anonymous> (/var/www/pigeon/node_modules/redis/index.js:321:14)
  at HiredisReplyParser.emit (events.js:95:17)
  at HiredisReplyParser.execute (/var/www/pigeon/node_modules/redis/lib/parser/hiredis.js:43:18)
  at RedisClient.on_data (/var/www/pigeon/node_modules/redis/index.js:547:27)
  at Socket.<anonymous> (/var/www/pigeon/node_modules/redis/index.js:102:14)
  at Socket.emit (events.js:95:17)

Don't know which packages fault it is...

Automatic UTF-8 string encoding in Ruby 1.9 can cause unexpected results

If encoding is available, unpacked strings are always encoded using UTF-8. This can cause problems if the packed string data was meant to use a different encoding such as ASCII-8BIT. For example,

sha    = '0123456789aabbcdfeff01234567890123456789'

packed = [sha].pack('H*')
=> "\x01#Eg\x89\xAA\xBB\xCD\xFE\xFF\x01#Eg\x89\x01#Eg\x89"

packed.encoding
=> #<Encoding:ASCII-8BIT>

hash   = {packed => 1}
=> {"\x01#Eg\x89\xAA\xBB\xCD\xFE\xFF\x01#Eg\x89\x01#Eg\x89"=>1}

rehash = MessagePack.unpack(hash.to_msgpack)
=> {"\u0001#Eg\x89\xAA\xBB\xCD\xFE\xFF\u0001#Eg\x89\u0001#Eg\x89"=>1}

hash.has_key? packed
=> true

rehash.has_key? packed
=> false

irb(main):085:0> rehash.keys.map{|k| k.encode('BINARY')}
Encoding::InvalidByteSequenceError: "\x89" on UTF-8
    from (irb):85:in `encode'
    from (irb):85:in `block in irb_binding'
    from (irb):85:in `map'
    from (irb):85
    from /opt/boxen/rbenv/versions/1.9.3/bin/irb:12:in `<main>'

Build against ruby 2.4.0

It looks like msgpack is going to need an update to build against ruby 2.4.0. It may be due to https://bugs.ruby-lang.org/issues/12005

Installing msgpack 0.7.6 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
    current directory: /home/travis/.rvm/gems/ruby-head/gems/msgpack-0.7.6/ext/msgpack
/home/travis/.rvm/rubies/ruby-head/bin/ruby -r ./siteconf20160621-4953-5q7k55.rb extconf.rb
checking for ruby/st.h... yes
checking for st.h... yes
checking for rb_str_replace() in ruby.h... yes
checking for rb_intern_str() in ruby.h... yes
checking for rb_sym2str() in ruby.h... yes
checking for rb_str_intern() in ruby.h... yes
checking for rb_block_lambda() in ruby.h... yes
checking for rb_hash_dup() in ruby.h... yes
checking for rb_hash_clear() in ruby.h... yes
creating Makefile
To see why this extension failed to compile, please check the mkmf.log which can be found here:
  /home/travis/.rvm/gems/ruby-head/extensions/x86_64-linux/2.4.0/msgpack-0.7.6/mkmf.log
current directory: /home/travis/.rvm/gems/ruby-head/gems/msgpack-0.7.6/ext/msgpack
make "DESTDIR=" clean
current directory: /home/travis/.rvm/gems/ruby-head/gems/msgpack-0.7.6/ext/msgpack
make "DESTDIR="
compiling buffer.c
compiling buffer_class.c
compiling core_ext.c
core_ext.c: In function ‘MessagePack_core_ext_module_init’:
core_ext.c:135:22: error: ‘rb_cFixnum’ undeclared (first use in this function)
core_ext.c:135:22: note: each undeclared identifier is reported only once for each function it appears in
core_ext.c:136:22: error: ‘rb_cBignum’ undeclared (first use in this function)

hang in readpartial

$ ruby -v
ruby 2.0.0p0 (2013-02-24) [i686-linux]

The following code hangs in readpartial:

require 'socket'
require 'msgpack'

svr, cli = UNIXSocket.pair

MessagePack.dump 0, svr
MessagePack.load cli

MessagePack.dump 1, cli

Thread.new do
  MessagePack.load svr
  MessagePack.dump 2, svr
end

p MessagePack.load cli

You can get around this by any of the following

  1. use Marshal instead of MessagePack
  2. skip the first dump/load pair
  3. use fork instead of thread
  4. sleep briefly before the final load

You can see these in action by running the following code with an arg of 1, 2, 3, 4, respectively.

require 'socket'
require 'msgpack'

fix = ARGV.shift

ser = fix == "1" ? Marshal : MessagePack

svr, cli = UNIXSocket.pair

if fix != "2"
  ser.dump 0, svr
  ser.load cli
end

ser.dump 1, cli

meth = fix == "3" ? method(:fork) : Thread.method(:new)
meth.call do
  ser.load svr
  ser.dump 2, svr
end

if fix == "4"
  sleep 0.1
end

p ser.load cli

Here's another variant:

require 'socket'
require 'msgpack'

svr, cli = UNIXSocket.pair

#ser = Marshal
ser = MessagePack

#fork do
Thread.new do
  ser.dump 0, svr
  ser.load svr
  ser.dump 2, svr
end

ser.load cli
ser.dump 1, cli
p ser.load cli

The output is "1". However, if you replace MessagePack with Marshal OR replace thread with fork, then the output is "2".

Does not work with BigDecimal

{ foo: 'bar', big: BigDecimal.new("20") }.to_msgpack
NoMethodError: undefined method `to_msgpack' for #<BigDecimal:7fab19c6f770,'0.2E2',9(18)>

Is this by design?

Add bits for unpacking into a canonical class name

Purpose
Allow a serialized object to declare its type through a two-part signature. When the header byte is encountered by the Decoder, a new instance of the declared class is created.

Objective
Should this be possible, it would allow objects to serialize themselves by encapsulating their initialization parameters and provide a built-in parity to the JSON.load() method from the JSON gem.

Psuedo-code implementation would be something along the lines of:

if high nibble (outer) is 0x0:
    define className as UTF8 string of indicated length
    if low nibble is 0x1:
        payload is the immediately following Hash
    else if low nibble is 0x2:
        payload is the immediately following Array
    define clazz as the class or module identified by canonical class name className
    initialize a new instance using the payload (splat it if it's an Array)

Results
Ultimately the objective would be:

require 'msgpack'

# Demo is a class that implements a custom .to_msgpack() method
msg = Demo.new( 1, 2, 3 ).to_msgpack
obj = MessagePack.unpack( msg ) # => a new Demo instance initialized with arguments: 1, 2, 3

Support for Extended types?

It looks like there isn't support for extended types yet, despite a stale pull request (#14).

Are there plans to implement it? It's a must-have to integrate with the Neovim MessagePack API. I would love to help but I've never written C in my life 😞

Great work with this! 😄

ArgumentError: Cannot pack type: org.jruby.RubyTime

I am using logstash with fluent codec which is depend on msgpack-ruby library, but I got the error that complain about cannot pack RubyTime type like this

ArgumentError: Cannot pack type: org.jruby.RubyTime
           pack at org/msgpack/jruby/MessagePackLibrary.java:63
         encode at /home/logstash/lib/logstash/codecs/fluent.rb:52
        receive at /home/logstash/lib/logstash/outputs/tcp.rb:143
         handle at /home/logstash/lib/logstash/outputs/base.rb:86
     initialize at (eval):61
           call at org/jruby/RubyProc.java:271
         output at /home/logstash/lib/logstash/pipeline.rb:266
   outputworker at /home/logstash/lib/logstash/pipeline.rb:225
  start_outputs at /home/logstash/lib/logstash/pipeline.rb:152

Around line 52 of fluent.rb is

  public
  def encode(event)
    tag = event["tags"] || "log"
    epochtime = event["@timestamp"].to_i
    @on_event.call(MessagePack.pack([ tag, epochtime, event.to_hash ]))
  end # def encode

Any clue ?

Java::JavaLang::IndexOutOfBoundsException in :pack

We have a rather big application running on jruby(1.7.15) which uses msgpack to send messages to rabbitmq.

We just wanted to update out mongodb driver which also updates the bson gem and we suddenly see lots of Java::JavaLang::IndexOutOfBoundsException from java.nio.Buffer.checkBounds(Buffer.java:567) which as you can see below in the - rather long - stacktrace is called from within msgpack.

We are using msgpack version 0.7.4 but looking at the changelog and commit for 0.7.5 nothing of relevance changed.

I'm also not able to reproduce this on my local setup - msgpack is just able to pack whatever I throw at it. Has anyone maybe an insight why updating bson from v3 to v4 can have an impact on how msgpack operates? (could also be in the mongo gem but that doesn't have any native java code)

I opened the issue here and not in the mongo or bson gem as the error clearly comes from msgpack and not the other gems.

  java.nio.Buffer.checkBounds(Buffer.java:567)
  java.nio.HeapByteBuffer.put(HeapByteBuffer.java:187)
  org.msgpack.jruby.Encoder.appendBignum(Encoder.java:134)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:106)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.appendArrayElements(Encoder.java:265)
  org.msgpack.jruby.Encoder.appendArray(Encoder.java:240)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:116)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:95)
  org.msgpack.jruby.Encoder.access$000(Encoder.java:29)
  org.msgpack.jruby.Encoder$HashVisitor.visit(Encoder.java:312)
  org.jruby.RubyHash.visitLimited(RubyHash.java:648)
  org.jruby.RubyHash.visitAll(RubyHash.java:634)
  org.msgpack.jruby.Encoder.appendHashElements(Encoder.java:296)
  org.msgpack.jruby.Encoder.appendHash(Encoder.java:271)
  org.msgpack.jruby.Encoder.appendObject(Encoder.java:118)
  org.msgpack.jruby.Encoder.encode(Encoder.java:75)
  org.msgpack.jruby.Packer.write(Packer.java:108)
  org.msgpack.jruby.MessagePackLibrary$MessagePackModule.pack(MessagePackLibrary.java:114)
  org.msgpack.jruby.MessagePackLibrary$MessagePackModule$INVOKER$s$0$1$pack.call(MessagePackLibrary$MessagePackModule$INVOKER$s$0$1$pack.gen)
  org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:665)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.CaseNode.interpret(CaseNode.java:138)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:204)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:206)
  org.jruby.RubyClass.finvoke(RubyClass.java:567)
  org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1507)
  org.jruby.RubyBasicObject$INVOKER$i$send19.call(RubyBasicObject$INVOKER$i$send19.gen)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:211)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:217)
  org.jruby.ast.CallSpecialArgBlockPassNode.interpret(CallSpecialArgBlockPassNode.java:66)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:112)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:164)
  org.jruby.RubyKernel.public_send(RubyKernel.java:1952)
  org.jruby.RubyKernel$INVOKER$s$0$0$public_send.call(RubyKernel$INVOKER$s$0$0$public_send.gen)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:218)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:214)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:346)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:204)
  org.jruby.ast.CallSpecialArgNode.interpret(CallSpecialArgNode.java:69)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:194)
  org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:125)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.RubyProc.call19(RubyProc.java:271)
  org.jruby.RubyProc$INVOKER$i$0$0$call19.call(RubyProc$INVOKER$i$0$0$call19.gen)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:202)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  rubyjit.Repository::BaseMethods::ClassMethods$$around_68f27b02385138f037bb42a3ae3a7a72d64b5125973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb:49)
  rubyjit$Repository::BaseMethods::ClassMethods$$around_68f27b02385138f037bb42a3ae3a7a72d64b5125973103203$block_0$RUBY.call(rubyjit$Repository::BaseMethods::ClassMethods$$around_68f27b02385138f037bb42a3ae3a7a72d64b5125973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:159)
  org.jruby.runtime.CompiledBlock19.call(CompiledBlock19.java:87)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.RubyProc.call19(RubyProc.java:271)
  org.jruby.RubyProc$INVOKER$i$0$0$call19.call(RubyProc$INVOKER$i$0$0$call19.gen)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:202)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:194)
  org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:125)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
  org.jruby.RubyKernel.public_send(RubyKernel.java:1952)
  org.jruby.RubyKernel$INVOKER$s$0$0$public_send.call(RubyKernel$INVOKER$s$0$0$public_send.gen)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:218)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:356)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:213)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  org.jruby.runtime.callsite.CachingCallSite.callVarargsIter(CachingCallSite.java:124)
  rubyjit.Repository::BaseMethods::ClassMethods$$around_68f27b02385138f037bb42a3ae3a7a72d64b5125973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb:45)
  rubyjit.Repository::BaseMethods::ClassMethods$$around_68f27b02385138f037bb42a3ae3a7a72d64b5125973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:101)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:286)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:81)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:85)
  rubyjit.Repository::BaseMethods::ClassMethods$$wrap_0c10f26f02a78039c896178f178cc55456aa1e54973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb:63)
  rubyjit.Repository::BaseMethods::ClassMethods$$wrap_0c10f26f02a78039c896178f178cc55456aa1e54973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:356)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:213)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  org.jruby.ast.FCallTwoArgBlockNode.interpret(FCallTwoArgBlockNode.java:34)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:194)
  org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:125)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:210)
  org.jruby.RubyClass.finvoke(RubyClass.java:567)
  org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1507)
  org.jruby.RubyBasicObject$INVOKER$i$send19.call(RubyBasicObject$INVOKER$i$send19.gen)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:211)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:217)
  org.jruby.ast.CallSpecialArgBlockPassNode.interpret(CallSpecialArgBlockPassNode.java:66)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:182)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:268)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:230)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:236)
  org.jruby.ast.CallThreeArgNode.interpret(CallThreeArgNode.java:61)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:268)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:230)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:236)
  org.jruby.ast.FCallThreeArgNode.interpret(FCallThreeArgNode.java:40)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:194)
  org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:125)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
  org.jruby.RubyKernel.public_send(RubyKernel.java:1952)
  org.jruby.RubyKernel$INVOKER$s$0$0$public_send.call(RubyKernel$INVOKER$s$0$0$public_send.gen)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:226)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:245)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:256)
  org.jruby.runtime.callsite.CachingCallSite.callVarargsIter(CachingCallSite.java:125)
  rubyjit.Repository::BaseMethods::ClassMethods$$around_68f27b02385138f037bb42a3ae3a7a72d64b5125973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb:45)
  rubyjit.Repository::BaseMethods::ClassMethods$$around_68f27b02385138f037bb42a3ae3a7a72d64b5125973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:101)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:79)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:85)
  rubyjit.Repository::BaseMethods::ClassMethods$$wrap_0c10f26f02a78039c896178f178cc55456aa1e54973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb:63)
  rubyjit.Repository::BaseMethods::ClassMethods$$wrap_0c10f26f02a78039c896178f178cc55456aa1e54973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/repository-1.3.0/lib/repository/base_methods.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:211)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  org.jruby.ast.FCallTwoArgBlockNode.interpret(FCallTwoArgBlockNode.java:34)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:194)
  org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:125)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:218)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:214)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:346)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:204)
  org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:204)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:206)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:86)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:336)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:179)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:183)
  org.jruby.ast.FCallSpecialArgBlockPassNode.interpret(FCallSpecialArgBlockPassNode.java:38)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)
  org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:130)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:82)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:81)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:356)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:213)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  org.jruby.ast.CallTwoArgBlockNode.interpret(CallTwoArgBlockNode.java:62)
  org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:61)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
  org.jruby.ast.FCallSpecialArgBlockPassNode.interpret(FCallSpecialArgBlockPassNode.java:36)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)
  org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:130)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:82)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:81)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:356)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:213)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  org.jruby.ast.CallTwoArgBlockNode.interpret(CallTwoArgBlockNode.java:62)
  org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
  rubyjit.Samples::UseCase::Base$$run_9eb9b7fda79618478be24526bbb43e95b8767cad973103203.__file__(/home/samples/apps/samples/current/lib/samples/use_case/base.rb:10)
  rubyjit.Samples::UseCase::Base$$run_9eb9b7fda79618478be24526bbb43e95b8767cad973103203.__file__(/home/samples/apps/samples/current/lib/samples/use_case/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:193)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
  org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:112)
  rubyjit.Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer.rb:347)
  rubyjit$Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203$block_0$RUBY.call(rubyjit$Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:82)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:81)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:211)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  rubyjit.Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer.rb:345)
  rubyjit.Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:38)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)
  org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)
  org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:204)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:206)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:86)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:336)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:179)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:183)
  org.jruby.ast.FCallSpecialArgBlockPassNode.interpret(FCallSpecialArgBlockPassNode.java:38)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)
  org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:130)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:82)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:81)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:356)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:213)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  org.jruby.ast.CallTwoArgBlockNode.interpret(CallTwoArgBlockNode.java:62)
  org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:61)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)
  org.jruby.runtime.Block.yield(Block.java:142)
  org.jruby.RubyArray.eachCommon(RubyArray.java:1606)
  org.jruby.RubyArray.each(RubyArray.java:1613)
  org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)
  org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:182)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  org.jruby.ast.VCallNode.interpret(VCallNode.java:88)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
  org.jruby.ast.FCallSpecialArgBlockPassNode.interpret(FCallSpecialArgBlockPassNode.java:36)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)
  org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:130)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:82)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:81)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:211)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  org.jruby.ast.CallTwoArgBlockNode.interpret(CallTwoArgBlockNode.java:62)
  org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
  rubyjit.Samples::UseCase::Base$$run_9eb9b7fda79618478be24526bbb43e95b8767cad973103203.__file__(/home/samples/apps/samples/current/lib/samples/use_case/base.rb:10)
  rubyjit.Samples::UseCase::Base$$run_9eb9b7fda79618478be24526bbb43e95b8767cad973103203.__file__(/home/samples/apps/samples/current/lib/samples/use_case/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:193)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
  org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:112)
  rubyjit.Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer.rb:347)
  rubyjit$Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203$block_0$RUBY.call(rubyjit$Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:82)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb:81)
  rubyjit.NewRelic::Agent::MethodTracerHelpers$$trace_execution_scoped_45afeac7a255ed4819792caf37af2fe3cb3a390b973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer_helpers.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:241)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:211)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:222)
  rubyjit.Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer.rb:345)
  rubyjit.Samples::UseCase::Base$$run_with_trace_Custom_Samples_UseCase_Base_run_6ce392366712aebc070d37c77ba276e1a127b2c5973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/method_tracer.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:38)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)
  org.jruby.ast.CallThreeArgNode.interpret(CallThreeArgNode.java:61)
  org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:182)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)
  org.jruby.ast.VCallNode.interpret(VCallNode.java:88)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
  org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)
  org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:194)
  org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:125)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:202)
  org.jruby.RubyMethod.call(RubyMethod.java:124)
  org.jruby.RubyMethod$INVOKER$i$call.call(RubyMethod$INVOKER$i$call.gen)
  org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrNBlock.call(JavaMethod.java:280)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  rubyjit.Sinatra::Base$$compile!_9abf4a3ab999ff207c20250828ccd882f177fe61973103203.block_2$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611)
  rubyjit$Sinatra::Base$$compile!_9abf4a3ab999ff207c20250828ccd882f177fe61973103203$block_2$RUBY.call(rubyjit$Sinatra::Base$$compile!_9abf4a3ab999ff207c20250828ccd882f177fe61973103203$block_2$RUBY)
  org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:159)
  org.jruby.runtime.CompiledBlock19.call(CompiledBlock19.java:87)
  org.jruby.runtime.Block.call(Block.java:101)
  org.jruby.RubyProc.call(RubyProc.java:290)
  org.jruby.RubyProc.call19(RubyProc.java:271)
  org.jruby.RubyProc$INVOKER$i$0$0$call19.call(RubyProc$INVOKER$i$0$0$call19.gen)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:218)
  org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:214)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:202)
  org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:104)
  rubyjit.Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203.block_2$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:975)
  rubyjit$Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203$block_2$RUBY.call(rubyjit$Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203$block_2$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.Sinatra::Base$$route_eval_58ba4ed397523fc12c1ff3a49e3b36fb3c8f4be2973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:994)
  rubyjit.Sinatra::Base$$route_eval_58ba4ed397523fc12c1ff3a49e3b36fb3c8f4be2973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:193)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
  org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:112)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$route_eval_with_newrelic_248d7a2fe1514a53ab255e4bbac1881fa51839c2973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb:139)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$route_eval_with_newrelic_248d7a2fe1514a53ab255e4bbac1881fa51839c2973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:38)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:193)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)
  rubyjit.Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203.block_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:975)
  rubyjit$Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203$block_1$RUBY.call(rubyjit$Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203$block_1$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:102)
  org.jruby.runtime.Block.yieldSpecific(Block.java:129)
  rubyjit.Sinatra::Base$$process_route_9fb84091f90b19393fb4c4da473f2a6137279929973103203.block_2$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015)
  rubyjit$Sinatra::Base$$process_route_9fb84091f90b19393fb4c4da473f2a6137279929973103203$block_2$RUBY.call(rubyjit$Sinatra::Base$$process_route_9fb84091f90b19393fb4c4da473f2a6137279929973103203$block_2$RUBY)
  org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:135)
  org.jruby.runtime.Block.yield(Block.java:142)
  org.jruby.RubyContinuation.enter(RubyContinuation.java:107)
  org.jruby.RubyKernel.rbCatch19Common(RubyKernel.java:1271)
  org.jruby.RubyKernel.rbCatch19(RubyKernel.java:1264)
  org.jruby.RubyKernel$INVOKER$s$rbCatch19.call(RubyKernel$INVOKER$s$rbCatch19.gen)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:177)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:188)
  rubyjit.Sinatra::Base$$process_route_9fb84091f90b19393fb4c4da473f2a6137279929973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013)
  rubyjit.Sinatra::Base$$process_route_9fb84091f90b19393fb4c4da473f2a6137279929973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  rubyjit.Sinatra::Base$$process_route_9fb84091f90b19393fb4c4da473f2a6137279929973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:50)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:281)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:241)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:96)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:245)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:251)
  org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:115)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$process_route_with_newrelic_d6dac3e3b9dadf8f95bd1d19d2ed0e60557ff5f8973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb:119)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$process_route_with_newrelic_d6dac3e3b9dadf8f95bd1d19d2ed0e60557ff5f8973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:50)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:281)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:241)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:96)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:245)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:256)
  rubyjit.Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:973)
  rubyjit$Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203$block_0$RUBY.call(rubyjit$Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:135)
  org.jruby.runtime.Block.yield(Block.java:142)
  org.jruby.RubyArray.eachCommon(RubyArray.java:1606)
  org.jruby.RubyArray.each(RubyArray.java:1613)
  org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)
  rubyjit.Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:972)
  rubyjit.Sinatra::Base$$route!_2dbba9b9561f7a294ffa177e3b1a8de8c2180794973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:38)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)
  rubyjit.Sinatra::Base$$dispatch!_46aa5e2cdf9a61a2f1eb918e23f46195e42f83f7973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085)
  rubyjit$Sinatra::Base$$dispatch!_46aa5e2cdf9a61a2f1eb918e23f46195e42f83f7973103203$block_0$RUBY.call(rubyjit$Sinatra::Base$$dispatch!_46aa5e2cdf9a61a2f1eb918e23f46195e42f83f7973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067)
  rubyjit$Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203$block_0$RUBY.call(rubyjit$Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:135)
  org.jruby.runtime.Block.yield(Block.java:142)
  org.jruby.RubyContinuation.enter(RubyContinuation.java:107)
  org.jruby.RubyKernel.rbCatch19Common(RubyKernel.java:1271)
  org.jruby.RubyKernel.rbCatch19(RubyKernel.java:1264)
  org.jruby.RubyKernel$INVOKER$s$rbCatch19.call(RubyKernel$INVOKER$s$rbCatch19.gen)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:177)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:188)
  rubyjit.Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067)
  rubyjit.Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)
  rubyjit.Sinatra::Base$$dispatch!_46aa5e2cdf9a61a2f1eb918e23f46195e42f83f7973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082)
  rubyjit.Sinatra::Base$$dispatch!_46aa5e2cdf9a61a2f1eb918e23f46195e42f83f7973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  rubyjit.Sinatra::Base$$dispatch!_46aa5e2cdf9a61a2f1eb918e23f46195e42f83f7973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  rubyjit.Sinatra::Base$$dispatch!_46aa5e2cdf9a61a2f1eb918e23f46195e42f83f7973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$dispatch_and_notice_errors_with_newrelic_3860e5f9e85a4cf013303484d2974ae216692856973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb:164)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$dispatch_and_notice_errors_with_newrelic_3860e5f9e85a4cf013303484d2974ae216692856973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$dispatch_and_notice_errors_with_newrelic_3860e5f9e85a4cf013303484d2974ae216692856973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$dispatch_with_newrelic_d0177f59efe790a11c78cc99e5cb70ce7b51dbcc973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb:150)
  rubyjit$NewRelic::Agent::Instrumentation::Sinatra$$dispatch_with_newrelic_d0177f59efe790a11c78cc99e5cb70ce7b51dbcc973103203$block_0$RUBY.call(rubyjit$NewRelic::Agent::Instrumentation::Sinatra$$dispatch_with_newrelic_d0177f59efe790a11c78cc99e5cb70ce7b51dbcc973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.NewRelic::Agent::Instrumentation::ControllerInstrumentation$$perform_action_with_newrelic_trace_f635938eabecc6e15ecb79ee11731f88ceb54fd5973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:362)
  rubyjit.NewRelic::Agent::Instrumentation::ControllerInstrumentation$$perform_action_with_newrelic_trace_f635938eabecc6e15ecb79ee11731f88ceb54fd5973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:361)
  rubyjit.NewRelic::Agent::Instrumentation::ControllerInstrumentation$$perform_action_with_newrelic_trace_f635938eabecc6e15ecb79ee11731f88ceb54fd5973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:358)
  rubyjit.NewRelic::Agent::Instrumentation::ControllerInstrumentation$$perform_action_with_newrelic_trace_f635938eabecc6e15ecb79ee11731f88ceb54fd5973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/controller_instrumentation.rb)
  org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:42)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:201)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:177)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:188)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$dispatch_with_newrelic_d0177f59efe790a11c78cc99e5cb70ce7b51dbcc973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb:147)
  rubyjit.NewRelic::Agent::Instrumentation::Sinatra$$dispatch_with_newrelic_d0177f59efe790a11c78cc99e5cb70ce7b51dbcc973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/sinatra.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
  org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
  org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:56)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134)
  rubyjit.Sinatra::Base$$call!_b358a3b1d6c79f6526b9b4979535b17ccdbdeead973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:907)
  rubyjit$Sinatra::Base$$call!_b358a3b1d6c79f6526b9b4979535b17ccdbdeead973103203$block_0$RUBY.call(rubyjit$Sinatra::Base$$call!_b358a3b1d6c79f6526b9b4979535b17ccdbdeead973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067)
  rubyjit$Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203$block_0$RUBY.call(rubyjit$Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:135)
  org.jruby.runtime.Block.yield(Block.java:142)
  org.jruby.RubyContinuation.enter(RubyContinuation.java:107)
  org.jruby.RubyKernel.rbCatch19Common(RubyKernel.java:1271)
  org.jruby.RubyKernel.rbCatch19(RubyKernel.java:1264)
  org.jruby.RubyKernel$INVOKER$s$rbCatch19.call(RubyKernel$INVOKER$s$rbCatch19.gen)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:177)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:188)
  rubyjit.Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067)
  rubyjit.Sinatra::Base$$invoke_f21da6ef72004f6502248b2008c3ae79dbe28b76973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)
  rubyjit.Sinatra::Base$$call!_b358a3b1d6c79f6526b9b4979535b17ccdbdeead973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:907)
  rubyjit.Sinatra::Base$$call!_b358a3b1d6c79f6526b9b4979535b17ccdbdeead973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Sinatra::Base$$call_1ec90715a1669ad4b7be9326d2880e044b92bea9973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:895)
  rubyjit.Sinatra::Base$$call_1ec90715a1669ad4b7be9326d2880e044b92bea9973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.NewRelic::Rack::AgentHooks$$traced_call_7d5c3d286ddf70e14baaebf4c26ec6323fd3299c973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/rack/agent_hooks.rb:30)
  rubyjit.NewRelic::Rack::AgentHooks$$traced_call_7d5c3d286ddf70e14baaebf4c26ec6323fd3299c973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/rack/agent_hooks.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.NewRelic::Rack::BrowserMonitoring$$traced_call_efd4759142ae1e8b5cc19d63cca4712e603ce3ce973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/rack/browser_monitoring.rb:32)
  rubyjit.NewRelic::Rack::BrowserMonitoring$$traced_call_efd4759142ae1e8b5cc19d63cca4712e603ce3ce973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/rack/browser_monitoring.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.HealthMonitorMiddleware$$call_3b300153a52c61524a65417a702b34bce1902389973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/bundler/gems/health_monitor-9ebc21e38030/lib/middleware/health_monitor_middleware.rb:28)
  rubyjit.HealthMonitorMiddleware$$call_3b300153a52c61524a65417a702b34bce1902389973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/bundler/gems/health_monitor-9ebc21e38030/lib/middleware/health_monitor_middleware.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Protection::XSSHeader$$call_dddc794b2bea07d062ad3bcf2b3c1367c3fbb933973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18)
  rubyjit.Rack::Protection::XSSHeader$$call_dddc794b2bea07d062ad3bcf2b3c1367c3fbb933973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Protection::PathTraversal$$call_6a2e90bdfff51cc22754ab44c1e8a73fcaec7e92973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16)
  rubyjit.Rack::Protection::PathTraversal$$call_6a2e90bdfff51cc22754ab44c1e8a73fcaec7e92973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb)
  rubyjit.Rack::Protection::PathTraversal$$call_6a2e90bdfff51cc22754ab44c1e8a73fcaec7e92973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Protection::JsonCsrf$$call_8a5c2600af8ca6e657582d692da3c74271c76149973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18)
  rubyjit.Rack::Protection::JsonCsrf$$call_8a5c2600af8ca6e657582d692da3c74271c76149973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Protection::Base$$call_b2db184a20a3939d83a3a6565c53844b5ef7c2f1973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49)
  rubyjit.Rack::Protection::Base$$call_b2db184a20a3939d83a3a6565c53844b5ef7c2f1973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Protection::Base$$call_b2db184a20a3939d83a3a6565c53844b5ef7c2f1973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49)
  rubyjit.Rack::Protection::Base$$call_b2db184a20a3939d83a3a6565c53844b5ef7c2f1973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Protection::FrameOptions$$call_233b76ed2de17283e41c5e7186621685bc595b15973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31)
  rubyjit.Rack::Protection::FrameOptions$$call_233b76ed2de17283e41c5e7186621685bc595b15973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::NullLogger$$call_8cc1a3de347a14c9e4ec3d21a84875d834838fad973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/nulllogger.rb:9)
  rubyjit.Rack::NullLogger$$call_8cc1a3de347a14c9e4ec3d21a84875d834838fad973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/nulllogger.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Head$$call_36939d5e5a27ef938954bdca2f4d978f1fd604ac973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/head.rb:11)
  rubyjit.Rack::Head$$call_36939d5e5a27ef938954bdca2f4d978f1fd604ac973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/head.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Sinatra::ExtendedRack$$call_5949754b3dd7f0fe0e4129e0dd729199192d011d973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:182)
  rubyjit.Sinatra::ExtendedRack$$call_5949754b3dd7f0fe0e4129e0dd729199192d011d973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Sinatra::Wrapper$$call_720625d8634a0684e38321296a080b519a779589973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013)
  rubyjit.Sinatra::Wrapper$$call_720625d8634a0684e38321296a080b519a779589973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Sinatra::Base$$call_9eadb2c2c0eb06ca905c4a6ddd9e29b6e6f2cba2973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487)
  rubyjit$Sinatra::Base$$call_9eadb2c2c0eb06ca905c4a6ddd9e29b6e6f2cba2973103203$block_0$RUBY.call(rubyjit$Sinatra::Base$$call_9eadb2c2c0eb06ca905c4a6ddd9e29b6e6f2cba2973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)
  org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)
  org.jruby.runtime.Block.yieldSpecific(Block.java:111)
  rubyjit.Sinatra::Base$$synchronize_4551611736476b1ce098abad0f0b14793b0a6d8f973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1787)
  rubyjit.Sinatra::Base$$synchronize_4551611736476b1ce098abad0f0b14793b0a6d8f973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)
  rubyjit.Sinatra::Base$$call_9eadb2c2c0eb06ca905c4a6ddd9e29b6e6f2cba2973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487)
  rubyjit.Sinatra::Base$$call_9eadb2c2c0eb06ca905c4a6ddd9e29b6e6f2cba2973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::URLMap$$call_381c006cc90b28b99ac3bed6a22ad8cb8a48398a973103203.block_0$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/urlmap.rb:65)
  rubyjit$Rack::URLMap$$call_381c006cc90b28b99ac3bed6a22ad8cb8a48398a973103203$block_0$RUBY.call(rubyjit$Rack::URLMap$$call_381c006cc90b28b99ac3bed6a22ad8cb8a48398a973103203$block_0$RUBY)
  org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:135)
  org.jruby.runtime.Block.yield(Block.java:142)
  org.jruby.RubyArray.eachCommon(RubyArray.java:1606)
  org.jruby.RubyArray.each(RubyArray.java:1613)
  org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)
  org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)
  org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)
  rubyjit.Rack::URLMap$$call_381c006cc90b28b99ac3bed6a22ad8cb8a48398a973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/urlmap.rb:50)
  rubyjit.Rack::URLMap$$call_381c006cc90b28b99ac3bed6a22ad8cb8a48398a973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/urlmap.rb)
  rubyjit.Rack::URLMap$$call_381c006cc90b28b99ac3bed6a22ad8cb8a48398a973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rack-1.5.5/lib/rack/urlmap.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.RtRequestLogger::Middleware$$call_application_7e22f6813eb75e04c674b19c8e5b72e0bf992d35973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rt_request_logger-0.4.0/lib/rt_request_logger/middleware.rb:30)
  rubyjit.RtRequestLogger::Middleware$$call_application_7e22f6813eb75e04c674b19c8e5b72e0bf992d35973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rt_request_logger-0.4.0/lib/rt_request_logger/middleware.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.RtRequestLogger::Middleware$$call_5e144a1f3fce2e24f701ba302d0cf56143896d1d973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rt_request_logger-0.4.0/lib/rt_request_logger/middleware.rb:21)
  rubyjit.RtRequestLogger::Middleware$$call_5e144a1f3fce2e24f701ba302d0cf56143896d1d973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/rt_request_logger-0.4.0/lib/rt_request_logger/middleware.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.ContentEncodingMiddleware$$call_572b9d65dad1cd8240a75d7b371e4695278dbc5a973103203.__file__(/home/samples/apps/samples/releases/20160502092738/api/content_encoding_middleware.rb:23)
  rubyjit.ContentEncodingMiddleware$$call_572b9d65dad1cd8240a75d7b371e4695278dbc5a973103203.__file__(/home/samples/apps/samples/releases/20160502092738/api/content_encoding_middleware.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:96)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.chained_0_ensure_1$RUBY(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92)
  rubyjit.NewRelic::Agent::Instrumentation::MiddlewareTracing$$call_9becf122e6d0ffef7a8a414599c78ddfbf555b33973103203.__file__(/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/newrelic_rpm-3.15.0.314/lib/new_relic/agent/instrumentation/middleware_tracing.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
  rubyjit.Rack::Handler::Servlet$$call_962596486a78eb92b0f724aa0f060cd6a1315df4973103203.__file__(file:/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/jruby-rack-1.1.14/lib/jruby-rack-1.1.14.jar!/rack/handler/servlet.rb:22)
  rubyjit.Rack::Handler::Servlet$$call_962596486a78eb92b0f724aa0f060cd6a1315df4973103203.__file__(file:/home/samples/apps/samples/shared/bundle/jruby/1.9/gems/jruby-rack-1.1.14/lib/jruby-rack-1.1.14.jar!/rack/handler/servlet.rb)
  org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)
  org.jruby.RubyClass.finvoke(RubyClass.java:690)
  org.jruby.runtime.Helpers.invoke(Helpers.java:503)
  org.jruby.RubyBasicObject.callMethod(RubyBasicObject.java:363)
  org.jruby.javasupport.JavaEmbedUtils$1.callMethod(JavaEmbedUtils.java:143)
  org.jruby.rack.DefaultRackApplication.call(DefaultRackApplication.java:64)
  org.jruby.rack.AbstractRackDispatcher.process(AbstractRackDispatcher.java:33)
  org.jruby.rack.AbstractServlet.service(AbstractServlet.java:34)
  org.jruby.rack.AbstractServlet.service(AbstractServlet.java:40)
  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
  org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
  org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
  org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
  org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
  org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
  org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
  org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
  org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  java.lang.Thread.run(Thread.java:745)

Inconsistent return value of `#to_msgpack(packer)`

#to_msgpack(packer) returns given packer instance, not msgpack string.
Generally, #to_x method returns instance of x in Ruby way. Current behavior is very confusing.

Returning packer is for recursive packing, so we need to add another method for it.
See also: #116 (comment)

What's the best name of that method?

"compatibility mode" for packer

v0.6.0 use new msgpack specification, which add str8 and binary formats. But this formats don't supported by old parsers and generated msgpack data can't be parsed by such clients.

Please, add flag for disable str8 and bin formats in packer.

Make exception behavior of Unpacker consistent to throw only UnpackerError

As #83 points out, Unpacker throws TypeError, which doesn't extend UnpackerError.
It would be confusing if Unpacker throws an error which is not UnpackerError in terms of its naming.
Possible solutions are...:

  • a) change TypeError to extend UnpackerError
  • b) change TypeError to be Module. And create UnexpectedTypeError which includes TypeError and extends UnpackerError.

ruby 2.0 compatibility

i am using msgpack on windows,
so it would be nice if it would work under 2.0.

C:\d\c\m\rdomino-dam> ruby -v
ruby 2.0.0p0 (2013-02-24) [i386-mingw32]

C:\d\c\m\rdomino-dam> gem ins msgpack
Successfully installed msgpack-0.5.4-x86-mingw32
1 gem installed

C:\d\c\m\rdomino-dam> irb
DL is deprecated, please use Fiddle
>> require 'msgpack'
LoadError: cannot load such file -- c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/gems/2.0.0/gems/msgpack-0.5.4-x86-mingw32/lib/msgpack/msgpack
        from c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
        from c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
        from c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/gems/2.0.0/gems/msgpack-0.5.4-x86-mingw32/lib/msgpack.rb:9:in `rescue in <top (required)>'
        from c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/gems/2.0.0/gems/msgpack-0.5.4-x86-mingw32/lib/msgpack.rb:3:in `<top (required)>'
        from c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `require'
        from c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `rescue in require'
        from c:/ruby/ruby-2.0.0-i386-mingw32/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:35:in `require'
        from (irb):1
        from c:/ruby/ruby-2.0.0-i386-mingw32/bin/irb:12:in `<main>'
>>

Serialized strings greater than 256 bytes fail with EOFError

Hey, Guys,

I've been looking to replace some existing Marshal code with MsgPack. But have been running into an issue when trying to serialize extended types. If the serialized string is longer than 256 bytes, it will fail to unpack. I discovered the issue while working with some ActiveRecord, but I have reduced it to the following repeatable example. I am running MRI v1.9.3-p551 on Ubuntu 14.04

require 'msgpack'

class T
  def initialize(l)
    @l = l
  end

  def to_msgpack(packer=nil)
    packer ||= MessagePack::Packer.new
    packer.pack 'a'*@l
  end

  def self.from_msgpack(mp)
    MessagePack.unpack(mp.force_encoding("ASCII-8BIT"))
  end
end

MessagePack::DefaultFactory.register_type(0x01, T, packer: :to_msgpack, unpacker: :from_msgpack)

# This works
t1 = T.new(252)
s1 = MessagePack.pack t1
# s1 = "\xC7\xFE\x01\xD9\xFCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
puts s1.length
# => 257
r1 =  MessagePack.unpack s1

# This fails
t2 = T.new(253)
s2 = MessagePack.pack t2
# s2 = "\xC8\x00\xFF\x01\xD9\xFDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
puts s2.length
# => 259
r2 =  MessagePack.unpack s2

This only happens with application extended types, large vanilla arrays don't seem to have any issues. I've spent all day banging my head on it and haven't been able to come up with anything. any help would be much appreciated.

Thanks!

MsgPack-Ruby library missing support for Binary data type

I am using MsgPack to encode & decode strings and binary objects across different languages, and I see that the Ruby library makes no attempt to handle binary data according to the Ruby convention of using ASCII-8BIT encoding on byte arrays as strings.

For example:

binary_base64 = 'HO4cYSP8LybPYBPZPHQOtuD53yrD3YV3NBoTEYBh4U0N1QXHbtkfsDfTspKeLQFt'
binary_source = Base64.decode64(binary_base64)
binary_source.encoding # => #<Encoding:ASCII-8BIT>

binary_packed = MessagePack.pack(binary_source)
binary_packed.encoding # => #<Encoding:ASCII-8BIT>
binary_unpacked = MessagePack.unpack(binary_packed)

# Now this is where things go wrong, the unpacked encoding is UTF-8, not the original ASCII-8BIT
binary_unpacked.encoding # => #<Encoding:UTF-8>

# Source binary data and unpacked binary data are now not the same
binary_unpacked == binary_source # => false

The problem I have is that unless I now attach metadata to the MsgPack payload that indicates whether it is a String (UTF-8) or Binary, my client libraries have no idea how to provide the data back to the consumer of our API i.e. as UTF-8 or ASCII-8BIT.

@frsyuki, what do you suggest should be done as right now this is unfortunately a blocker for me as I cannot handle binary data for our developer customers? It would be really appreciated to get your thoughts on this as I need to either work around this issue, attempt to fix this myself, or simply not support binary for our customers at this point which would be disappointing.

PS. The issue #40 is somewhat related, however it is suggesting all strings are set to ASCII-8BIT by default, whereas I believe the library should detected ASCII-BIT encodings and use the MsgPack bin format, and for all other encodings it should continue as is and use the MsgPack string format.

Add support `register_type` and `MessagePack::Factory` in JRuby

Pathes are needed to follow CRuby implementation of these features:

  • MessagePack::Factory
  • register_type, registered_types and type_registered? for Packer, Unpacker and Factory
  • Many skipped specs
  • Many specs to be shared with CRuby/JRuby (currently many specs are separated on cruby/jruby directory)

gem install msgpack fails

Hi,

I'm trying to install the neovim gem which in turn tries to install msgpack gem. However the installation always fails with following error:

$ gem install msgpack
Building native extensions.  This could take a while...
ERROR:  Error installing msgpack:
	ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.3.0/gems/msgpack-1.0.3/ext/msgpack
/usr/bin/ruby2.3 -r ./siteconf20170212-2901-dzsxp6.rb extconf.rb
checking for ruby/st.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/usr/bin/$(RUBY_BASE_NAME)2.3
/usr/lib/ruby/2.3.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
	from /usr/lib/ruby/2.3.0/mkmf.rb:587:in `try_cpp'
	from /usr/lib/ruby/2.3.0/mkmf.rb:1091:in `block in have_header'
	from /usr/lib/ruby/2.3.0/mkmf.rb:942:in `block in checking_for'
	from /usr/lib/ruby/2.3.0/mkmf.rb:350:in `block (2 levels) in postpone'
	from /usr/lib/ruby/2.3.0/mkmf.rb:320:in `open'
	from /usr/lib/ruby/2.3.0/mkmf.rb:350:in `block in postpone'
	from /usr/lib/ruby/2.3.0/mkmf.rb:320:in `open'
	from /usr/lib/ruby/2.3.0/mkmf.rb:346:in `postpone'
	from /usr/lib/ruby/2.3.0/mkmf.rb:941:in `checking_for'
	from /usr/lib/ruby/2.3.0/mkmf.rb:1090:in `have_header'
	from extconf.rb:3:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/msgpack-1.0.3/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.3.0/gems/msgpack-1.0.3 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/msgpack-1.0.3/gem_make.out

This is on Ubuntu 16.04.2 system.

LoadError on Windows + Ruby 2.1

I got LoadError on Windows + Ruby 2.1

C:\>gem install msgpack
Fetching: msgpack-0.5.8-x86-mingw32.gem (100%)
Successfully installed msgpack-0.5.8-x86-mingw32
Parsing documentation for msgpack-0.5.8-x86-mingw32
Installing ri documentation for msgpack-0.5.8-x86-mingw32
Done installing documentation for msgpack after 0 seconds
1 gem installed

C:\>irb
DL is deprecated, please use Fiddle
irb(main):001:0> require 'msgpack'
LoadError: cannot load such file -- msgpack/msgpack
        from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from C:/Ruby21/lib/ruby/gems/2.1.0/gems/msgpack-0.5.8-x86-mingw32/lib/msgpack.rb:5:in `rescue in <top (required)>'
        from C:/Ruby21/lib/ruby/gems/2.1.0/gems/msgpack-0.5.8-x86-mingw32/lib/msgpack.rb:2:in `<top (required)>'
        from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `require'
        from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
        from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in `require'
        from (irb):1
        from C:/Ruby21/bin/irb:11:in `<main>'
irb(main):002:0>

Problem does not occur on Ruby 1.9 and 2.0.
I can avoid it using 'gem install msgpack --platform=ruby'.
ffi also had a same problem but it has been fixed a couple of days ago.
This issue could be your help.

ffi/ffi#368

Thank you.

Symbols are converted to Strings on pack; can't modify this behaviour

Symbols are converted to strings when packing -- unfortunately if this isn't the behaviour you were after (for example, you want to use an extension type) then you can't modify this with register_type.

I can see why this behaviour is there -- it's probably what a lot of people want, and it's similar to the JSON behaviour, but it would be nice if this behaviour would be optional. Basically, it should be possible to configure the packer/unpacker so that a round-trip returns equal objects.

The only way to currently avoid this is to pre-filter the objects on the way in; if you have complex nested objects, it becomes a bit annoying.

Date/Time Not actually in UTC

During packing, datetime/time fields are not actually being converted to UTC.

1.9.3p429 :099 > MessagePack.unpack(MessagePack.pack(MyThing.find(38432).serializable_hash))['created_at']
MyThing Load (0.9ms) SELECT "my_things".* FROM "my_things" WHERE "my_things"."id" = $1 LIMIT 1 [["id", 38432]]
=> "Time[2013-08-22 16:59:20 UTC]"

1.9.3p429 :100 > MyThing.find(38432).created_at
MyThing Load (0.9ms) SELECT "my_things".* FROM "my_things" WHERE "my_things"."id" = $1 LIMIT 1 [["id", 38432]]
=> Thu, 22 Aug 2013 16:59:20 CDT -05:00

Table "public.my_things"
id | integer | not null default nextval('my_things_id_seq'::regclass)
created_at | timestamp without time zone | not null
updated_at | timestamp without time zone | not null

The first command that pack's and unpack's should show "2013-08-22 21:59:20 UTC", yet it shows "2013-08-22 16:59:20 UTC". When packing, it should be calling .utc() on the date, and it's not. Any ideas?

Gems installed as root don't get the so file moved into the lib/msgpack folder

System: Linux, Fedora 19

Steps:-

  • As root, 'gem install msgpack'
  • When finished, start irb and require 'msgpack'

Results:-

  • Will fail with message
    'LoadError: cannot load such file -- /usr/local/share/gems/gems/msgpack-0.5.5/lib/msgpack/msgpack'

Expected:-

  • Looks like when installing a gem as root, it doesn't copy the .so file into the /lib/msgpack/ folder.

Notes:-

  • Does correctly copy that file when using a standard user, but I try and install gems as the root user, when they are going to be used system wide.

RangeError: bignum too big to convert into `unsigned long long'

Using msgpack-0.5.11, here is the error I get:

irb(main):002:0> {"n"=>81669062298108866050539035482603516879}.to_msgpack
RangeError: bignum too big to convert into `unsigned long long'
    from (irb):2:in `to_msgpack'
    from (irb):2
    from /Users/mickael/.rvm/rubies/ruby-2.1.5/bin/irb:11:in `<main>'

Incorrect encoding on BigDecimal

If I encode a float:

$ {"n"=>9850500.to_f}.to_msgpack
=> "\x81\xA1n\xCBAb\xC9\xD0\x80\x00\x00\x00"

But if I encode the same number as BigDecimal

{"n"=>9850500.to_d}.to_msgpack
=> "\x81\xA1n\xC4\t9850500.0"

Proposal for a new API to get type and size info without unpack

MessagePack (serialized) binary has type info and size of (str/bin, array, map) at the header of whole binary.
When we want to know these, it's only way to unpack whole data. But it requires much computing power.

I propose a new API call to return an array of Hash object which contains:

  • :type => (:nil, :string, :int, :float, :array, :map, :ext, ...)
  • :size => (bits of numeric values, bytes of bin/str, length of elements of map/array, length of bytes of ext, ...)
  • :id => ext type id (only for :ext)

A hash represents info of a msgpack object. The method scans all binary to build an array of it.

How do you think about this idea? @frsyuki

Symbol not found: _RHASH_SIZE

Hi,

I get this error when requiring the gem in ruby 1.8.6-p386

1.8.6-p383 :003 > require 'msgpack'
dyld: NSLinkModule() error
dyld: Symbol not found: _RHASH_SIZE
  Referenced from: /Users/Nerian/.rvm/gems/ruby-1.8.6-p383@test/gems/msgpack-0.5.8/lib/msgpack/msgpack.bundle
  Expected in: flat namespace
 in /Users/Nerian/.rvm/gems/ruby-1.8.6-p383@test/gems/msgpack-0.5.8/lib/msgpack/msgpack.bundle

Should not rely on rb_num2int function but NUM2INT macro

We packaged the latest msgpack release for Kaii and discovered that it failed to build on i386/armel/armhf while it compiles fine on amd64. The failure is related to the absence of the rb_num2int symbol in libruby.

Effectively this function is only available when sizeof(int) < sizeof(long)... however the corresponding macro (NUM2INT) is always available. So please use the macro and not this function.

Cc to @sbrun

Unpacker#read_array_header and Unpacker#read_map_header return a wrong size.

In windows environment with msgpack-1.0.2-x86-mingw32, Unpacker#read_array_header for array16 and Unpacker#read_map_header for map16 return a wrong size.

A code to reproduce is following.

require 'msgpack'

p MessagePack::VERSION

unpacker = MessagePack::Unpacker.new()
# feed array 16 including one element.
unpacker.feed("\xdc\x00\x01\x01")
# expect "1" but returns "10001"
puts 'read_array_header : ' + unpacker.read_array_header.to_s(16)
unpacker.read.to_s
# feed map 16 including one element.
unpacker.feed("\xde\x00\x02\x01\x02\x03\x04")
# expect "2" but returns "20002"
puts 'read_map_header : ' + unpacker.read_map_header.to_s(16)

In Windows7(64bit) with ruby 2.2.1p85 (2015-02-26 revision 49769) [i386-mingw32], the code returns wrong size as below.

"1.0.2"
read_array_header : 10001
read_map_header : 20002

The result of read_array_header is excepted "1" but it returns "0x010001".
The result of read_map_header is excepted "2" but it returns "0x020002".

I guess there are some type-cast or bit-mask miss.

In Linux(CentOS7) with ruby 2.0.0p598 [x86_64-linux], it works correctly.

"1.0.2"
read_array_header : 1
read_map_header : 2

Allow writing at arbitrary positions in MessagePack::Buffer

MessagePack::Buffer is a great utility for high-performance data processing in Ruby with and without msgpack encoding. In a couple of cases I've hit a use case where I have a binary data "template" where some parts of the binary data are msgpack encoded and some are not. The simplest example is prepending a header that makes the binary packet self-describing without the need for deserialization. In these cases, it would be great to be able to create a buffer for the template then write into it only the variable parts, saving the object creatiion and data copying that would otherwise happen.

The easiest way to do this is to add a move_to method for absolute positioning (0 == start).

Decoding maps with string-typed keys fails in Ruby 2.1.2p95

>> MessagePack.unpack({"."=>0}.to_msgpack)
RuntimeError: can't modify frozen String
        from (irb):19:in `unpack'
        from (irb):19
        from /usr/bin/irb:11:in `<main>'

With an empty string it works:

>> MessagePack.unpack({""=>0}.to_msgpack)
=> {""=>0} 

msgpack version: v0.5.8-12-g3b6d61a
Ruby version: ruby 2.1.2p95 (2014-05-08) [x86_64-linux-gnu] (currently in Debian testing)

Forced C99 is causing Ruby headers on Windows to trigger problems

Hello,

Recently an issue has been reported to RubyInstaller mailing list:

https://groups.google.com/d/topic/rubyinstaller/s9AqoUOxo3I/discussion

Normally these issues indicate incorrect compiler used between RubyInstaller and the one installed with it, but in this particular case, I was able to confirm the issue:

generating msgpack-i386-mingw32.def
compiling ../../../../ext/msgpack/buffer.c
In file included from c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby/defines.h:153:0,
                 from c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby/ruby.h:70,
                 from c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby.h:33,
                 from ../../../../ext/msgpack/compat.h:21,
                 from ../../../../ext/msgpack/buffer.h:21,
                 from ../../../../ext/msgpack/buffer.c:19:
c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby/win32.h: In function 'rb_w32_pow':
c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby/win32.h:801:5: warning: implicit declaration of function '_controlfp' [-Wimplicit-function-declaration]
c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby/win32.h:802:16: error: '_PC_64' undeclared (first use in this function)
c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby/win32.h:802:16: note: each undeclared identifier is reported only once for each function it appears in
c:/Tools/Ruby/ruby-2.0.0-p451-i386-mingw32/include/ruby-2.0.0/ruby/win32.h:802:24: error: '_MCW_PC' undeclared (first use in this function)
make: *** [buffer.o] Error 1
rake aborted!
Command failed with status (2): [make...]

Tasks: TOP => compile => compile:i386-mingw32 => compile:msgpack:i386-mingw32 => copy:msgpack:i386-m
ingw32:2.0.0 => tmp/i386-mingw32/msgpack/2.0.0/msgpack.so
(See full trace by running task with --trace)

Found a similar report in ticket on Mongoid: mongoid/mongoid#3489

I was able to reproduce locally with my test-ruby-c-extension project by adding c99 to $CFLAGS:

$CFLAGS << %[ -std=c99 ]

Beyond that the compiler flag is been used outside a condition to allow mswin32-based compilers to work, Ruby's own headers are not C99 compliant.

On #23 you mention you cross-compile the extension, however I'm not sure which version of the compiler you're using, as the ones used by RubyInstaller 2.0.0 (4.7.2) fail:

https://gist.github.com/luislavena/9297429

You can reproduce this issue by using rake-compiler-dev-box

As you know, the speed on which changes to Ruby happens might not be fast enough to get this issue sorted out.

Is there a chance for you to make C99 forcing optional if you're targeting mswin32|mingw32 ?

If that is OK with you, I would love to send a pull request to get that sorted out.

Thank you for your time.

Introduce argument check logics

Currently method argument checks are not common between CRuby and JRuby.
It's better to have common argument check for better compatibility (ex: io-like object of Buffer#new arguments) and throw ArgumentError for invalid values.

But it could break working application code (w/ ignored or danger argument values).
So this change should be done as major or minor version up, not patch version bump.

Can't load msgpack.so in Ruby 2.0 and Ruby 2.1 for Windows

msgpack 0.5.12 fail to load msgpack.so in Ruby 2.1 and 2.0 for Windows .

# ruby --version is ruby 2.1.6p336 (2015-04-13 revision 50298) [i386-mingw32]
C:/Ruby21/lib/ruby/gems/2.1.0/gems/msgpack-0.5.12-x86-mingw32/lib/msgpack.rb:11:in `require': 126: The specified module could not be found.   - C:/Ruby21/lib/ruby/gems/2.1.0/gems/msgpack-0.5.12-x86-mingw32/lib/msgpack/msgpack.so (LoadError)

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.