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)
|
Adam Monago
Administrator
254 post(s)
#906
|
As it turns out this issue only occurs with Java 5 but is resolved with Java 6.
|
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)
|
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
|
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.
|
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>‘
...
|