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 <alanruttenberg@gmail.com> 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 <blake@mcbride.name> 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 <alanruttenberg@gmail.com> 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 <blake@mcbride.name> 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(StartupListener.java:225)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.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(StartupListener.java:225)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.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(StartupListener.java:225)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.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(StartupListener.java:225)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)