Bug Summary

File:jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
Location:line 612, column 5
Description:Memory is never released; potential leak

Annotated Source Code

1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20
21#ifdef WNT
22# include <stdio.h>
23# include <sys/stat.h>
24# include <windows.h>
25#endif
26
27#ifdef ANDROID
28# include <dlfcn.h>
29#endif
30
31#if OSL_DEBUG_LEVEL1 > 0
32#include <stdio.h>
33#endif
34#include <string.h>
35
36#include "boost/scoped_array.hpp"
37#include "osl/diagnose.h"
38#include "rtl/ustring.hxx"
39#include "rtl/ustrbuf.hxx"
40#include "osl/module.hxx"
41#include "osl/mutex.hxx"
42#include "osl/thread.hxx"
43#include "osl/file.hxx"
44#include "rtl/instance.hxx"
45#include "osl/getglobalmutex.hxx"
46#include <setjmp.h>
47#include <signal.h>
48#include <stack>
49
50#include "jni.h"
51#include "rtl/byteseq.hxx"
52#include "jvmfwk/vendorplugin.h"
53#include "util.hxx"
54#include "sunversion.hxx"
55#include "vendorlist.hxx"
56#include "diagnostics.h"
57
58#ifdef ANDROID
59#include <osl/detail/android-bootstrap.h>
60#endif
61
62#if defined HAVE_VALGRIND_H
63#include <valgrind.h>
64#else
65#define RUNNING_ON_VALGRIND0 0
66#endif
67
68#define OUSTR(x)::rtl::OUString( (&(x)[0]), ((sal_Int32)((sizeof (x) / sizeof
((x)[0]))-1)), (((rtl_TextEncoding) 11)) )
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x)(&(x)[0]), ((sal_Int32)((sizeof (x) / sizeof ((x)[0]))-1)
), (((rtl_TextEncoding) 11))
)
69#define SUN_MICRO"Sun Microsystems Inc." "Sun Microsystems Inc."
70
71using namespace osl;
72using namespace std;
73using namespace jfw_plugin;
74
75using ::rtl::OUString;
76using ::rtl::OUStringBuffer;
77using ::rtl::OString;
78
79namespace {
80
81struct PluginMutex: public ::rtl::Static<osl::Mutex, PluginMutex> {};
82
83#if defined UNX1
84OString getPluginJarPath(
85 const OUString & sVendor,
86 const OUString& sLocation,
87 const OUString& sVersion)
88{
89 OString ret;
90 OUString sName1(RTL_CONSTASCII_USTRINGPARAM("javaplugin.jar")(&("javaplugin.jar")[0]), ((sal_Int32)((sizeof ("javaplugin.jar"
) / sizeof (("javaplugin.jar")[0]))-1)), (((rtl_TextEncoding)
11))
);
91 OUString sName2(RTL_CONSTASCII_USTRINGPARAM("plugin.jar")(&("plugin.jar")[0]), ((sal_Int32)((sizeof ("plugin.jar")
/ sizeof (("plugin.jar")[0]))-1)), (((rtl_TextEncoding) 11))
);
92 OUString sPath;
93 if ( sVendor == SUN_MICRO"Sun Microsystems Inc." )
94 {
95 SunVersion ver142("1.4.2-ea");
96 SunVersion ver150("1.5.0-ea");
97 SunVersion ver(sVersion);
98 OSL_ASSERT(ver142 && ver150 && ver)do { if (true && (!(ver142 && ver150 &&
ver))) { sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN), (
"legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "98" ": "), "OSL_ASSERT: %s", "ver142 && ver150 && ver"
); } } while (false)
;
99
100 OUString sName;
101 if (ver < ver142)
102 {
103 sName = sName1;
104 }
105 else if (ver < ver150)
106 {//this will cause ea, beta etc. to have plugin.jar in path.
107 //but this does not harm. 1.5.0-beta < 1.5.0
108 sName = sName2;
109 }
110 if (!sName.isEmpty())
111 {
112 sName = sLocation + OUSTR("/lib/")::rtl::OUString( (&("/lib/")[0]), ((sal_Int32)((sizeof ("/lib/"
) / sizeof (("/lib/")[0]))-1)), (((rtl_TextEncoding) 11)) )
+ sName;
113 OSL_VERIFY(do { if (!(osl_getSystemPathFromFileURL(sName.pData, & sPath
.pData) == osl_File_E_None)) do { if (true && (!(0)))
{ sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"
), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "115" ": "), "OSL_ASSERT: %s", "0"); } } while (false); }
while (0)
114 osl_getSystemPathFromFileURL(sName.pData, & sPath.pData)do { if (!(osl_getSystemPathFromFileURL(sName.pData, & sPath
.pData) == osl_File_E_None)) do { if (true && (!(0)))
{ sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"
), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "115" ": "), "OSL_ASSERT: %s", "0"); } } while (false); }
while (0)
115 == osl_File_E_None)do { if (!(osl_getSystemPathFromFileURL(sName.pData, & sPath
.pData) == osl_File_E_None)) do { if (true && (!(0)))
{ sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"
), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "115" ": "), "OSL_ASSERT: %s", "0"); } } while (false); }
while (0)
;
116 }
117 }
118 else
119 {
120 char sep[] = {SAL_PATHSEPARATOR':', 0};
121 OUString sName(sLocation + OUSTR("/lib/")::rtl::OUString( (&("/lib/")[0]), ((sal_Int32)((sizeof ("/lib/"
) / sizeof (("/lib/")[0]))-1)), (((rtl_TextEncoding) 11)) )
+ sName1);
122 OUString sPath1;
123 OUString sPath2;
124 if (osl_getSystemPathFromFileURL(sName.pData, & sPath1.pData)
125 == osl_File_E_None)
126 {
127 sName = sLocation + OUSTR("/lib/")::rtl::OUString( (&("/lib/")[0]), ((sal_Int32)((sizeof ("/lib/"
) / sizeof (("/lib/")[0]))-1)), (((rtl_TextEncoding) 11)) )
+ sName2;
128 if (osl_getSystemPathFromFileURL(sName.pData, & sPath2.pData)
129 == osl_File_E_None)
130 {
131 sPath = sPath1 + OUString::createFromAscii(sep) + sPath2;
132 }
133 }
134 OSL_ASSERT(!sPath.isEmpty())do { if (true && (!(!sPath.isEmpty()))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "134" ": "), "OSL_ASSERT: %s", "!sPath.isEmpty()"); } } while
(false)
;
135 }
136 ret = rtl::OUStringToOString(sPath, osl_getThreadTextEncoding());
137
138 return ret;
139}
140#endif // UNX
141
142
143JavaInfo* createJavaInfo(const rtl::Reference<VendorBase> & info)
144{
145 JavaInfo* pInfo = (JavaInfo*) rtl_allocateMemory(sizeof(JavaInfo));
146 if (pInfo == NULL__null)
147 return NULL__null;
148 rtl::OUString sVendor = info->getVendor();
149 pInfo->sVendor = sVendor.pData;
150 rtl_uString_acquire(sVendor.pData);
151 rtl::OUString sHome = info->getHome();
152 pInfo->sLocation = sHome.pData;
153 rtl_uString_acquire(pInfo->sLocation);
154 rtl::OUString sVersion = info->getVersion();
155 pInfo->sVersion = sVersion.pData;
156 rtl_uString_acquire(pInfo->sVersion);
157 pInfo->nFeatures = info->supportsAccessibility() ? 1 : 0;
158 pInfo->nRequirements = info->needsRestart() ? JFW_REQUIRE_NEEDRESTART0x1l : 0;
159 rtl::OUStringBuffer buf(1024);
160 buf.append(info->getRuntimeLibrary());
161 if (!info->getLibraryPaths().isEmpty())
162 {
163 buf.appendAscii("\n");
164 buf.append(info->getLibraryPaths());
165 buf.appendAscii("\n");
166 }
167
168 rtl::OUString sVendorData = buf.makeStringAndClear();
169 rtl::ByteSequence byteSeq( (sal_Int8*) sVendorData.pData->buffer,
170 sVendorData.getLength() * sizeof(sal_Unicode));
171 pInfo->arVendorData = byteSeq.get();
172 rtl_byte_sequence_acquire(pInfo->arVendorData);
173
174 return pInfo;
175}
176
177rtl::OUString getRuntimeLib(const rtl::ByteSequence & data)
178{
179 const sal_Unicode* chars = (sal_Unicode*) data.getConstArray();
180 sal_Int32 len = data.getLength();
181 rtl::OUString sData(chars, len / 2);
182 //the runtime lib is on the first line
183 sal_Int32 index = 0;
184 rtl::OUString aToken = sData.getToken( 0, '\n', index);
185
186 return aToken;
187}
188
189jmp_buf jmp_jvm_abort;
190sig_atomic_t g_bInGetJavaVM = 0;
191
192extern "C" void JNICALL abort_handler()
193{
194 // If we are within JNI_CreateJavaVM then we jump back into getJavaVM
195 if( g_bInGetJavaVM != 0 )
196 {
197 fprintf( stderrstderr, "JavaVM: JNI_CreateJavaVM called _exit, caught by abort_handler in javavm.cxx\n");
198 longjmp( jmp_jvm_abort, 0);
199 }
200}
201
202}
203
204extern "C"
205javaPluginError jfw_plugin_getAllJavaInfos(
206 rtl_uString *sVendor,
207 rtl_uString *sMinVersion,
208 rtl_uString *sMaxVersion,
209 rtl_uString * *arExcludeList,
210 sal_Int32 nLenList,
211 JavaInfo*** parJavaInfo,
212 sal_Int32 *nLenInfoList)
213{
214 OSL_ASSERT(sVendor)do { if (true && (!(sVendor))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "214" ": "), "OSL_ASSERT: %s", "sVendor"); } } while (false
)
;
215 OSL_ASSERT(sMinVersion)do { if (true && (!(sMinVersion))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "215" ": "), "OSL_ASSERT: %s", "sMinVersion"); } } while
(false)
;
216 OSL_ASSERT(sMaxVersion)do { if (true && (!(sMaxVersion))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "216" ": "), "OSL_ASSERT: %s", "sMaxVersion"); } } while
(false)
;
217 OSL_ASSERT(parJavaInfo)do { if (true && (!(parJavaInfo))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "217" ": "), "OSL_ASSERT: %s", "parJavaInfo"); } } while
(false)
;
218 OSL_ASSERT(parJavaInfo)do { if (true && (!(parJavaInfo))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "218" ": "), "OSL_ASSERT: %s", "parJavaInfo"); } } while
(false)
;
219 OSL_ASSERT(nLenInfoList)do { if (true && (!(nLenInfoList))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "219" ": "), "OSL_ASSERT: %s", "nLenInfoList"); } } while
(false)
;
220 if (!sVendor || !sMinVersion || !sMaxVersion || !parJavaInfo || !nLenInfoList)
221 return JFW_PLUGIN_E_INVALID_ARG;
222
223 //nLenlist contains the number of element in arExcludeList.
224 //If no exclude list is provided then nLenList must be 0
225 OSL_ASSERT( ! (arExcludeList == NULL && nLenList > 0))do { if (true && (!(! (arExcludeList == __null &&
nLenList > 0)))) { sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN
), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "225" ": "), "OSL_ASSERT: %s", "! (arExcludeList == NULL && nLenList > 0)"
); } } while (false)
;
226 if (arExcludeList == NULL__null && nLenList > 0)
227 return JFW_PLUGIN_E_INVALID_ARG;
228
229 OUString ouVendor(sVendor);
230 OUString ouMinVer(sMinVersion);
231 OUString ouMaxVer(sMaxVersion);
232
233 OSL_ASSERT(!ouVendor.isEmpty())do { if (true && (!(!ouVendor.isEmpty()))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "233" ": "), "OSL_ASSERT: %s", "!ouVendor.isEmpty()"); }
} while (false)
;
234 if (ouVendor.isEmpty())
235 return JFW_PLUGIN_E_INVALID_ARG;
236
237 JavaInfo** arInfo = NULL__null;
238
239 //Find all JREs
240 vector<rtl::Reference<VendorBase> > vecInfos =
241 getAllJREInfos();
242 vector<rtl::Reference<VendorBase> > vecVerifiedInfos;
243
244 typedef vector<rtl::Reference<VendorBase> >::iterator it;
245 for (it i= vecInfos.begin(); i != vecInfos.end(); ++i)
246 {
247 const rtl::Reference<VendorBase>& cur = *i;
248
249 if (ouVendor.equals(cur->getVendor()) == sal_False((sal_Bool)0))
250 continue;
251
252 if (!ouMinVer.isEmpty())
253 {
254 try
255 {
256 if (cur->compareVersions(sMinVersion) == -1)
257 continue;
258 }
259 catch (MalformedVersionException&)
260 {
261 //The minVersion was not recognized as valid for this vendor.
262 JFW_ENSURE(do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), sal_detail_stream); } } } while (false)
263 0,OUSTR("[Java framework]sunjavaplugin does not know version: ")do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), sal_detail_stream); } } } while (false)
264 + ouMinVer + OUSTR(" for vendor: ") + cur->getVendor()do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), sal_detail_stream); } } } while (false)
265 + OUSTR(" .Check minimum Version.") )do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check minimum Version."
)[0]), ((sal_Int32)((sizeof (" .Check minimum Version.") / sizeof
((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "265" ": "), sal_detail_stream); } } } while (false)
;
266 return JFW_PLUGIN_E_WRONG_VERSION_FORMAT;
267 }
268 }
269
270 if (!ouMaxVer.isEmpty())
271 {
272 try
273 {
274 if (cur->compareVersions(sMaxVersion) == 1)
275 continue;
276 }
277 catch (MalformedVersionException&)
278 {
279 //The maxVersion was not recognized as valid for this vendor.
280 JFW_ENSURE(do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), sal_detail_stream); } } } while (false)
281 0,OUSTR("[Java framework]sunjavaplugin does not know version: ")do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), sal_detail_stream); } } } while (false)
282 + ouMaxVer + OUSTR(" for vendor: ") + cur->getVendor()do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), sal_detail_stream); } } } while (false)
283 + OUSTR(" .Check maximum Version.") )do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check maximum Version."
)[0]), ((sal_Int32)((sizeof (" .Check maximum Version.") / sizeof
((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding)
11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "283" ": "), sal_detail_stream); } } } while (false)
;
284 return JFW_PLUGIN_E_WRONG_VERSION_FORMAT;
285 }
286 }
287
288 bool bExclude = false;
289 for (int j = 0; j < nLenList; j++)
290 {
291 rtl::OUString sExVer(arExcludeList[j]);
292 try
293 {
294 if (cur->compareVersions(sExVer) == 0)
295 {
296 bExclude = true;
297 break;
298 }
299 }
300 catch (MalformedVersionException&)
301 {
302 //The excluded version was not recognized as valid for this vendor.
303 JFW_ENSURE(do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), sal_detail_stream); } } } while (false)
304 0,OUSTR("[Java framework]sunjavaplugin does not know version: ")do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), sal_detail_stream); } } } while (false)
305 + sExVer + OUSTR(" for vendor: ") + cur->getVendor()do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), sal_detail_stream); } } } while (false)
306 + OUSTR(" .Check excluded versions.") )do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + cur->getVendor() + ::rtl::OUString( (&(" .Check excluded versions."
)[0]), ((sal_Int32)((sizeof (" .Check excluded versions.") / sizeof
((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "306" ": "), sal_detail_stream); } } } while (false)
;
307 return JFW_PLUGIN_E_WRONG_VERSION_FORMAT;
308 }
309 }
310 if (bExclude == true)
311 continue;
312
313 vecVerifiedInfos.push_back(*i);
314 }
315 //Now vecVerifiedInfos contains all those JREs which meet the version requirements
316 //Transfer them into the array that is passed out.
317 arInfo = (JavaInfo**) rtl_allocateMemory(vecVerifiedInfos.size() * sizeof (JavaInfo*));
318 int j = 0;
319 typedef vector<rtl::Reference<VendorBase> >::const_iterator cit;
320 for (cit ii = vecVerifiedInfos.begin(); ii != vecVerifiedInfos.end(); ++ii, ++j)
321 {
322 arInfo[j] = createJavaInfo(*ii);
323 }
324 *nLenInfoList = vecVerifiedInfos.size();
325
326
327 *parJavaInfo = arInfo;
328 return JFW_PLUGIN_E_NONE;
329}
330
331extern "C"
332javaPluginError jfw_plugin_getJavaInfoByPath(
333 rtl_uString *path,
334 rtl_uString *sVendor,
335 rtl_uString *sMinVersion,
336 rtl_uString *sMaxVersion,
337 rtl_uString * *arExcludeList,
338 sal_Int32 nLenList,
339 JavaInfo ** ppInfo)
340{
341 javaPluginError errorcode = JFW_PLUGIN_E_NONE;
342
343 OSL_ASSERT(path)do { if (true && (!(path))) { sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN
), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "343" ": "), "OSL_ASSERT: %s", "path"); } } while (false
)
;
344 OSL_ASSERT(sVendor)do { if (true && (!(sVendor))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "344" ": "), "OSL_ASSERT: %s", "sVendor"); } } while (false
)
;
345 OSL_ASSERT(sMinVersion)do { if (true && (!(sMinVersion))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "345" ": "), "OSL_ASSERT: %s", "sMinVersion"); } } while
(false)
;
346 OSL_ASSERT(sMaxVersion)do { if (true && (!(sMaxVersion))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "346" ": "), "OSL_ASSERT: %s", "sMaxVersion"); } } while
(false)
;
347 if (!path || !sVendor || !sMinVersion || !sMaxVersion || !ppInfo)
348 return JFW_PLUGIN_E_INVALID_ARG;
349 OUString ouPath(path);
350 OSL_ASSERT(!ouPath.isEmpty())do { if (true && (!(!ouPath.isEmpty()))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "350" ": "), "OSL_ASSERT: %s", "!ouPath.isEmpty()"); } }
while (false)
;
351 if (ouPath.isEmpty())
352 return JFW_PLUGIN_E_INVALID_ARG;
353
354 //nLenlist contains the number of element in arExcludeList.
355 //If no exclude list is provided then nLenList must be 0
356 OSL_ASSERT( ! (arExcludeList == NULL && nLenList > 0))do { if (true && (!(! (arExcludeList == __null &&
nLenList > 0)))) { sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN
), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "356" ": "), "OSL_ASSERT: %s", "! (arExcludeList == NULL && nLenList > 0)"
); } } while (false)
;
357 if (arExcludeList == NULL__null && nLenList > 0)
358 return JFW_PLUGIN_E_INVALID_ARG;
359
360 OUString ouVendor(sVendor);
361 OUString ouMinVer(sMinVersion);
362 OUString ouMaxVer(sMaxVersion);
363
364 OSL_ASSERT(!ouVendor.isEmpty())do { if (true && (!(!ouVendor.isEmpty()))) { sal_detail_logFormat
((SAL_DETAIL_LOG_LEVEL_WARN), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "364" ": "), "OSL_ASSERT: %s", "!ouVendor.isEmpty()"); }
} while (false)
;
365 if (ouVendor.isEmpty())
366 return JFW_PLUGIN_E_INVALID_ARG;
367
368 rtl::Reference<VendorBase> aVendorInfo = getJREInfoByPath(ouPath);
369 if (aVendorInfo.is() == sal_False((sal_Bool)0))
370 return JFW_PLUGIN_E_NO_JRE;
371
372 //Check if the detected JRE matches the version requirements
373 if (ouVendor.equals(aVendorInfo->getVendor()) == sal_False((sal_Bool)0))
374 return JFW_PLUGIN_E_NO_JRE;
375
376 if (!ouMinVer.isEmpty())
377 {
378 int nRes = 0;
379 try
380 {
381 nRes = aVendorInfo->compareVersions(ouMinVer);
382 }
383 catch (MalformedVersionException&)
384 {
385 //The minVersion was not recognized as valid for this vendor.
386 JFW_ENSURE(do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), sal_detail_stream); } } } while (false)
387 0,OUSTR("[Java framework]sunjavaplugin does not know version: ")do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), sal_detail_stream); } } } while (false)
388 + ouMinVer + OUSTR(" for vendor: ") + aVendorInfo->getVendor()do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), sal_detail_stream); } } } while (false)
389 + OUSTR(" .Check minimum Version.") )do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMinVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check minimum Version.")[0]), ((sal_Int32)((sizeof (" .Check minimum Version."
) / sizeof ((" .Check minimum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "389" ": "), sal_detail_stream); } } } while (false)
;
390 return JFW_PLUGIN_E_WRONG_VERSION_FORMAT;
391 }
392 if (nRes < 0)
393 return JFW_PLUGIN_E_FAILED_VERSION;
394 }
395
396 if (!ouMaxVer.isEmpty())
397 {
398 int nRes = 0;
399 try
400 {
401 nRes = aVendorInfo->compareVersions(ouMaxVer);
402 }
403 catch (MalformedVersionException&)
404 {
405 //The maxVersion was not recognized as valid for this vendor.
406 JFW_ENSURE(do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), sal_detail_stream); } } } while (false)
407 0,OUSTR("[Java framework]sunjavaplugin does not know version: ")do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), sal_detail_stream); } } } while (false)
408 + ouMaxVer + OUSTR(" for vendor: ") + aVendorInfo->getVendor()do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), sal_detail_stream); } } } while (false)
409 + OUSTR(" .Check maximum Version.") )do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + ouMaxVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check maximum Version.")[0]), ((sal_Int32)((sizeof (" .Check maximum Version."
) / sizeof ((" .Check maximum Version.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "409" ": "), sal_detail_stream); } } } while (false)
;
410 return JFW_PLUGIN_E_WRONG_VERSION_FORMAT;
411 }
412 if (nRes > 0)
413 return JFW_PLUGIN_E_FAILED_VERSION;
414 }
415
416 for (int i = 0; i < nLenList; i++)
417 {
418 rtl::OUString sExVer(arExcludeList[i]);
419 int nRes = 0;
420 try
421 {
422 nRes = aVendorInfo->compareVersions(sExVer);
423 }
424 catch (MalformedVersionException&)
425 {
426 //The excluded version was not recognized as valid for this vendor.
427 JFW_ENSURE(do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), sal_detail_stream); } } } while (false)
428 0,OUSTR("[Java framework]sunjavaplugin does not know version: ")do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), sal_detail_stream); } } } while (false)
429 + sExVer + OUSTR(" for vendor: ") + aVendorInfo->getVendor()do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), sal_detail_stream); } } } while (false)
430 + OUSTR(" .Check excluded versions.") )do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) )) == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_WARN
), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ))); } else { ::std::ostringstream sal_detail_stream; sal_detail_stream
<< ::rtl::OUString( (&("[Java framework]sunjavaplugin does not know version: "
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin does not know version: "
) / sizeof (("[Java framework]sunjavaplugin does not know version: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sExVer + ::rtl::OUString
( (&(" for vendor: ")[0]), ((sal_Int32)((sizeof (" for vendor: "
) / sizeof ((" for vendor: ")[0]))-1)), (((rtl_TextEncoding) 11
)) ) + aVendorInfo->getVendor() + ::rtl::OUString( (&(
" .Check excluded versions.")[0]), ((sal_Int32)((sizeof (" .Check excluded versions."
) / sizeof ((" .Check excluded versions.")[0]))-1)), (((rtl_TextEncoding
) 11)) ); ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_WARN), (
"jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "430" ": "), sal_detail_stream); } } } while (false)
;
431 return JFW_PLUGIN_E_WRONG_VERSION_FORMAT;
432 }
433 if (nRes == 0)
434 return JFW_PLUGIN_E_FAILED_VERSION;
435 }
436 *ppInfo = createJavaInfo(aVendorInfo);
437
438 return errorcode;
439}
440
441#if defined(WNT)
442
443// Load msvcr71.dll using an explicit full path from where it is
444// present as bundled with the JRE. In case it is not found where we
445// think it should be, do nothing, and just let the implicit loading
446// that happens when loading the JVM take care of it.
447
448static void load_msvcr71(LPCWSTR jvm_dll)
449{
450 wchar_t msvcr71_dll[MAX_PATH];
451 wchar_t *slash;
452
453 if (wcslen(jvm_dll) > MAX_PATH - 15)
454 return;
455
456 wcscpy(msvcr71_dll, jvm_dll);
457
458 // First check if msvcr71.dll is in the same folder as jvm.dll. It
459 // normally isn't, at least up to 1.6.0_22, but who knows if it
460 // might be in the future.
461 slash = wcsrchr(msvcr71_dll, L'\\');
462
463 if (!slash)
464 {
465 // Huh, weird path to jvm.dll. Oh well.
466 return;
467 }
468
469 wcscpy(slash+1, L"msvcr71.dll");
470 if (LoadLibraryW(msvcr71_dll))
471 return;
472
473 // Then check if msvcr71.dll is in the parent folder of where
474 // jvm.dll is. That is currently (1.6.0_22) as far as I know the
475 // normal case.
476 *slash = 0;
477 slash = wcsrchr(msvcr71_dll, L'\\');
478
479 if (!slash)
480 return;
481
482 wcscpy(slash+1, L"msvcr71.dll");
483 LoadLibraryW(msvcr71_dll);
484}
485
486// Check if the jvm DLL imports msvcr71.dll, and in that case try
487// loading it explicitly. In case something goes wrong, do nothing,
488// and just let the implicit loading try to take care of it.
489static void do_msvcr71_magic(rtl_uString *jvm_dll)
490{
491 FILE *f;
492 rtl_uString* Module;
493 oslFileError nError;
494 struct stat st;
495 PIMAGE_DOS_HEADER dos_hdr;
496 IMAGE_NT_HEADERS *nt_hdr;
497 IMAGE_IMPORT_DESCRIPTOR *imports;
498
499 nError = osl_getSystemPathFromFileURL(jvm_dll, &Module);
500
501 if ( osl_File_E_None != nError )
502 rtl_uString_assign(&Module, jvm_dll);
503
504 f = _wfopen(reinterpret_cast<LPCWSTR>(Module->buffer), L"rb");
505
506 if (fstat(fileno(f), &st) == -1)
507 {
508 fclose(f);
509 return;
510 }
511
512 dos_hdr = (PIMAGE_DOS_HEADER) malloc(st.st_size);
513
514 if (fread(dos_hdr, st.st_size, 1, f) != 1 ||
515 memcmp(dos_hdr, "MZ", 2) != 0 ||
516 dos_hdr->e_lfanew < 0 ||
517 dos_hdr->e_lfanew > (LONG) (st.st_size - sizeof(IMAGE_NT_HEADERS)))
518 {
519 free(dos_hdr);
520 fclose(f);
521 return;
522 }
523
524 fclose(f);
525
526 nt_hdr = (IMAGE_NT_HEADERS *) ((char *)dos_hdr + dos_hdr->e_lfanew);
527
528 imports = (IMAGE_IMPORT_DESCRIPTOR *) ((char *) dos_hdr + nt_hdr->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
529
530 while (imports <= (IMAGE_IMPORT_DESCRIPTOR *) ((char *) dos_hdr + st.st_size - sizeof (IMAGE_IMPORT_DESCRIPTOR)) &&
531 imports->Name != 0 &&
532 imports->Name < (DWORD) st.st_size)
533 {
534 // Intentional use of sizeof("msvcr71.dll") here to include the terminating zero byte
535 if (strnicmp((char *) dos_hdr + imports->Name, "msvcr71.dll", sizeof("msvcr71.dll")) == 0)
536 {
537 load_msvcr71(reinterpret_cast<LPCWSTR>(Module->buffer));
538 break;
539 }
540 imports++;
541 }
542
543 free(dos_hdr);
544}
545
546#endif
547
548/** starts a Java Virtual Machine.
549 <p>
550 The function shall ensure, that the VM does not abort the process
551 during instantiation.
552 </p>
553 */
554extern "C"
555javaPluginError jfw_plugin_startJavaVirtualMachine(
556 const JavaInfo *pInfo,
557 const JavaVMOption* arOptions,
558 sal_Int32 cOptions,
559 JavaVM ** ppVm,
560 JNIEnv ** ppEnv)
561{
562 // unless guard is volatile the following warning occurs on gcc:
563 // warning: variable 't' might be clobbered by `longjmp' or `vfork'
564 volatile osl::MutexGuard guard(PluginMutex::get());
565 // unless errorcode is volatile the following warning occurs on gcc:
566 // warning: variable 'errorcode' might be clobbered by `longjmp' or `vfork'
567 volatile javaPluginError errorcode = JFW_PLUGIN_E_NONE;
568 if ( pInfo == NULL__null || ppVm == NULL__null || ppEnv == NULL__null)
1
Taking false branch
569 return JFW_PLUGIN_E_INVALID_ARG;
570 //Check if the Vendor (pInfo->sVendor) is supported by this plugin
571 if ( ! isVendorSupported(pInfo->sVendor))
2
Taking false branch
572 return JFW_PLUGIN_E_WRONG_VENDOR;
573 rtl::OUString sRuntimeLib = getRuntimeLib(pInfo->arVendorData);
574 JFW_TRACE2(OUSTR("[Java framework] Using Java runtime library: ")do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Using Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Using Java runtime library: "
) / sizeof (("[Java framework] Using Java runtime library: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&(".\n")[0]), ((sal_Int32)((sizeof (".\n") / sizeof
((".\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "575" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Using Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Using Java runtime library: "
) / sizeof (("[Java framework] Using Java runtime library: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&(".\n")[0]), ((sal_Int32)((sizeof (".\n") / sizeof
((".\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Using Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Using Java runtime library: "
) / sizeof (("[Java framework] Using Java runtime library: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&(".\n")[0]), ((sal_Int32)((sizeof (".\n") / sizeof
((".\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "575" ": "), sal_detail_stream); } } } while (false)
575 + sRuntimeLib + OUSTR(".\n"))do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Using Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Using Java runtime library: "
) / sizeof (("[Java framework] Using Java runtime library: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&(".\n")[0]), ((sal_Int32)((sizeof (".\n") / sizeof
((".\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "575" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Using Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Using Java runtime library: "
) / sizeof (("[Java framework] Using Java runtime library: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&(".\n")[0]), ((sal_Int32)((sizeof (".\n") / sizeof
((".\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Using Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Using Java runtime library: "
) / sizeof (("[Java framework] Using Java runtime library: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&(".\n")[0]), ((sal_Int32)((sizeof (".\n") / sizeof
((".\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "575" ": "), sal_detail_stream); } } } while (false)
;
576
577#ifndef ANDROID
578 // On linux we load jvm with RTLD_GLOBAL. This is necessary for debugging, because
579 // libjdwp.so need a symbol (fork1) from libjvm which it only gets if the jvm is loaded
580 // witd RTLD_GLOBAL. On Solaris libjdwp.so is correctly linked with libjvm.so
581 oslModule moduleRt = 0;
582#if defined(LINUX1)
583 if ((moduleRt = osl_loadModule(sRuntimeLib.pData,
3
Taking false branch
584 SAL_LOADMODULE_GLOBAL0x00100 | SAL_LOADMODULE_NOW0x00002)) == 0 )
585#else
586#if defined(WNT)
587 do_msvcr71_magic(sRuntimeLib.pData);
588#endif
589 if ((moduleRt = osl_loadModule(sRuntimeLib.pData, SAL_LOADMODULE_DEFAULT0x00000)) == 0)
590#endif
591 {
592 JFW_ENSURE(0, OUSTR("[Java framework]sunjavaplugin" SAL_DLLEXTENSIONdo { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n") / sizeof (("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]))-1)), (
((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::OUString( (
&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof (("\n")
[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_WARN), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "594" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_WARN), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "594" ": "), sal_detail_stream); } } } while (false)
593 " could not load Java runtime library: \n")do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n") / sizeof (("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]))-1)), (
((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::OUString( (
&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof (("\n")
[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_WARN), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "594" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_WARN), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "594" ": "), sal_detail_stream); } } } while (false)
594 + sRuntimeLib + OUSTR("\n"))do { if (true && (!(0))) { if (sizeof ::sal::detail::
getResult( ::sal::detail::StreamStart() << ::rtl::OUString
( (&("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]), ((sal_Int32)((sizeof ("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n") / sizeof (("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]))-1)), (
((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::OUString( (
&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof (("\n")
[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_WARN), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "594" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_WARN), ("jfw"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "594" ": "), sal_detail_stream); } } } while (false)
;
595 JFW_TRACE0(OUSTR("[Java framework]sunjavaplugin" SAL_DLLEXTENSIONdo { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level1"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "597" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level1"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "597" ": "), sal_detail_stream); } } } while (false)
596 " could not load Java runtime library: \n")do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level1"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "597" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level1"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "597" ": "), sal_detail_stream); } } } while (false)
597 + sRuntimeLib + OUSTR("\n"))do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level1"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "597" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework]sunjavaplugin"
".so" " could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework]sunjavaplugin" ".so"
" could not load Java runtime library: \n")[0]), ((sal_Int32
)((sizeof ("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
) / sizeof (("[Java framework]sunjavaplugin" ".so" " could not load Java runtime library: \n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level1"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "597" ": "), sal_detail_stream); } } } while (false)
;
598 return JFW_PLUGIN_E_VM_CREATION_FAILED;
599 }
600
601#ifdef UNX1
602 //Setting the JAVA_HOME is needed for awt
603 rtl::OUString javaHome(RTL_CONSTASCII_USTRINGPARAM("JAVA_HOME=")(&("JAVA_HOME=")[0]), ((sal_Int32)((sizeof ("JAVA_HOME=")
/ sizeof (("JAVA_HOME=")[0]))-1)), (((rtl_TextEncoding) 11))
);
604 rtl::OUString sPathLocation;
605 osl_getSystemPathFromFileURL(pInfo->sLocation, & sPathLocation.pData);
606 javaHome += sPathLocation;
607 rtl::OString osJavaHome = rtl::OUStringToOString(
608 javaHome, osl_getThreadTextEncoding());
609 putenv(strdup(osJavaHome.getStr()));
4
Memory is allocated
610#endif
611
612 typedef jint JNICALL JNI_InitArgs_Type(void *);
5
Memory is never released; potential leak
613 typedef jint JNICALL JNI_CreateVM_Type(JavaVM **, JNIEnv **, void *);
614 rtl::OUString sSymbolCreateJava(
615 RTL_CONSTASCII_USTRINGPARAM("JNI_CreateJavaVM")(&("JNI_CreateJavaVM")[0]), ((sal_Int32)((sizeof ("JNI_CreateJavaVM"
) / sizeof (("JNI_CreateJavaVM")[0]))-1)), (((rtl_TextEncoding
) 11))
);
616
617 JNI_CreateVM_Type * pCreateJavaVM = (JNI_CreateVM_Type *) osl_getFunctionSymbol(
618 moduleRt, sSymbolCreateJava.pData);
619 if (!pCreateJavaVM)
620 {
621 OSL_ASSERT(0)do { if (true && (!(0))) { sal_detail_logFormat((SAL_DETAIL_LOG_LEVEL_WARN
), ("legacy.osl"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "621" ": "), "OSL_ASSERT: %s", "0"); } } while (false)
;
622 rtl::OString sLib = rtl::OUStringToOString(
623 sRuntimeLib, osl_getThreadTextEncoding());
624 rtl::OString sSymbol = rtl::OUStringToOString(
625 sSymbolCreateJava, osl_getThreadTextEncoding());
626 fprintf(stderrstderr,"[Java framework]sunjavaplugin" SAL_DLLEXTENSION".so"
627 "Java runtime library: %s does not export symbol %s !\n",
628 sLib.getStr(), sSymbol.getStr());
629 return JFW_PLUGIN_E_VM_CREATION_FAILED;
630 }
631
632 // Valgrind typically emits many false errors when executing JIT'ed JVM
633 // code, so force the JVM into interpreted mode:
634 bool forceInterpreted = RUNNING_ON_VALGRIND0 > 0;
635
636 // Some testing with Java 1.4 showed that JavaVMOption.optionString has to
637 // be encoded with the system encoding (i.e., osl_getThreadTextEncoding):
638 JavaVMInitArgs vm_args;
639
640 sal_Int32 nOptions = 1 + cOptions + (forceInterpreted ? 1 : 0);
641 //TODO: check for overflow
642 boost::scoped_array<JavaVMOption> sarOptions(new JavaVMOption[nOptions]);
643 JavaVMOption * options = sarOptions.get();
644
645 // We set an abort handler which is called when the VM calls _exit during
646 // JNI_CreateJavaVM. This happens when the LD_LIBRARY_PATH does not contain
647 // all some directories of the Java installation. This is necessary for
648 // all versions below 1.5.1
649 int n = 0;
650 options[n].optionString= (char *) "abort";
651 options[n].extraInfo= (void* )(sal_IntPtr)abort_handler;
652 ++n;
653 rtl::OString sClassPathProp("-Djava.class.path=");
654 rtl::OString sClassPathOption;
655 for (int i = 0; i < cOptions; i++)
656 {
657#ifdef UNX1
658 // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2)
659 // in the class path in order to have applet support.
660 rtl::OString sClassPath = arOptions[i].optionString;
661 if (sClassPath.match(sClassPathProp, 0) == sal_True((sal_Bool)1))
662 {
663 char sep[] = {SAL_PATHSEPARATOR':', 0};
664 OString sAddPath = getPluginJarPath(pInfo->sVendor, pInfo->sLocation,pInfo->sVersion);
665 if (!sAddPath.isEmpty())
666 sClassPathOption = sClassPath + rtl::OString(sep) + sAddPath;
667 else
668 sClassPathOption = sClassPath;
669 options[n].optionString = (char *) sClassPathOption.getStr();
670 options[n].extraInfo = arOptions[i].extraInfo;
671 }
672 else
673 {
674#endif
675 options[n].optionString = arOptions[i].optionString;
676 options[n].extraInfo = arOptions[i].extraInfo;
677#ifdef UNX1
678 }
679#endif
680#if OSL_DEBUG_LEVEL1 >= 2
681 JFW_TRACE2("VM option: " << options[n].optionString << "\n")do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << "VM option: " << options
[n].optionString << "\n") == 1) { ::sal_detail_log( (::
SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "681" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << "VM option: " << options[n].optionString
<< "\n")); } else { ::std::ostringstream sal_detail_stream
; sal_detail_stream << "VM option: " << options[n
].optionString << "\n"; ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_INFO
), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "681" ": "), sal_detail_stream); } } } while (false)
;
682#endif
683 ++n;
684 }
685 if (forceInterpreted) {
686 options[n].optionString = const_cast<char *>("-Xint");
687 options[n].extraInfo = 0;
688 ++n;
689 }
690
691#ifdef MACOSX
692 vm_args.version= JNI_VERSION_1_40x00010004; // issue 88987
693#else
694 vm_args.version= JNI_VERSION_1_20x00010002;
695#endif
696 vm_args.options= options;
697 vm_args.nOptions= nOptions;
698 vm_args.ignoreUnrecognized= JNI_TRUE1;
699
700 /* We set a global flag which is used by the abort handler in order to
701 determine whether it is should use longjmp to get back into this function.
702 That is, the abort handler determines if it is on the same stack as this function
703 and then jumps back into this function.
704 */
705 g_bInGetJavaVM = 1;
706 jint err;
707 JavaVM * pJavaVM = 0;
708 memset( jmp_jvm_abort, 0, sizeof(jmp_jvm_abort));
709 int jmpval= setjmp( jmp_jvm_abort )_setjmp (jmp_jvm_abort);
710 /* If jmpval is not "0" then this point was reached by a longjmp in the
711 abort_handler, which was called indirectly by JNI_CreateVM.
712 */
713 if( jmpval == 0)
714 {
715 //returns negative number on failure
716 err= pCreateJavaVM(&pJavaVM, ppEnv, &vm_args);
717 g_bInGetJavaVM = 0;
718 }
719 else
720 // set err to a positive number, so as or recognize that an abort (longjmp)
721 //occurred
722 err= 1;
723
724 if(err != 0)
725 {
726 if( err < 0)
727 {
728 fprintf(stderrstderr,"[Java framework] sunjavaplugin" SAL_DLLEXTENSION".so"
729 "Can not create Java Virtual Machine\n");
730 errorcode = JFW_PLUGIN_E_VM_CREATION_FAILED;
731 }
732 else if( err > 0)
733 {
734 fprintf(stderrstderr,"[Java framework] sunjavaplugin" SAL_DLLEXTENSION".so"
735 "Can not create JavaVirtualMachine, abort handler was called.\n");
736 errorcode = JFW_PLUGIN_E_VM_CREATION_FAILED;
737 }
738 }
739 else
740 {
741 *ppVm = pJavaVM;
742 JFW_TRACE2("[Java framework] sunjavaplugin" SAL_DLLEXTENSION " has created a VM.\n")do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << "[Java framework] sunjavaplugin"
".so" " has created a VM.\n") == 1) { ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_INFO
), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "742" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << "[Java framework] sunjavaplugin" ".so"
" has created a VM.\n")); } else { ::std::ostringstream sal_detail_stream
; sal_detail_stream << "[Java framework] sunjavaplugin"
".so" " has created a VM.\n"; ::sal::detail::log( (::SAL_DETAIL_LOG_LEVEL_INFO
), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "742" ": "), sal_detail_stream); } } } while (false)
;
743 }
744#else
745 (void) arOptions;
746 (void) cOptions;
747 // On Android we always have a Java VM as we only expect this code
748 // to be run in an Android app anyway.
749 *ppVm = lo_get_javavm();
750 fprintf(stderrstderr, "lo_get_javavm returns %p", *ppVm);
751#endif
752
753 return errorcode;
754}
755
756extern "C"
757javaPluginError jfw_plugin_existJRE(const JavaInfo *pInfo, sal_Bool *exist)
758{
759 javaPluginError ret = JFW_PLUGIN_E_NONE;
760 if (!pInfo || !exist)
761 return JFW_PLUGIN_E_INVALID_ARG;
762 ::rtl::OUString sLocation(pInfo->sLocation);
763
764 if (sLocation.isEmpty())
765 return JFW_PLUGIN_E_INVALID_ARG;
766 ::osl::DirectoryItem item;
767 ::osl::File::RC rc_item = ::osl::DirectoryItem::get(sLocation, item);
768 if (::osl::File::E_None == rc_item)
769 {
770 *exist = sal_True((sal_Bool)1);
771 }
772 else if (::osl::File::E_NOENT == rc_item)
773 {
774 *exist = sal_False((sal_Bool)0);
775 }
776 else
777 {
778 ret = JFW_PLUGIN_E_ERROR;
779 }
780#ifdef MACOSX
781 //We can have the situation that the JavaVM runtime library is not
782 //contained within JAVA_HOME. Then the check for JAVA_HOME would return
783 //true although the runtime library may not be loadable.
784 if (ret == JFW_PLUGIN_E_NONE && *exist == sal_True((sal_Bool)1))
785 {
786 rtl::OUString sRuntimeLib = getRuntimeLib(pInfo->arVendorData);
787 JFW_TRACE2(OUSTR("[Java framework] Checking existence of Java runtime library.\n"))do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Checking existence of Java runtime library.\n"
)[0]), ((sal_Int32)((sizeof ("[Java framework] Checking existence of Java runtime library.\n"
) / sizeof (("[Java framework] Checking existence of Java runtime library.\n"
)[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "787" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Checking existence of Java runtime library.\n"
)[0]), ((sal_Int32)((sizeof ("[Java framework] Checking existence of Java runtime library.\n"
) / sizeof (("[Java framework] Checking existence of Java runtime library.\n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::std::ostringstream
sal_detail_stream; sal_detail_stream << ::rtl::OUString
( (&("[Java framework] Checking existence of Java runtime library.\n"
)[0]), ((sal_Int32)((sizeof ("[Java framework] Checking existence of Java runtime library.\n"
) / sizeof (("[Java framework] Checking existence of Java runtime library.\n"
)[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail::log( (
::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "787" ": "), sal_detail_stream); } } } while (false)
;
788
789 ::osl::DirectoryItem itemRt;
790 ::osl::File::RC rc_itemRt = ::osl::DirectoryItem::get(sRuntimeLib, itemRt);
791 if (::osl::File::E_None == rc_itemRt)
792 {
793 *exist = sal_True((sal_Bool)1);
794 JFW_TRACE2(OUSTR("[Java framework] Java runtime library exist: ")do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library exist: "
) / sizeof (("[Java framework] Java runtime library exist: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "795" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library exist: "
) / sizeof (("[Java framework] Java runtime library exist: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Java runtime library exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library exist: "
) / sizeof (("[Java framework] Java runtime library exist: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "795" ": "), sal_detail_stream); } } } while (false)
795 + sRuntimeLib + OUSTR("\n"))do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library exist: "
) / sizeof (("[Java framework] Java runtime library exist: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "795" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library exist: "
) / sizeof (("[Java framework] Java runtime library exist: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Java runtime library exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library exist: "
) / sizeof (("[Java framework] Java runtime library exist: ")
[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl::
OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "795" ": "), sal_detail_stream); } } } while (false)
;
796
797 }
798 else if (::osl::File::E_NOENT == rc_itemRt)
799 {
800 *exist = sal_False((sal_Bool)0);
801 JFW_TRACE2(OUSTR("[Java framework] Java runtime library does not exist: ")do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library does not exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library does not exist: "
) / sizeof (("[Java framework] Java runtime library does not exist: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "802" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library does not exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library does not exist: "
) / sizeof (("[Java framework] Java runtime library does not exist: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Java runtime library does not exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library does not exist: "
) / sizeof (("[Java framework] Java runtime library does not exist: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "802" ": "), sal_detail_stream); } } } while (false)
802 + sRuntimeLib + OUSTR("\n"))do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library does not exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library does not exist: "
) / sizeof (("[Java framework] Java runtime library does not exist: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1) { ::sal_detail_log
( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "802" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Java runtime library does not exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library does not exist: "
) / sizeof (("[Java framework] Java runtime library does not exist: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else { ::
std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Java runtime library does not exist: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Java runtime library does not exist: "
) / sizeof (("[Java framework] Java runtime library does not exist: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&("\n")[0]), ((sal_Int32)((sizeof ("\n") / sizeof
(("\n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal::detail
::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "802" ": "), sal_detail_stream); } } } while (false)
;
803 }
804 else
805 {
806 ret = JFW_PLUGIN_E_ERROR;
807 JFW_TRACE2(OUSTR("[Java framework] Error while looking for Java runtime library: ")do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Error while looking for Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Error while looking for Java runtime library: "
) / sizeof (("[Java framework] Error while looking for Java runtime library: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&(" \n")[0]), ((sal_Int32)((sizeof (" \n") /
sizeof ((" \n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1)
{ ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"
), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "808" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Error while looking for Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Error while looking for Java runtime library: "
) / sizeof (("[Java framework] Error while looking for Java runtime library: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&(" \n")[0]), ((sal_Int32)((sizeof (" \n") /
sizeof ((" \n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else
{ ::std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Error while looking for Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Error while looking for Java runtime library: "
) / sizeof (("[Java framework] Error while looking for Java runtime library: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&(" \n")[0]), ((sal_Int32)((sizeof (" \n") /
sizeof ((" \n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal
::detail::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"),
("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "808" ": "), sal_detail_stream); } } } while (false)
808 + sRuntimeLib + OUSTR(" \n"))do { if (true) { if (sizeof ::sal::detail::getResult( ::sal::
detail::StreamStart() << ::rtl::OUString( (&("[Java framework] Error while looking for Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Error while looking for Java runtime library: "
) / sizeof (("[Java framework] Error while looking for Java runtime library: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&(" \n")[0]), ((sal_Int32)((sizeof (" \n") /
sizeof ((" \n")[0]))-1)), (((rtl_TextEncoding) 11)) )) == 1)
{ ::sal_detail_log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"
), ("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "808" ": "), ::sal::detail::unwrapStream( ::sal::detail::
StreamStart() << ::rtl::OUString( (&("[Java framework] Error while looking for Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Error while looking for Java runtime library: "
) / sizeof (("[Java framework] Error while looking for Java runtime library: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&(" \n")[0]), ((sal_Int32)((sizeof (" \n") /
sizeof ((" \n")[0]))-1)), (((rtl_TextEncoding) 11)) ))); } else
{ ::std::ostringstream sal_detail_stream; sal_detail_stream <<
::rtl::OUString( (&("[Java framework] Error while looking for Java runtime library: "
)[0]), ((sal_Int32)((sizeof ("[Java framework] Error while looking for Java runtime library: "
) / sizeof (("[Java framework] Error while looking for Java runtime library: "
)[0]))-1)), (((rtl_TextEncoding) 11)) ) + sRuntimeLib + ::rtl
::OUString( (&(" \n")[0]), ((sal_Int32)((sizeof (" \n") /
sizeof ((" \n")[0]))-1)), (((rtl_TextEncoding) 11)) ); ::sal
::detail::log( (::SAL_DETAIL_LOG_LEVEL_INFO), ("jfw.level2"),
("/usr/local/src/libreoffice/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx"
":" "808" ": "), sal_detail_stream); } } } while (false)
;
809 }
810 }
811#endif
812 return ret;
813}
814
815
816/* vim:set shiftwidth=4 softtabstop=4 expandtab: */