Re: ABCL conflicts with tomcat on ## path names
Blake McBride <[email protected]>
| Newsgroups | gmane.editors.j.devel |
|---|---|
| Message-ID | <CABwHSOuSuhbSRK_Ahmrsrv0JuW-A2m5dHPzCP0BJx0Ap5t2O2A@mail.gmail.com> |
Thanks, Alan! Perhaps a special case because tomcat requires that the name starts with "ROOT##". I'm pretty sure it has to be uppercase too. Thanks! Blake On Wed, May 30, 2018 at 3:59 PM, Alan Ruttenberg <[email protected]> wrote: > Ah. I'll have to defer to Mark on this. What's happening is that > Pathname.makeURL is being called, I think so as to be able to load classes > from the ABCL jar file. makeURL creates a file:// URL, and that fails > because you can't have ## in a URL. > > Presumably you get a nastier error than I do because not enough of lisp is > set up to report it better. > > I can think of a number of ways of fixing it, in principle, but I've not > worked in that are of ABCL and it's delicate enough that I'm not keen to. > > Practically, you probably want to situate in a path that doesn't include > "##" (generic advice "don't do that" :-/) > > What's worse is that it seems you will have problems even with a single "#" > (pathname "file:///foo.com/#r") -> #P"/foo.com" > That's a bug... > > Maybe Mark can figure out how it could be delicately fixed... > > Alan > > On Wed, May 30, 2018 at 4:23 PM, Blake McBride <[email protected]> wrote: > >> I get that error when I execute the following from Java: >> >> interpreter = Interpreter.createInstance(); >> >> >> That is what is at com.arahant.lisp.ABCL.init(ABCL.java:35) >> >> >> >> On Wed, May 30, 2018 at 2:43 PM, Alan Ruttenberg < >> [email protected]> wrote: >> >>> Can say what you mean by "work"? >>> >>> I can make an use pathname with "##" in it without error. >>> If for pathname I use a URI instead, I get an error about the second "#" >>> which is illegal in the fragment name. If you were doing that in web >>> standards you would need to percent-encode the second "#" >>> >>> But how to quote inside filenames in lisp is confusing to me. Is it even >>> specified? >>> >>> I made a file called ~/a##b >>> (probe-file "/Users/alanr/a##b") succeeds >>> >>> (probe-file "file:///Users/alanr/a##b") fails: "Improper URI syntax for >>> 'file:/Users/lori/repos/bfo-theory/tex/a##b': >>> java.net.URISyntaxException: Illegal character in fragment at index 42: >>> file:///Users/lori/repos/bfo-theory/tex/a##b" >>> >>> (probe-file "file:///Users/lori/repos/bfo-theory/tex/a#%23b") returns >>> nil >>> >>> Still not the same error as you get. >>> >>> On Wed, May 30, 2018 at 1:51 PM, Blake McBride <[email protected]> >>> wrote: >>> >>>> With tomcat, if you want to change the root application you can >>>> either rename the directory ROOT or ROOT##myapp. ROOT#myapp makes a lot of >>>> sense because it reminds you what's there. However, that naming convention >>>> seems to conflict with ABCL. My app under ROOT works fine, but when I name >>>> it to ROOT##myapp ABCL gives: >>>> >>>> org.armedbear.lisp.IntegrityError >>>> at org.armedbear.lisp.Primitives$pf_error.execute(Primitives.java:1577) >>>> at org.armedbear.lisp.Primitive.execute(Primitive.java:113) >>>> at org.armedbear.lisp.Symbol.execute(Symbol.java:803) >>>> at org.armedbear.lisp.Lisp.error(Lisp.java:383) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:222) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:102) >>>> at org.armedbear.lisp.Pathname.truename(Pathname.java:2275) >>>> at org.armedbear.lisp.Load.findLoadableFile(Load.java:69) >>>> at org.armedbear.lisp.Load.loadSystemFile(Load.java:305) >>>> at org.armedbear.lisp.Interpreter.initializeLisp(Interpreter.java:172) >>>> at org.armedbear.lisp.Interpreter.createInstance(Interpreter.java:72) >>>> at com.arahant.lisp.ABCL.init(ABCL.java:35) >>>> at com.arahant.utils.StartupListener.contextInitialized(Startup >>>> Listener.java:225) >>>> at org.apache.catalina.core.StandardContext.listenerStart(Stand >>>> ardContext.java:4792) >>>> at org.apache.catalina.core.StandardContext.startInternal(Stand >>>> ardContext.java:5256) >>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >>>> at org.apache.catalina.core.ContainerBase.addChildInternal(Cont >>>> ainerBase.java:754) >>>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBas >>>> e.java:730) >>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost. >>>> java:734) >>>> at org.apache.catalina.startup.HostConfig.deployDirectory(HostC >>>> onfig.java:1140) >>>> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(H >>>> ostConfig.java:1875) >>>> at java.util.concurrent.Executors$RunnableAdapter.call(Executor >>>> s.java:511) >>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>>> Executor.java:1149) >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>>> lExecutor.java:624) >>>> at java.lang.Thread.run(Thread.java:748) >>>> ERROR placeholder called with arguments: >>>> Failed to get cached ZipFile because java.io.FileNotFoundException: >>>> /home/arahant/apache-tomcat-8.5.31/demo/ROOT (No such file or >>>> directory) >>>> Failed to get cached ZipFile because java.io.FileNotFoundException: >>>> /home/arahant/apache-tomcat-8.5.31/demo/ROOT (No such file or >>>> directory) >>>> [ERROR] [utils.StartupListener ] - 2018-05-30 12:42:02 Error >>>> initializing Lisp. >>>> org.armedbear.lisp.IntegrityError >>>> at org.armedbear.lisp.Primitives$pf_error.execute(Primitives.java:1577) >>>> at org.armedbear.lisp.Primitive.execute(Primitive.java:113) >>>> at org.armedbear.lisp.Symbol.execute(Symbol.java:803) >>>> at org.armedbear.lisp.Lisp.error(Lisp.java:383) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:222) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:102) >>>> at org.armedbear.lisp.Pathname.truename(Pathname.java:2275) >>>> at org.armedbear.lisp.Load.findLoadableFile(Load.java:69) >>>> at org.armedbear.lisp.Load.loadSystemFile(Load.java:305) >>>> at org.armedbear.lisp.Interpreter.initializeLisp(Interpreter.java:172) >>>> at org.armedbear.lisp.Interpreter.createInstance(Interpreter.java:72) >>>> at com.arahant.lisp.ABCL.init(ABCL.java:35) >>>> at com.arahant.utils.StartupListener.contextInitialized(Startup >>>> Listener.java:225) >>>> at org.apache.catalina.core.StandardContext.listenerStart(Stand >>>> ardContext.java:4792) >>>> at org.apache.catalina.core.StandardContext.startInternal(Stand >>>> ardContext.java:5256) >>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >>>> at org.apache.catalina.core.ContainerBase.addChildInternal(Cont >>>> ainerBase.java:754) >>>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBas >>>> e.java:730) >>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost. >>>> java:734) >>>> at org.apache.catalina.startup.HostConfig.deployDirectory(HostC >>>> onfig.java:1140) >>>> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(H >>>> ostConfig.java:1875) >>>> at java.util.concurrent.Executors$RunnableAdapter.call(Executor >>>> s.java:511) >>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>>> Executor.java:1149) >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>>> lExecutor.java:624) >>>> at java.lang.Thread.run(Thread.java:748) >>>> org.armedbear.lisp.IntegrityError >>>> at org.armedbear.lisp.Primitives$pf_error.execute(Primitives.java:1577) >>>> at org.armedbear.lisp.Primitive.execute(Primitive.java:113) >>>> at org.armedbear.lisp.Symbol.execute(Symbol.java:803) >>>> at org.armedbear.lisp.Lisp.error(Lisp.java:383) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:222) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:102) >>>> at org.armedbear.lisp.Pathname.truename(Pathname.java:2275) >>>> at org.armedbear.lisp.Load.findLoadableFile(Load.java:69) >>>> at org.armedbear.lisp.Load.loadSystemFile(Load.java:305) >>>> at org.armedbear.lisp.Interpreter.initializeLisp(Interpreter.java:172) >>>> at org.armedbear.lisp.Interpreter.createInstance(Interpreter.java:72) >>>> at com.arahant.lisp.ABCL.init(ABCL.java:35) >>>> at com.arahant.utils.StartupListener.contextInitialized(Startup >>>> Listener.java:225) >>>> at org.apache.catalina.core.StandardContext.listenerStart(Stand >>>> ardContext.java:4792) >>>> at org.apache.catalina.core.StandardContext.startInternal(Stand >>>> ardContext.java:5256) >>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >>>> at org.apache.catalina.core.ContainerBase.addChildInternal(Cont >>>> ainerBase.java:754) >>>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBas >>>> e.java:730) >>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost. >>>> java:734) >>>> at org.apache.catalina.startup.HostConfig.deployDirectory(HostC >>>> onfig.java:1140) >>>> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(H >>>> ostConfig.java:1875) >>>> at java.util.concurrent.Executors$RunnableAdapter.call(Executor >>>> s.java:511) >>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>>> Executor.java:1149) >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>>> lExecutor.java:624) >>>> at java.lang.Thread.run(Thread.java:748) >>>> [ERROR] [utils.StartupListener ] - org.armedbear.lisp.IntegrityError >>>> at org.armedbear.lisp.Primitives$pf_error.execute(Primitives.java:1577) >>>> at org.armedbear.lisp.Primitive.execute(Primitive.java:113) >>>> at org.armedbear.lisp.Symbol.execute(Symbol.java:803) >>>> at org.armedbear.lisp.Lisp.error(Lisp.java:383) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:222) >>>> at org.armedbear.lisp.ZipCache.get(ZipCache.java:102) >>>> at org.armedbear.lisp.Pathname.truename(Pathname.java:2275) >>>> at org.armedbear.lisp.Load.findLoadableFile(Load.java:69) >>>> at org.armedbear.lisp.Load.loadSystemFile(Load.java:305) >>>> at org.armedbear.lisp.Interpreter.initializeLisp(Interpreter.java:172) >>>> at org.armedbear.lisp.Interpreter.createInstance(Interpreter.java:72) >>>> at com.arahant.lisp.ABCL.init(ABCL.java:35) >>>> at com.arahant.utils.StartupListener.contextInitialized(Startup >>>> Listener.java:225) >>>> at org.apache.catalina.core.StandardContext.listenerStart(Stand >>>> ardContext.java:4792) >>>> at org.apache.catalina.core.StandardContext.startInternal(Stand >>>> ardContext.java:5256) >>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >>>> at org.apache.catalina.core.ContainerBase.addChildInternal(Cont >>>> ainerBase.java:754) >>>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBas >>>> e.java:730) >>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost. >>>> java:734) >>>> at org.apache.catalina.startup.HostConfig.deployDirectory(HostC >>>> onfig.java:1140) >>>> at org.apache.catalina.startup.HostConfig$DeployDirectory.run(H >>>> ostConfig.java:1875) >>>> at java.util.concurrent.Executors$RunnableAdapter.call(Executor >>>> s.java:511) >>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>>> Executor.java:1149) >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>>> lExecutor.java:624) >>>> at java.lang.Thread.run(Thread.java:748) >>>> >>>> >>> >> >