ABCL conflicts with tomcat on ## path names

Alan Ruttenberg alanruttenberg at gmail.com
Wed May 30 20:59:09 UTC 2018


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 at 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 at 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 at 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(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)
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20180530/940daddb/attachment-0001.html>


More information about the armedbear-devel mailing list