Hi all,

I'm using Clojure for web apps inside Tomcat.  If I don't compile
my .clj files ahead of time, I will eventually get one of these
OutOfMemory errors, after a number of redeployments.  Is there
something I can do about this?  Is this a bug somewhere, in my code,
or in Clojure, or in Tomcat; or a limitation of the JVM?

thanks,
Rob

Here is the entire barfage from my Tomcat log:

Jun 11, 2009 12:01:57 PM org.apache.catalina.core.StandardWrapperValve
invoke
SEVERE: Servlet.service() for servlet ClojureServlet threw exception
java.lang.NullPointerException
        at clojure.lang.Var.popThreadBindings(Var.java:289)
        at biz.encodia.webapps.webdispatch
$make_dispatcher__3759$fn__3761.invoke(webdispatch.clj:90)
        at clojure.lang.Var.invoke(Var.java:350)
        at biz.encodia.webapps.ClojureServlet.processRequest
(ClojureServlet.java:70)
        at biz.encodia.webapps.ClojureServlet.doGet
(ClojureServlet.java:99)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:
617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:
717)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:433)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:613)
Jun 11, 2009 12:04:23 PM org.apache.catalina.core.ApplicationContext
log
SEVERE: StandardWrapper.Throwable
java.lang.ExceptionInInitializerError
        at biz.encodia.webapps.ClojureServlet.loadDispatchCode
(ClojureServlet.java:32)
        at biz.encodia.webapps.ClojureServlet.init(ClojureServlet.java:
49)
        at org.apache.catalina.core.StandardWrapper.loadServlet
(StandardWrapper.java:1172)
        at org.apache.catalina.core.StandardWrapper.allocate
(StandardWrapper.java:808)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:129)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:433)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.RuntimeException: java.lang.OutOfMemoryError:
PermGen space (core.clj:2151)
        at clojure.lang.RT.<clinit>(RT.java:294)
        ... 15 more
Caused by: java.lang.OutOfMemoryError: PermGen space (core.clj:2151)
        at clojure.lang.Compiler.eval(Compiler.java:4617)
        at clojure.lang.Compiler.eval(Compiler.java:4593)
        at clojure.lang.Compiler.load(Compiler.java:4931)
        at clojure.lang.RT.loadResourceScript(RT.java:329)
        at clojure.lang.RT.loadResourceScript(RT.java:320)
        at clojure.lang.RT.load(RT.java:398)
        at clojure.lang.RT.load(RT.java:370)
        at clojure.lang.RT.doInit(RT.java:405)
        at clojure.lang.RT.<clinit>(RT.java:291)
        ... 15 more
Caused by: java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:520)
        at clojure.lang.DynamicClassLoader.defineClass
(DynamicClassLoader.java:42)
        at clojure.lang.Compiler$FnExpr.getCompiledClass(Compiler.java:
3465)
        at clojure.lang.Compiler$FnExpr.eval(Compiler.java:3476)
        at clojure.lang.Compiler.eval(Compiler.java:4600)
        ... 23 more
Jun 11, 2009 12:04:23 PM org.apache.catalina.core.StandardWrapperValve
invoke
SEVERE: Allocate exception for servlet ClojureServlet
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:520)
        at clojure.lang.DynamicClassLoader.defineClass
(DynamicClassLoader.java:42)
        at clojure.lang.Compiler$FnExpr.getCompiledClass(Compiler.java:
3465)
        at clojure.lang.Compiler$FnExpr.eval(Compiler.java:3476)
        at clojure.lang.Compiler.eval(Compiler.java:4600)
        at clojure.lang.Compiler.eval(Compiler.java:4593)
        at clojure.lang.Compiler.load(Compiler.java:4931)
        at clojure.lang.RT.loadResourceScript(RT.java:329)
        at clojure.lang.RT.loadResourceScript(RT.java:320)
        at clojure.lang.RT.load(RT.java:398)
        at clojure.lang.RT.load(RT.java:370)
        at clojure.lang.RT.doInit(RT.java:405)
        at clojure.lang.RT.<clinit>(RT.java:291)
        at biz.encodia.webapps.ClojureServlet.loadDispatchCode
(ClojureServlet.java:32)
        at biz.encodia.webapps.ClojureServlet.init(ClojureServlet.java:
49)
        at org.apache.catalina.core.StandardWrapper.loadServlet
(StandardWrapper.java:1172)
        at org.apache.catalina.core.StandardWrapper.allocate
(StandardWrapper.java:808)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:129)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:433)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:613)


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to