{"action":"created","issue":{"url":"https://api.github.com/repos/jruby/jruby/issues/2800","labels_url":"https://api.github.com/repos/jruby/jruby/issues/2800/labels{/name}","comments_url":"https://api.github.com/repos/jruby/jruby/issues/2800/comments","events_url":"https://api.github.com/repos/jruby/jruby/issues/2800/events","html_url":"https://github.com/jruby/jruby/issues/2800","id":66133250,"number":2800,"title":"NullPointerException in RubyArray.join","user":{"login":"e2","id":150197,"avatar_url":"https://avatars.githubusercontent.com/u/150197?v=3","gravatar_id":"","url":"https://api.github.com/users/e2","html_url":"https://github.com/e2","followers_url":"https://api.github.com/users/e2/followers","following_url":"https://api.github.com/users/e2/following{/other_user}","gists_url":"https://api.github.com/users/e2/gists{/gist_id}","starred_url":"https://api.github.com/users/e2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/e2/subscriptions","organizations_url":"https://api.github.com/users/e2/orgs","repos_url":"https://api.github.com/users/e2/repos","events_url":"https://api.github.com/users/e2/events{/privacy}","received_events_url":"https://api.github.com/users/e2/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-04-03T11:54:26Z","updated_at":"2015-04-03T13:14:58Z","closed_at":null,"body":"Just reporting this since it occurred.\r\n\r\n@8d7c1b1\r\n\r\nException in thread \"Ruby-0-Thread-6: /home/me/foo.rb:274\" java.lang.NullPointerException\r\n        at org.jruby.RubyArray.join19(RubyArray.java:1775)\r\n        at org.jruby.RubyArray$INVOKER$i$join19.call(RubyArray$INVOKER$i$join19.gen)\r\n        at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:161)\r\n        at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:288)\r\n        at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:74)\r\n        at org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:137)\r\n        at org.jruby.runtime.InterpretedIRBlockBody.commonYieldPath(InterpretedIRBlockBody.java:109)\r\n        at org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:75)\r\n        at org.jruby.runtime.Block.call(Block.java:106)\r\n        at org.jruby.RubyProc.call(RubyProc.java:305)\r\n        at org.jruby.RubyProc.call(RubyProc.java:232)\r\n        at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:99)\r\n        at java.lang.Thread.run(Thread.java:745)\r\n\r\nI'm not sure what I'm doing yet - just accessing an array inside a mutex lock, inside a thread (which has the same mutex lock). I'll try and reproduce this - let me know if that's necessary (can't afford a lot of time on it).\r\n\r\njruby 9.0.0.0-SNAPSHOT (2.2.1) 2015-03-30 @8d7c1b1 OpenJDK 64-Bit Server VM 24.75-b04 on 1.7.0_75-b13 +jit [linux-amd64]"},"comment":{"url":"https://api.github.com/repos/jruby/jruby/issues/comments/89284919","html_url":"https://github.com/jruby/jruby/issues/2800#issuecomment-89284919","issue_url":"https://api.github.com/repos/jruby/jruby/issues/2800","id":89284919,"user":{"login":"e2","id":150197,"avatar_url":"https://avatars.githubusercontent.com/u/150197?v=3","gravatar_id":"","url":"https://api.github.com/users/e2","html_url":"https://github.com/e2","followers_url":"https://api.github.com/users/e2/followers","following_url":"https://api.github.com/users/e2/following{/other_user}","gists_url":"https://api.github.com/users/e2/gists{/gist_id}","starred_url":"https://api.github.com/users/e2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/e2/subscriptions","organizations_url":"https://api.github.com/users/e2/orgs","repos_url":"https://api.github.com/users/e2/repos","events_url":"https://api.github.com/users/e2/events{/privacy}","received_events_url":"https://api.github.com/users/e2/received_events","type":"User","site_admin":false},"created_at":"2015-04-03T13:14:58Z","updated_at":"2015-04-03T13:14:58Z","body":"> Do make certain that all accesses of this array are done under lock. Both reads and writes generally need to be under lock because writes can break other writes or other reads.\r\n\r\nTechnically, since I'm fixing a crappy implementation, I don't borked values in an array, or Ruby exceptions - as long as I'm \"protected\" from exceptions in Java.\r\n\r\nShould I keep reporting things like this here? (Don't want to spam, but don't want to leave potential problems unreported)."}}