diff --git a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx index 6fa931d44eb7..b1cd72231d64 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx @@ -19,6 +19,9 @@ #include "osl/file.hxx" +#include "osl/diagnose.h" +#include "osl/module.hxx" +#include "osl/thread.hxx" #include "vendorbase.hxx" #include "util.hxx" @@ -158,6 +161,25 @@ bool VendorBase::initialize(vector > props) if (!bRt) return false; +#if defined(WNT) + oslModule moduleRt = 0; + rtl::OUString sRuntimeLib; + if( File::getSystemPathFromFileURL( m_sRuntimeLibrary, sRuntimeLib ) == File::E_None ) + { + if ( ( moduleRt = osl_loadModule( sRuntimeLib.pData, SAL_LOADMODULE_DEFAULT ) ) == 0 ) + { + OSL_TRACE( "jfw_plugin::VendorBase::initialize - cannot load library %s", + rtl::OUStringToOString( sRuntimeLib, osl_getThreadTextEncoding() ).getStr() ); + return false; + } + else + { + // do not leave the module loaded! + osl_unloadModule( moduleRt ); + } + } +#endif + // init m_sLD_LIBRARY_PATH OSL_ASSERT(!m_sHome.isEmpty()); size = 0;