ABCL conflicts with tomcat on ## path names

Alan Ruttenberg alanruttenberg at gmail.com
Wed May 30 21:42:30 UTC 2018


On Wed, May 30, 2018 at 5:22 PM, Blake McBride <blake at mcbride.name> wrote:

> 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.
>

That's odd. I can certainly start up ABCL in a direct whose name is mixed
case. MacOS preserves but doesn't consider case significant.

Thanks!
>
np
Alan


>
>
Blake
>
>
> On Wed, May 30, 2018 at 3:59 PM, Alan Ruttenberg <alanruttenberg at 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 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.ja
>>>>> va: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.j
>>>>> ava: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.ja
>>>>> va: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.j
>>>>> ava: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.ja
>>>>> va: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.j
>>>>> ava: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.IntegrityEr
>>>>> ror
>>>>> at org.armedbear.lisp.Primitives$pf_error.execute(Primitives.ja
>>>>> va: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.j
>>>>> ava: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/15938a6c/attachment-0001.html>


More information about the armedbear-devel mailing list