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)
>>>>
>>>>
>>>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.