[solved] Cannot print cards#372

Subscribe to [solved] Cannot print cards 6 post(s), 5 voice(s)

 
Avatar snewman 4 post(s) #897

Hi,

I’ve tested this both with my project and with the sample project (agile hybrid). For the agile hybrid project, when I click on ‘Release 1 Stores’, select the ‘list’ view and click on ‘print’, I get a PDF I can either download or open. Only it isn’t a valid PDF – it’s actually a 500 error page. So there seem to be two seperate bugs. Firstly, when creation of the PDF fails I shouldn’t get a PDF. Second, PDF creation should work!

This is running on Ubuntu, using jdk 1.5_0_13-b05, tested both with IE and Firefox on windows, and Firefox on Ubuntu. On IE I at least get to see the text of the 500 page rendered in the browser – obviously the mime-types are getting screwed up.

I looked at the contents of my logs for the time when I tried this and found the following stack trace in production.log:

Processing CardsController#list (for 172.28.77.77 at 2007-12-19 05:20:22) [GET] Session ID: e93ff36f3422f64a1b05624da7bb527b Parameters: {“project_id”=>”test”, “group_by”=>”story status”, “action”=>”list”, “filters”=>[“Type[story]”, “Release[1]”], “lanes”=>”new,open,narrative started,ready for development,ready for testing,ready for showcase,ready for deployment,complete”, “controller”=>”cards”, “color_by”=>”priority”}
Cookie set: last-visited-project=test; path=/; expires=Fri, 19 Dec 2008 13:20:22 GMT
Rendering actionlistlayoutfalsecontent_typetext/html within layouts/application
Rendering cards/list
Completed in 0.45200 (2 reqs/sec) | Rendering: 0.33700 (74%) | DB: 0.00000 (0%) | 200 OK [http://samnewman.corp.google.com/projects/test/cards/list]
ate.java:571:in `org.jruby.evaluator.EvaluationState.callNode’ EvaluationState.java:207:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:1520:in `org.jruby.evaluator.EvaluationState.rescueNode’ EvaluationState.java:350:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:985:in `org.jruby.evaluator.EvaluationState.ensureNode’ EvaluationState.java:247:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ DefaultMethod.java:142:in `org.jruby.internal.runtime.methods.DefaultMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ RubyObject.java:575:in `org.jruby.RubyObject.callMethod’ RubyObject.java:445:in `org.jruby.RubyObject.callMethod’ RailsServlet.java:105:in `org.jruby.webapp.RailsServlet.dispatchRequest’ RailsServlet.java:58:in `org.jruby.webapp.RailsServlet.serviceRequest’ RailsServlet.java:42:in `org.jruby.webapp.RailsServlet.service’ HttpServlet.java:820:in `javax.servlet.http.HttpServlet.service’ ServletHolder.java:487:in `org.mortbay.jetty.servlet.ServletHolder.handle’ ServletHandler.java:362:in `org.mortbay.jetty.servlet.ServletHandler.handle’ SecurityHandler.java:216:in `org.mortbay.jetty.security.SecurityHandler.handle’ SessionHandler.java:181:in `org.mortbay.jetty.servlet.SessionHandler.handle’ ContextHandler.java:712:in `org.mortbay.jetty.handler.ContextHandler.handle’ WebAppContext.java:405:in `org.mortbay.jetty.webapp.WebAppContext.handle’ Dispatcher.java:224:in `org.mortbay.jetty.servlet.Dispatcher.forward’ Dispatcher.java:126:in `org.mortbay.jetty.servlet.Dispatcher.forward’ FileServlet.java:207:in `org.jruby.webapp.FileServlet.service’ HttpServlet.java:820:in `javax.servlet.http.HttpServlet.service’ ServletHolder.java:487:in `org.mortbay.jetty.servlet.ServletHolder.handle’ ServletHandler.java:1093:in `org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter’ null:-1:in `com.thoughtworks.mingle.StartupFilter.A’ null:-1:in `com.thoughtworks.mingle.StartupFilter.doFilter’ ServletHandler.java:1084:in `org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter’ ServletHandler.java:360:in `org.mortbay.jetty.servlet.ServletHandler.handle’ SecurityHandler.java:216:in `org.mortbay.jetty.security.SecurityHandler.handle’ SessionHandler.java:181:in `org.mortbay.jetty.servlet.SessionHandler.handle’ ContextHandler.java:712:in `org.mortbay.jetty.handler.ContextHandler.handle’ WebAppContext.java:405:in `org.mortbay.jetty.webapp.WebAppContext.handle’ HandlerCollection.java:114:in `org.mortbay.jetty.handler.HandlerCollection.handle’ HandlerWrapper.java:139:in `org.mortbay.jetty.handler.HandlerWrapper.handle’ Server.java:313:in `org.mortbay.jetty.Server.handle’ HttpConnection.java:506:in `org.mortbay.jetty.HttpConnection.handleRequest’ HttpConnection.java:830:in `org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete’ HttpParser.java:514:in `org.mortbay.jetty.HttpParser.parseNext’ HttpParser.java:205:in `org.mortbay.jetty.HttpParser.parseAvailable’ HttpConnection.java:381:in `org.mortbay.jetty.HttpConnection.handle’ SelectChannelEndPoint.java:396:in `org.mortbay.io.nio.SelectChannelEndPoint.run’ BoundedThreadPool.java:442:in `org.mortbay.thread.BoundedThreadPool$PoolThread.run’ file:/vendor/java/jruby-complete.jar!/builtin/javasupport/proxy/concrete.rb:23:in `initialize’ file:/vendor/java/jruby-complete.jar!/builtin/javasupport/proxy/concrete.rb:6:in `new’ file:/vendor/java/jruby-complete.jar!/builtin/javasupport/proxy/concrete.rb:6:in `new’ ./lib/pdf_flying_saucer4jr.rb:31:in `create_pdf’ /app/controllers/cards_controller.rb:546:in `double_print’ /app/controllers/application.rb:28:in `call’ /vendor/rails/actionpack/lib/action_controller/cgi_process.rb:201:in `out’ /vendor/rails/railties/lib/dispatcher.rb:41:in `dispatch’ :1

Uncaught exception:
java.lang.NoClassDefFoundError: null
Class.java:-2:in `java.lang.Class.forName0’ Class.java:164:in `java.lang.Class.forName’ GraphicsEnvironment.java:68:in `java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment’ AWTFontResolver.java:57:in `org.xhtmlrenderer.context.AWTFontResolver.init’ AWTFontResolver.java:53:in `org.xhtmlrenderer.context.AWTFontResolver.<init>‘ SharedContext.java:101:in `org.xhtmlrenderer.layout.SharedContext.<init>‘ ITextRenderer.java:77:in `org.xhtmlrenderer.pdf.ITextRenderer.<init>‘ ITextRenderer.java:68:in `org.xhtmlrenderer.pdf.ITextRenderer.<init>‘ NativeConstructorAccessorImpl.java:-2:in `sun.reflect.NativeConstructorAccessorImpl.newInstance0’ NativeConstructorAccessorImpl.java:39:in `sun.reflect.NativeConstructorAccessorImpl.newInstance’ DelegatingConstructorAccessorImpl.java:27:in `sun.reflect.DelegatingConstructorAccessorImpl.newInstance’ Constructor.java:494:in `java.lang.reflect.Constructor.newInstance’ JavaConstructor.java:88:in `org.jruby.javasupport.JavaConstructor.new_instance’ null:-1:in `org.jruby.javasupport.JavaConstructorInvokernew_instancexx1.call’ FastInvocationCallback.java:49:in `org.jruby.runtime.callback.FastInvocationCallback.execute’ SimpleCallbackMethod.java:81:in `org.jruby.internal.runtime.methods.SimpleCallbackMethod.call’
EvaluationState.java:571:in `org.jruby.evaluator.EvaluationState.callNode’ EvaluationState.java:207:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:2199:in `org.jruby.evaluator.EvaluationState.setupArgs’ EvaluationState.java:482:in `org.jruby.evaluator.EvaluationState.attrAssignNode’ EvaluationState.java:192:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ DefaultMethod.java:142:in `org.jruby.internal.runtime.methods.DefaultMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ EvaluationState.java:1025:in `org.jruby.evaluator.EvaluationState.fCallNode’ EvaluationState.java:253:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ DefaultMethod.java:142:in `org.jruby.internal.runtime.methods.DefaultMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ RubyObject.java:575:in `org.jruby.RubyObject.callMethod’ RubyObject.java:449:in `org.jruby.RubyObject.callMethod’ RubyClass.java:291:in `org.jruby.RubyClass.newInstance’ null:-1:in `org.jruby.RubyClassInvokernewInstancexx1.call’ InvocationCallback.java:49:in `org.jruby.runtime.callback.InvocationCallback.execute’
FullFunctionCallbackMethod.java:78:in `org.jruby.internal.runtime.methods.FullFunctionCallbackMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ AliasMethod.java:71:in `org.jruby.internal.runtime.methods.AliasMethod.call’ EvaluationState.java:1025:in `org.jruby.evaluator.EvaluationState.fCallNode’ EvaluationState.java:253:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:1236:in `org.jruby.evaluator.EvaluationState.localAsgnNode’ EvaluationState.java:286:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ DefaultMethod.java:142:in `org.jruby.internal.runtime.methods.DefaultMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ EvaluationState.java:571:in `org.jruby.evaluator.EvaluationState.callNode’ EvaluationState.java:207:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:1236:in `org.jruby.evaluator.EvaluationState.localAsgnNode’ EvaluationState.java:286:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:985:in `org.jruby.evaluator.EvaluationState.ensureNode’ EvaluationState.java:247:in `org.jruby.evaluator.EvaluationState.evalInternal’
EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ DefaultMethod.java:142:in `org.jruby.internal.runtime.methods.DefaultMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ WrapperMethod.java:61:in `org.jruby.internal.runtime.methods.WrapperMethod.call’ EvaluationState.java:571:in `org.jruby.evaluator.EvaluationState.callNode’ EvaluationState.java:207:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ Block.java:220:in `org.jruby.runtime.Block.yield’ Block.java:174:in `org.jruby.runtime.Block.call’ RubyProc.java:173:in `org.jruby.RubyProc.call’ RubyProc.java:153:in `org.jruby.RubyProc.call’ null:-1:in `org.jruby.RubyProcInvokercallxx1.call’ InvocationCallback.java:49:in `org.jruby.runtime.callback.InvocationCallback.execute’ FullFunctionCallbackMethod.java:78:in `org.jruby.internal.runtime.methods.FullFunctionCallbackMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ EvaluationState.java:571:in `org.jruby.evaluator.EvaluationState.callNode’ EvaluationState.java:207:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’
EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:1520:in `org.jruby.evaluator.EvaluationState.rescueNode’ EvaluationState.java:350:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ DefaultMethod.java:142:in `org.jruby.internal.runtime.methods.DefaultMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ EvaluationState.java:571:in `org.jruby.evaluator.EvaluationState.callNode’ EvaluationState.java:207:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:533:in `org.jruby.evaluator.EvaluationState.blockNode’ EvaluationState.java:201:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:1520:in `org.jruby.evaluator.EvaluationState.rescueNode’ EvaluationState.java:350:in `org.jruby.evaluator.EvaluationState.evalInternal’ EvaluationState.java:985:in `org.jruby.evaluator.EvaluationState.ensureNode’ EvaluationState.java:247:in `org.jruby.evaluator.EvaluationState.evalInternal’
EvaluationState.java:164:in `org.jruby.evaluator.EvaluationState.eval’ DefaultMethod.java:142:in `org.jruby.internal.runtime.methods.DefaultMethod.internalCall’ DynamicMethod.java:79:in `org.jruby.internal.runtime.methods.DynamicMethod.call’ RubyObject.java:575:in `org.jruby.RubyObject.callMethod’ RubyObject.java:445:in `org.jruby.RubyObject.callMethod’ RailsServlet.java:105:in `org.jruby.webapp.RailsServlet.dispatchRequest’ RailsServlet.java:58:in `org.jruby.webapp.RailsServlet.serviceRequest’ RailsServlet.java:42:in `org.jruby.webapp.RailsServlet.service’ HttpServlet.java:820:in `javax.servlet.http.HttpServlet.service’ ServletHolder.java:487:in `org.mortbay.jetty.servlet.ServletHolder.handle’ ServletHandler.java:362:in `org.mortbay.jetty.servlet.ServletHandler.handle’ SecurityHandler.java:216:in `org.mortbay.jetty.security.SecurityHandler.handle’ SessionHandler.java:181:in `org.mortbay.jetty.servlet.SessionHandler.handle’ ContextHandler.java:712:in `org.mortbay.jetty.handler.ContextHandler.handle’ WebAppContext.java:405:in `org.mortbay.jetty.webapp.WebAppContext.handle’ Dispatcher.java:224:in `org.mortbay.jetty.servlet.Dispatcher.forward’ Dispatcher.java:126:in `org.mortbay.jetty.servlet.Dispatcher.forward’ FileServlet.java:207:in `org.jruby.webapp.FileServlet.service’ HttpServlet.java:820:in `javax.servlet.http.HttpServlet.service’ ServletHolder.java:487:in `org.mortbay.jetty.servlet.ServletHolder.handle’ ServletHandler.java:1093:in `org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter’ null:-1:in `com.thoughtworks.mingle.StartupFilter.A’ null:-1:in `com.thoughtworks.mingle.StartupFilter.doFilter’ ServletHandler.java:1084:in `org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter’ ServletHandler.java:360:in `org.mortbay.jetty.servlet.ServletHandler.handle’ SecurityHandler.java:216:in `org.mortbay.jetty.security.SecurityHandler.handle’ SessionHandler.java:181:in `org.mortbay.jetty.servlet.SessionHandler.handle’ ContextHandler.java:712:in `org.mortbay.jetty.handler.ContextHandler.handle’ WebAppContext.java:405:in `org.mortbay.jetty.webapp.WebAppContext.handle’ HandlerCollection.java:114:in `org.mortbay.jetty.handler.HandlerCollection.handle’ HandlerWrapper.java:139:in `org.mortbay.jetty.handler.HandlerWrapper.handle’ Server.java:313:in `org.mortbay.jetty.Server.handle’ HttpConnection.java:506:in `org.mortbay.jetty.HttpConnection.handleRequest’ HttpConnection.java:830:in `org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete’ HttpParser.java:514:in `org.mortbay.jetty.HttpParser.parseNext’ HttpParser.java:205:in `org.mortbay.jetty.HttpParser.parseAvailable’ HttpConnection.java:381:in `org.mortbay.jetty.HttpConnection.handle’ SelectChannelEndPoint.java:396:in `org.mortbay.io.nio.SelectChannelEndPoint.run’ BoundedThreadPool.java:442:in `org.mortbay.thread.BoundedThreadPool$PoolThread.run’ file:/home/samnewman/mingle/vendor/java/jruby-complete.jar!/builtin/javasupport/proxy/concrete.rb:23:in `initialize’ file:/home/samnewman/mingle/vendor/java/jruby-complete.jar!/builtin/javasupport/proxy/concrete.rb:6:in `new’ file:/home/samnewman/mingle/vendor/java/jruby-complete.jar!/builtin/javasupport/proxy/concrete.rb:6:in `new’ ./lib/pdf_flying_saucer4jr.rb:31:in `create_pdf’ /home/samnewman/mingle/app/controllers/cards_controller.rb:546:in `double_print’ /home/samnewman/mingle/app/controllers/application.rb:28:in `call’ /home/samnewman/mingle/vendor/rails/actionpack/lib/action_controller/cgi_process.rb:201:in `out’ /home/samnewman/mingle/vendor/rails/railties/lib/dispatcher.rb:41:in `dispatch’ :1
500 displayed
Rendering status500templateerrors/unknownlayoutfalse within errors/layout
Rendering errors/unknown (500)

 
Avatar Adam Monago Administrator 254 post(s) #906

As it turns out this issue only occurs with Java 5 but is resolved with Java 6.

 
Avatar Josh Price 4 post(s) #910

If you are using Java 5 you may want to try starting up the Mingle server with the following option:

-Djava.awt.headless=true

(This can be added in the ‘MingleServer’ script around line 270)

 
Avatar BradGibson 29 post(s) #997

We have java 6 on our server and this is still happening.

SUSE Linux Enterprise 10 – Linux subversion 2.6.16.27-0.9-bigsmp #1 SMP Tue Feb 13 09:35:18 UTC 2007 i686 i686 i386 GNU/Linux

 
Avatar Adam Monago Administrator 254 post(s) #1000

Hi Brad,

If the issue you are having is indeed the same one related to the graphics library, you may want to try the setting Josh recommends above.

If you have tried that and it has not worked, or the exception you are experiencing is different, you may want to zip up a copy of your logs folder and submit a support request on our website so someone can take a look at it.

 
Avatar Anthony Picc... 3 post(s) #2143

This also fixed the issue running on Mac OS X using:

java version “1.5.0_13”
Java™ 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot™ Server VM (build 1.5.0_13-119, mixed mode)

Error:

NativeException (java.lang.NoClassDefFoundError: null): org/xhtmlrenderer/pdf/ITextOutputDevice.java:98:in `<init>‘ org/xhtmlrenderer/pdf/ITextRenderer.java:74:in `<init>‘ org/xhtmlrenderer/pdf/ITextRenderer.java:68:in `<init>‘ ...