[ 
https://issues.apache.org/jira/browse/JENA-2030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17275561#comment-17275561
 ] 

Wolfgang Fahl edited comment on JENA-2030 at 1/30/21, 12:14 PM:
----------------------------------------------------------------

[~andy] thank you for looking into this.

The issue seems to be still related 
[https://stackoverflow.com/questions/63874908/fuseki-configuration/63878809#63878809]
 . I never bothered to fiddle with the ttl files myself since I did not invest 
enough time to master the learning curve needed for doing so.

I always hoped Fuseki/Jena would make life simpler and my workaround to use 
symbolic links for my data worked nicely. Unfortunately I only tried with full 
path symbolic links I don't know whether symbolic links would have worked.

So when moving such a configuration the log file do not clearly state that the 
symbolic links don't work properly any more.

I think a few things would help here:
 * Improving the dataset configuration via the web interface by adding an 
"edit" button to the manage datasets web ui - and e.g. showing the availability 
of the datasets there.
 * the server should still start if a single dataset is misconfigured in simply 
mark the dataset as unavailable.
 * The log file should contain hints in case typical problems like a non 
available directory/broken symlink shows up. This would be a nice addition to 
the debug stack trace. I used to add the "hint" functionality systematically to 
my java projects since typical exceptions showed up so often and had no really 
helpful information that such a hint was worthwhile to create very often - and 
I'd mostly let it point to an FAQ or dicussion forum where details of scenarios 
could be dicussed without having to modify the software.


 !image-2021-01-30-13-11-14-582.png!


was (Author: wolfgangfahl):
[~andy] thank you for looking into this.

The issue seems to be still related 
[https://stackoverflow.com/questions/63874908/fuseki-configuration/63878809#63878809]
 . I never bothered to fiddle with the ttl files myself since I did not invest 
enough time to master the learning curve needed for doing so.

I always hoped Fuseki/Jena would make life simpler and my workaround to use 
symbolic links for my data worked nicely. Unfortunately I only tried with full 
path symbolic links I don't know whether symbolic links would have worked. 

So when moving such a configuration the log file do not clearly state that the 
symbolic links don't work properly any more. 

I think two things would help here:

Improving the dataset configuration via the web interface by adding an "edit" 
button to:
!image-2021-01-30-13-11-14-582.png!

> Startup error messages about file problems should show filename/path of 
> culprit
> -------------------------------------------------------------------------------
>
>                 Key: JENA-2030
>                 URL: https://issues.apache.org/jira/browse/JENA-2030
>             Project: Apache Jena
>          Issue Type: New Feature
>          Components: Fuseki
>    Affects Versions: Jena 3.16.0
>            Reporter: Wolfgang Fahl
>            Priority: Major
>         Attachments: image-2021-01-30-13-11-14-582.png
>
>
> Please find below a log of a startup which leads to a non working fuseki 
> instance - at least i can't access it at port 3030. 
>  I am still trying to use the [https://stackoverflow.com/a/63878809/1497139] 
> approach of configuration since i never new how to fiddle with the ttl config 
> files. For me it looks like some configuration files are picked up (aeon.ttl) 
> that are not intended for the startup.
> My main problem is to debug the situation a message like:
> {noformat}
> org.apache.jena.assembler.exceptions.AssemblerException: caught: 
> java.io.IOException: No such file or directory
> {noformat}
>  does not help if there seems to be no hint what file or directory is missing 
> and what it is good for. Many lines later the config file having the problem 
> is shown but not the entry that is the problem.
> {noformat}
>  12:41:50 INFO Server :: Started 2021/01/29 12:41:50 MEZ on port 3030
> {noformat}
>  is confusing since still the 3030 access seems to be local only.
> {noformat}
> apache-jena-fuseki-3.16.0 already downloaded and unpacked
> 12:41:48 INFO  Server          :: Running in read-only mode for /wikidata
> 12:41:49 INFO  Server          :: Apache Jena Fuseki 3.16.0
> 12:41:49 INFO  Config          :: 
> FUSEKI_HOME=/Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/.
> 12:41:49 INFO  Config          :: 
> FUSEKI_BASE=/Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/run
> 12:41:49 INFO  Config          :: Shiro file: 
> file:///Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/run/shiro.ini
> 12:41:49 INFO  Config          :: Template file: templates/config-tdb2-dir
> 12:41:49 INFO  Config          :: TDB dataset: directory=../data
> 12:41:49 INFO  Config          :: Load configuration: 
> file:///Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/run/configuration/aeon.ttl
> 12:41:49 ERROR Server          :: Exception in initialization: caught: 
> java.io.IOException: No such file or directory
> 12:41:49 WARN  WebAppContext   :: Failed startup of context 
> o.e.j.w.WebAppContext@7e4579c7{Apache Jena Fuseki 
> Server,/,file:///Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/webapp/,UNAVAILABLE}
> org.apache.jena.assembler.exceptions.AssemblerException: caught: 
> java.io.IOException: No such file or directory
>       at 
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:165)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:144)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:93)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.build.FusekiConfig.getDataset(FusekiConfig.java:642) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.build.FusekiConfig.buildDataService(FusekiConfig.java:443)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.build.FusekiConfig.buildDataAccessPoint(FusekiConfig.java:433)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.build.FusekiConfig.readConfiguration(FusekiConfig.java:416)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.build.FusekiConfig.readConfigurationDirectory(FusekiConfig.java:395)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.webapp.FusekiWebapp.initializeDataAccessPoints(FusekiWebapp.java:217)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.webapp.FusekiServerListener.serverInitialization(FusekiServerListener.java:97)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.webapp.FusekiServerListener.contextInitialized(FusekiServerListener.java:57)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:930)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:889)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:356)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524) 
> [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:425)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
>  [fuseki-server.jar:3.16.0]
>       at org.eclipse.jetty.server.Server.start(Server.java:407) 
> [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
>  [fuseki-server.jar:3.16.0]
>       at org.eclipse.jetty.server.Server.doStart(Server.java:371) 
> [fuseki-server.jar:3.16.0]
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
>  [fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.cmd.JettyFusekiWebapp.start(JettyFusekiWebapp.java:125)
>  [fuseki-server.jar:3.16.0]
>       at org.apache.jena.fuseki.cmd.FusekiCmd.runFuseki(FusekiCmd.java:379) 
> [fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:363) 
> [fuseki-server.jar:3.16.0]
>       at jena.cmd.CmdMain.mainMethod(CmdMain.java:92) 
> [fuseki-server.jar:3.16.0]
>       at jena.cmd.CmdMain.mainRun(CmdMain.java:58) [fuseki-server.jar:3.16.0]
>       at jena.cmd.CmdMain.mainRun(CmdMain.java:45) [fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:105)
>  [fuseki-server.jar:3.16.0]
>       at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:68) 
> [fuseki-server.jar:3.16.0]
> Caused by: org.apache.jena.atlas.RuntimeIOException: java.io.IOException: No 
> such file or directory
>       at org.apache.jena.atlas.io.IO.exception(IO.java:261) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.lockForLocation(DatabaseConnection.java:131)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.build(DatabaseConnection.java:98) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.lambda$make$0(DatabaseConnection.java:74)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
>  ~[?:?]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.make(DatabaseConnection.java:74) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:63)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:54)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.DatabaseMgr.DB_ConnectCreate(DatabaseMgr.java:41) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.DatabaseMgr.connectDatasetGraph(DatabaseMgr.java:46) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.make(DatasetAssemblerTDB.java:59)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.createDataset(DatasetAssemblerTDB.java:50)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.sparql.core.assembler.DatasetAssembler.open(DatasetAssembler.java:43)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:157)
>  ~[fuseki-server.jar:3.16.0]
>       ... 41 more
> Caused by: java.io.IOException: No such file or directory
>       at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[?:?]
>       at java.io.File.createNewFile(File.java:1024) ~[?:?]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.lockForLocation(DatabaseConnection.java:130)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.build(DatabaseConnection.java:98) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.lambda$make$0(DatabaseConnection.java:74)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
>  ~[?:?]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.make(DatabaseConnection.java:74) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:63)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:54)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.DatabaseMgr.DB_ConnectCreate(DatabaseMgr.java:41) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.DatabaseMgr.connectDatasetGraph(DatabaseMgr.java:46) 
> ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.make(DatasetAssemblerTDB.java:59)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.createDataset(DatasetAssemblerTDB.java:50)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.sparql.core.assembler.DatasetAssembler.open(DatasetAssembler.java:43)
>  ~[fuseki-server.jar:3.16.0]
>       at 
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:157)
>  ~[fuseki-server.jar:3.16.0]
>       ... 41 more
> 12:41:50 INFO  Server          :: Started 2021/01/29 12:41:50 MEZ on port 3030
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to