Skip to content

Commit

Permalink
replay-tests: add (now fixed) example for classpath with custom tmpDir
Browse files Browse the repository at this point in the history
This was (unintentionally?) fixed in PR replay-framework#524.

For reference, the original description is below.

Looks like it never worked since its debut in commit
cfe9ff1 ("load "errors/40x.html" templates from classpath").

The serve500 is caused by the "missing" meta.html template, and then
the NPE is caused by the "missing" errors/500.html template:

02:52:45,238 TRACE [play.server.netty4.PlayHandler] ~ serve500: begin
02:52:45,240 ERROR [play.server.netty4.PlayHandler] ~ Internal Server Error (500) for GET / (GTRuntimeExceptionWithSourceInfo)
play.template2.exceptions.GTRuntimeExceptionWithSourceInfo: Cannot find template ./meta.html
	at /tmp/hello.html.(line:6)
	at play.template2.GTJavaBase.internalRenderTemplate(GTJavaBase.java:146)
	at play.template2.GTJavaBase.internalRenderTemplate(GTJavaBase.java:110)
	at play.modules.gtengineplugin.gt_integration.GTJavaBase1xImpl.internalRenderTemplate(GTJavaBase1xImpl.java:96)
	at play.template2.GTJavaBase.renderTemplate(GTJavaBase.java:104)
	at play.modules.gtengineplugin.GTTemplate.renderGTTemplate(GTTemplate.java:67)
	at play.modules.gtengineplugin.GTTemplate.internalGTRender(GTTemplate.java:54)
	at play.modules.gtengineplugin.GTTemplate.internalRender(GTTemplate.java:38)
	at play.modules.gtengineplugin.GTTemplate.render(GTTemplate.java:73)
	at play.rebel.View.renderView(View.java:71)
	at play.rebel.View.apply(View.java:50)
	at play.mvc.ActionInvoker.applyResult(ActionInvoker.java:191)
	at play.mvc.ActionInvoker.invoke(ActionInvoker.java:158)
	at play.server.netty4.PlayHandler$Netty4Invocation.execute(PlayHandler.java:278)
	at play.server.netty4.PlayHandler$Netty4Invocation.lambda$run$0(PlayHandler.java:247)
	at play.db.jpa.JPA.withTransaction(JPA.java:271)
	at play.db.jpa.JPA.withinFilter(JPA.java:172)
	at play.server.netty4.PlayHandler$Netty4Invocation.run(PlayHandler.java:245)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: play.template2.exceptions.GTTemplateRuntimeException: Cannot find template ./meta.html
	at play.template2.compile.GTInternalFastTags.tag_include(GTInternalFastTags.java:119)
	... 24 more
02:52:45,242 ERROR [play.server.netty4.PlayHandler] ~ Error during the 500 response generation
java.lang.NullPointerException: Cannot invoke "java.io.File.getAbsolutePath()" because "file" is null
	at play.Play.relativePath(Play.java:376)
	at play.modules.gtengineplugin.TemplateLoader.load(TemplateLoader.java:69)
	at play.modules.gtengineplugin.GTEnginePlugin.loadTemplate(GTEnginePlugin.java:50)
	at play.plugins.PluginCollection.lambda$loadTemplate$29(PluginCollection.java:340)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
	at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at play.plugins.PluginCollection.loadTemplate(PluginCollection.java:342)
	at play.templates.TemplateLoader.load(TemplateLoader.java:35)
	at play.templates.TemplateLoader.loadTemplateFromClasspath(TemplateLoader.java:95)
	at play.templates.TemplateLoader.load(TemplateLoader.java:82)
	at play.server.ServerHelper.generateErrorResponse(ServerHelper.java:83)
	at play.server.netty4.PlayHandler.serve500(PlayHandler.java:625)
	at play.server.netty4.PlayHandler$Netty4Invocation.run(PlayHandler.java:260)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
02:52:45,242 TRACE [play.server.netty4.PlayHandler] ~ serve500: end

Refs: a6db7e1 ("fix concurrency issue in TemplateLoader")
  • Loading branch information
xabolcs committed Jan 9, 2025
1 parent 5c0801d commit 3bb79fe
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@

public class HelloWorldApp {
public int start(String playId) {
Play play = new Play(new PropertiesConfLoader("conf/"), new DefaultBeanSource(), new CookieSessionStore());
PropertiesConfLoader cl = new PropertiesConfLoader("conf/");
Play play = new Play(cl, new DefaultBeanSource(), new CookieSessionStore());
Play.configuration = cl.readConfiguration(playId);
play.minimalInit(playId);
Play.routes = ClasspathResource.file("conf/routes");
Play.pluginCollection.loadPlugins();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ http.port=9000
application.mode=DEV
%test.application.mode=PROD

%test.play.tmp=my_tmpdir_in_the_workdir

ehcache.heapSizeInEntries=100

0 comments on commit 3bb79fe

Please sign in to comment.