---
title: "Collect does not start: permission problem"
url: "https://openforis.support/questions/2178/collect-does-not-start-permission-problem"
tags: ["collect"]
status: "answered"
score: 0
answer_count: 3
asked: "2019-03-08T15:29:23"
last_activity: "2019-03-12T17:49:32"
source: "Open Foris Support - Q&A Forum"
license: "Copyright Open Foris, 2026. Some rights reserved under creative commons license."
---

# Collect does not start: permission problem

Asked by thistle on 2019-03-08

I have just installed Collect on Ubuntu 16.04 (all latest updates installed) following the instructions provided, but it does not start due to some permissions issue.

These are the folders created by the installer:

    $-> ls -l
    total 12340
       4 drwxr-xr-x 2 user root    4096 mar  8 15:18 autoupdate/
       4 -rw-r--r-- 1 user root     290 mar  8 15:18 collect.properties
       4 drwxr-xr-x 2 root     root    4096 mar  8 15:18 data/
       4 drwxr-xr-x 2 user root    4096 mar  8 15:18 images/
       4 drwxr-xr-x 6 user root    4096 mar  8 15:18 java/
       4 drwxr-xr-x 2 user root    4096 mar  8 15:18 lib/
       4 drwxr-xr-x 2 root     root    4096 mar  8 15:18 logs/
    6116 -rwxrwxr-x 1 user root 6259449 mar  8 15:18 OpenForisCollect-launcher.run*
       4 -rw-r--r-- 1 user root      71 mar  8 15:18 OpenForisCollect-launcher.run.properties
    6176 -rwx------ 1 user root 6323912 mar  8 15:18 uninstall*
      12 -rw------- 1 root     root    9011 mar  8 15:18 uninstall.dat
       4 drwxr-xr-x 3 user root    4096 mar  8 15:19 webapps/




The full error message follows:

    2019-03-08 15:20:09,970 JavaFX Application Thread ERROR Unable to create file logs/collect_server.log java.io.IOException: Permission denied
    	at java.io.UnixFileSystem.createFileExclusively(Native Method)
    	at java.io.File.createNewFile(File.java:1012)
    	at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:628)
    	at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:608)
    	at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:113)
    	at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
    	at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:188)
    	at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:145)
    	at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:61)
    	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:123)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:959)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:899)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:891)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
    	at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
    	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
    	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
    	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
    	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
    	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
    	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
    	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581)
    	at org.openforis.collect.controlpanel.CollectControlPanelController.<clinit>(CollectControlPanelController.java:40)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    	at java.lang.Class.newInstance(Class.java:442)
    	at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
    	at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
    	at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
    	at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
    	at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
    	at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
    	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
    	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
    	at org.openforis.collect.controlpanel.CollectControlPanel.start(CollectControlPanel.java:36)
    	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
    	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
    	at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
    	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
    	at java.lang.Thread.run(Thread.java:745)
    
    2019-03-08 15:20:09,973 JavaFX Application Thread ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@bd9a56c] unable to create manager for [logs/collect_server.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@7e665ef2[pattern=logs/${date:yyyy-MM}/collect_server-%d{MM-dd-yyyy}-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[OnStartupTriggeringPolicy, TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=52428800)]), strategy=DefaultRolloverStrategy(min=1, max=20, useMax=true), advertiseURI=null, layout=%d %p %c [%t] %m%n, filePermissions=null, fileOwner=null]] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@bd9a56c] unable to create manager for [logs/collect_server.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@7e665ef2[pattern=logs/${date:yyyy-MM}/collect_server-%d{MM-dd-yyyy}-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[OnStartupTriggeringPolicy, TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=52428800)]), strategy=DefaultRolloverStrategy(min=1, max=20, useMax=true), advertiseURI=null, layout=%d %p %c [%t] %m%n, filePermissions=null, fileOwner=null]]
    	at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:115)
    	at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
    	at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:188)
    	at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:145)
    	at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:61)
    	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:123)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:959)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:899)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:891)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
    	at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
    	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
    	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
    	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
    	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
    	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
    	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
    	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581)
    	at org.openforis.collect.controlpanel.CollectControlPanelController.<clinit>(CollectControlPanelController.java:40)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    	at java.lang.Class.newInstance(Class.java:442)
    	at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
    	at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
    	at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
    	at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
    	at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
    	at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
    	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
    	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
    	at org.openforis.collect.controlpanel.CollectControlPanel.start(CollectControlPanel.java:36)
    	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
    	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
    	at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
    	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
    	at java.lang.Thread.run(Thread.java:745)
    
    2019-03-08 15:20:09,975 JavaFX Application Thread ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
    	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:235)
    	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:135)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:959)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:899)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:891)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
    	at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
    	at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
    	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
    	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
    	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
    	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
    	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
    	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
    	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581)
    	at org.openforis.collect.controlpanel.CollectControlPanelController.<clinit>(CollectControlPanelController.java:40)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    	at java.lang.Class.newInstance(Class.java:442)
    	at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
    	at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
    	at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
    	at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
    	at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
    	at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
    	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
    	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
    	at org.openforis.collect.controlpanel.CollectControlPanel.start(CollectControlPanel.java:36)
    	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
    	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
    	at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
    	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    	at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
    	at java.lang.Thread.run(Thread.java:745)
    
    2019-03-08 15:20:09,975 JavaFX Application Thread ERROR Null object returned for RollingFile in Appenders.
    2019-03-08 15:20:09,977 JavaFX Application Thread ERROR Unable to locate appender "rollingFileAppender" for logger config "root"
    null/org/openforis/collect/controlpanel/of-collect-logo.png
    null/org/openforis/collect/controlpanel/collect_control_panel.css
    2019-03-08 15:20:10.191:INFO::pool-3-thread-1: Logging initialized @660ms to org.eclipse.jetty.util.log.StdErrLog
    org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (opening db: '/home/user/OpenForis/Collect/data/collect.db': Permission denied)
    	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
    	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
    	at org.apache.commons.dbcp.BasicDataSource.getLogWriter(BasicDataSource.java:1098)
    	at org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:350)
    	at org.openforis.collect.controlpanel.JettyApplicationServer.registerDbJndiResource(JettyApplicationServer.java:179)
    	at org.openforis.collect.controlpanel.JettyApplicationServer.registerWebapps(JettyApplicationServer.java:104)
    	at org.openforis.collect.controlpanel.JettyApplicationServer.start(JettyApplicationServer.java:71)
    	at org.openforis.collect.controlpanel.CollectControlPanelController.lambda$startServer$2(CollectControlPanelController.java:180)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: java.sql.SQLException: opening db: '/home/user/OpenForis/Collect/data/collect.db': Permission denied
    	at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:226)
    	at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:61)
    	at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28)
    	at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:21)
    	at org.sqlite.JDBC.createConnection(JDBC.java:116)
    	at org.sqlite.JDBC.connect(JDBC.java:90)
    	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
    	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
    	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
    	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
    	... 14 more


