diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-11-15 12:40:40 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-11-15 12:46:19 +0100 |
commit | b69951996967a1c79e3a55dd13dd5609b19db6a1 (patch) | |
tree | f52f272d750678eee7468e2df846685a67a3ae17 /jvmfwk | |
parent | 7a11b9cc6d8a4116771333445637bb5b251420c8 (diff) |
Drop support for /etc/opt/ure and ~/.ure from LibreOffice 4
For one, /etc/opt/ure was probably never used by anyone anyway, so meant just
needless file-stats during startup. For another, accidentally created
~/.ure/javasettings_*.xml that later became stale were noted to cause trouble,
so that source is now closed.
For this to work, jvmfwk needs to be silent now if it cannot read/write any
shared/user javasettings_*.xml.
Change-Id: I332b5ebb9549dc6ccf7c99c439d9a3b61aeb5829
Diffstat (limited to 'jvmfwk')
-rw-r--r-- | jvmfwk/source/elements.cxx | 38 | ||||
-rw-r--r-- | jvmfwk/source/elements.hxx | 6 |
2 files changed, 31 insertions, 13 deletions
diff --git a/jvmfwk/source/elements.cxx b/jvmfwk/source/elements.cxx index a39571724458..c544d4525e72 100644 --- a/jvmfwk/source/elements.cxx +++ b/jvmfwk/source/elements.cxx @@ -223,7 +223,9 @@ void NodeJava::load() //we do not support yet to write into the shared installation //check if shared settings exist at all. - jfw::FileStatus s = checkFileURL(BootParams::getSharedData()); + OUString sURL(BootParams::getSharedData()); + jfw::FileStatus s = sURL.isEmpty() + ? FILE_DOES_NOT_EXIST : checkFileURL(sURL); if (s == FILE_INVALID) throw FrameworkException( JFW_E_ERROR, @@ -234,7 +236,11 @@ void NodeJava::load() } else if (USER == m_layer) { - prepareSettingsDocument(); + if (!prepareSettingsDocument()) + { + SAL_INFO("jvmfwk", "no path to load user settings document from"); + return; + } } else { @@ -383,12 +389,15 @@ void NodeJava::load() return ret; } -void NodeJava::prepareSettingsDocument() const +bool NodeJava::prepareSettingsDocument() const { rtl::OString sExcMsg( "[Java framework] Error in function prepareSettingsDocument" " (elements.cxx)."); - createSettingsDocument(); + if (!createSettingsDocument()) + { + return false; + } rtl::OString sSettings = getSettingsPath(); CXmlDocPtr doc(xmlParseFile(sSettings.getStr())); if (!doc) @@ -402,6 +411,7 @@ void NodeJava::prepareSettingsDocument() const sSettings.getStr(), doc,"UTF-8", 1) == -1) throw FrameworkException(JFW_E_ERROR, sExcMsg); } + return true; } void NodeJava::write() const @@ -412,7 +422,11 @@ void NodeJava::write() const CXPathContextPtr contextUser; CXPathObjectPtr pathObj; - prepareSettingsDocument(); + if (!prepareSettingsDocument()) + { + SAL_INFO("jvmfwk", "no path to write settings document to"); + return; + } //Read the user elements rtl::OString sSettingsPath = getSettingsPath(); @@ -689,11 +703,10 @@ const boost::optional<CNodeJavaInfo> & NodeJava::getJavaInfo() const return m_javaInfo; } -jfw::FileStatus NodeJava::checkSettingsFileStatus() const +jfw::FileStatus NodeJava::checkSettingsFileStatus(OUString const & sURL) const { jfw::FileStatus ret = FILE_DOES_NOT_EXIST; - const rtl::OUString sURL = getSettingsURL(); //check the file time ::osl::DirectoryItem item; File::RC rc = ::osl::DirectoryItem::get(sURL, item); @@ -725,15 +738,19 @@ jfw::FileStatus NodeJava::checkSettingsFileStatus() const return ret; } -void NodeJava::createSettingsDocument() const +bool NodeJava::createSettingsDocument() const { const rtl::OUString sURL = getSettingsURL(); + if (sURL.isEmpty()) + { + return false; + } //make sure there is a user directory rtl::OString sExcMsg("[Java framework] Error in function createSettingsDocument " "(elements.cxx)."); // check if javasettings.xml already exist - if (FILE_OK == checkSettingsFileStatus()) - return; + if (FILE_OK == checkSettingsFileStatus(sURL)) + return true; //make sure that the directories are created in case they do not exist FileBase::RC rcFile = Directory::createPath(getDirFromFile(sURL)); @@ -773,6 +790,7 @@ void NodeJava::createSettingsDocument() const const rtl::OString path = getSettingsPath(); if (xmlSaveFormatFileEnc(path.getStr(), doc,"UTF-8", 1) == -1) throw FrameworkException(JFW_E_ERROR, sExcMsg); + return true; } //===================================================================== diff --git a/jvmfwk/source/elements.hxx b/jvmfwk/source/elements.hxx index 7c99c507b1a4..507ac82db802 100644 --- a/jvmfwk/source/elements.hxx +++ b/jvmfwk/source/elements.hxx @@ -127,11 +127,11 @@ private: @return JFW_E_CONFIG_READWRITE */ - void prepareSettingsDocument() const; + bool prepareSettingsDocument() const; /** helper function for prepareSettingsDocument. */ - void createSettingsDocument() const; + bool createSettingsDocument() const; /** returns the system path to the data file which is to be used. The value depends on the the member m_layer and the bootstrap parameters @@ -145,7 +145,7 @@ private: /** Verifies if the respective settings file exist. */ - jfw::FileStatus checkSettingsFileStatus() const; + jfw::FileStatus checkSettingsFileStatus(OUString const & sURL) const; /** Determines the layer for which the instance the loads and writes the data. |