summaryrefslogtreecommitdiff
path: root/jvmfwk
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-11-15 12:40:40 +0100
committerStephan Bergmann <sbergman@redhat.com>2012-11-15 12:46:19 +0100
commitb69951996967a1c79e3a55dd13dd5609b19db6a1 (patch)
treef52f272d750678eee7468e2df846685a67a3ae17 /jvmfwk
parent7a11b9cc6d8a4116771333445637bb5b251420c8 (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.cxx38
-rw-r--r--jvmfwk/source/elements.hxx6
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.