AppEngine does not support the ProcessBuilder and ProcessBuilder.Redirect classes (see https://developers.google.com/appengine/docs/java/jrewhitelist for the list of supported classes) which is now used by the kernel process_manager.rb file to implement the ` (backtick) operator (see SHA: c7c7c7d). This means that any JRuby web application compiled with newer JRuby versions won't load on GAE.
While it may not be practical to cater for every runtime environments from a pragmatic standpoint making it so that the backtick operator does not rely on ProcessBuilder (or at least does not require it, there could be an alternate implemention in case it's missing, such as the previous one) would enable a fairly important use case.
This is a tricky one and clearly the blame is not on JRuby but as a feature request supporting GAE would be awesome!
Ahh...so the fact that we even access that class is causing it to blow up.
I'll look into making that fail quietly.
Do not define specialized backtick when ProcessBuilder is unavail.
Wow, thank you for the quick response! I'll give this a shot and will update with my findings.
Happy to report that the fix works (now I'm having to fight a different issue where GAE doesn't allow creating raw threads which jruby-rack depends on...). Thank you!