## Answer (score 0, by Stefano (OF) on 2019-03-08)

Link: https://openforis.support/questions/2178/collect-does-not-start-permission-problem/2179

Dear user,  
It seems like the logs folder is owned by the "root" user... have you run Collect the first time with administrative rights?  
You don't need to install Collect or run it with administrative rights, so please try to reinstall it and run it without them.  
Let us know, many thanks.  
Open Foris Team


## Answer (score 0, by thistle on 2019-03-08)

Link: https://openforis.support/questions/2178/collect-does-not-start-permission-problem/2181

I have deleted the ~/OpenForis folder (rm -fr OpenForis), and reinstalled according to your instructions (Run the .run file as a super user and follow the instructions on the screen. Collect will be installed by default into ~/OpenForis/Collect.)

These are the folders created by the installer. As you can see the logs folder is already there.


       4 drwxr-xr-x 2 user root    4096 mar  8 17:42 autoupdate/
       4 -rw-r--r-- 1 user root     290 mar  8 17:42 collect.properties
       4 drwxr-xr-x 2 root     root    4096 mar  8 17:42 data/
       4 drwxr-xr-x 2 user root    4096 mar  8 17:42 images/
       4 drwxr-xr-x 6 user root    4096 mar  8 17:42 java/
       4 drwxr-xr-x 2 user root    4096 mar  8 17:42 lib/
       4 drwxr-xr-x 2 root     root    4096 mar  8 17:42 logs/
    6116 -rwxrwxr-x 1 user root 6259449 mar  8 17:42 OpenForisCollect-launcher.run*
       4 -rw-r--r-- 1 user root      71 mar  8 17:42 OpenForisCollect-launcher.run.properties
    6176 -rwx------ 1 user root 6323912 mar  8 17:42 uninstall*
      12 -rw------- 1 root     root    9012 mar  8 17:42 uninstall.dat
       4 drwxr-xr-x 2 user root    4096 mar  8 17:42 webapps/


## Answer (score 0, by Stefano (OF) on 2019-03-12)

Link: https://openforis.support/questions/2178/collect-does-not-start-permission-problem/2185

Dear user,  
You DON'T HAVE to run the installer as a super user.  
Please install it again as a normal user.  
The folders created by the installer should be owned only by your user.  
Many thanks,  
Open Foris Team

> Then the instructions at http://www.openforis.org/tools/collect/tutorials/installation.html are wrong. Linux systems Download the installer: Collect installer for Linux systems Run the .run file as a super user and follow the instructions on the screen. Collect will be installed by default into ~/OpenForis/Collect. (thistle)
> You are absolutely right, we will update the instructions accordingly. (Stefano (OF))
