2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*************************************************************************
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  DO  NOT  ALTER  OR  REMOVE  COPYRIGHT  NOTICES  OR  THIS  FILE  HEADER . 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Copyright  2008  by  Sun  Microsystems ,  Inc . 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  OpenOffice . org  -  a  multi - platform  office  productivity  suite 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  $ RCSfile :  javavm . cxx , v  $ 
							 
						 
					
						
							
								
									
										
										
										
											2008-10-01 09:04:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  $ Revision :  1.78 .14 .1  $ 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  This  file  is  part  of  OpenOffice . org . 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  OpenOffice . org  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  it  under  the  terms  of  the  GNU  Lesser  General  Public  License  version  3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  only ,  as  published  by  the  Free  Software  Foundation . 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  OpenOffice . org  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  GNU  Lesser  General  Public  License  version  3  for  more  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ( a  copy  is  included  in  the  LICENSE  file  that  accompanied  this  code ) . 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-11 10:40:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  You  should  have  received  a  copy  of  the  GNU  Lesser  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  version  3  along  with  OpenOffice . org .   If  not ,  see 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  < http : //www.openoffice.org/license.html>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  for  a  copy  of  the  LGPLv3  License . 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2006-09-16 16:31:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// MARKER(update_precomp.py): autogen include statement, do not remove
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "precompiled_stoc.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "javavm.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "interact.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "jvmargs.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2006-01-03 11:44:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "com/sun/star/beans/NamedValue.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "com/sun/star/beans/PropertyState.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/beans/PropertyValue.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/container/XContainer.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "com/sun/star/java/JavaNotFoundException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/java/InvalidJavaSettingsException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/java/RestartRequiredException.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "com/sun/star/java/JavaDisabledException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/java/JavaVMCreationFailureException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/lang/DisposedException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/lang/IllegalArgumentException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/lang/XEventListener.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/lang/XMultiComponentFactory.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/lang/XSingleComponentFactory.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/lang/WrappedTargetRuntimeException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/registry/XRegistryKey.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/registry/XSimpleRegistry.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/task/XInteractionHandler.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/uno/Exception.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/uno/Reference.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/uno/RuntimeException.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/uno/Sequence.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/uno/XComponentContext.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/uno/XCurrentContext.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "com/sun/star/uno/XInterface.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "com/sun/star/util/XMacroExpander.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "com/sun/star/container/XNameAccess.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "cppuhelper/exc_hlp.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "cppuhelper/factory.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "cppuhelper/implbase1.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "cppuhelper/implementationentry.hxx" 
  
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "jvmaccess/classpath.hxx" 
  
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "jvmaccess/unovirtualmachine.hxx" 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "jvmaccess/virtualmachine.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "osl/file.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "osl/thread.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "rtl/bootstrap.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "rtl/process.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "rtl/string.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "rtl/ustrbuf.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "rtl/ustring.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "rtl/ustring.hxx" 
  
						 
					
						
							
								
									
										
										
										
											2004-04-13 11:21:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "rtl/uri.hxx" 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "sal/types.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "uno/current_context.hxx" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "uno/environment.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "uno/lbnames.h" 
  
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "jvmfwk/framework.h" 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "jni.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  <stack> 
  
						 
					
						
							
								
									
										
										
										
											2002-02-21 11:16:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  <string.h> 
  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  <time.h> 
  
						 
					
						
							
								
									
										
										
										
											2003-03-27 11:01:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  <memory> 
  
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  <vector> 
  
						 
					
						
							
								
									
										
										
										
											2005-01-18 15:17:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "boost/scoped_array.hpp" 
  
						 
					
						
							
								
									
										
										
										
											2003-03-27 11:01:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# define OUSTR(x) rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( x )) 
  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// Properties of the javavm can be put
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// as a komma separated list in this
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// environment variable
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define PROPERTIES_ENV "OO_JAVA_PROPERTIES" 
  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# ifdef UNIX 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define INI_FILE "javarc" 
  
						 
					
						
							
								
									
										
										
										
											2001-03-09 03:35:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# ifdef MACOSX 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define DEF_JAVALIB "JavaVM.framework" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# else 
  
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# define DEF_JAVALIB "libjvm.so" 
  
						 
					
						
							
								
									
										
										
										
											2001-03-09 03:35:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# define TIMEZONE "MEZ" 
  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# else 
  
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# define INI_FILE "java.ini" 
  
						 
					
						
							
								
									
										
										
										
											2002-05-22 06:40:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# define DEF_JAVALIB "jvm.dll" 
  
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# define TIMEZONE "MET" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/* Within this implementation of the com.sun.star.java.JavaVirtualMachine
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  service  and  com . sun . star . java . theJavaVirtualMachine  singleton ,  the  method 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  com . sun . star . java . XJavaVM . getJavaVM  relies  on  the  following : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  1   The  string  " $URE_INTERNAL_JAVA_DIR/ "  is  expanded  via  the 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  com . sun . star . util . theMacroExpander  singleton  into  an  internal  ( see  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  com . sun . star . uri . ExternalUriReferenceTranslator  service ) ,  hierarchical  URI 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  reference  relative  to  which  the  URE  JAR  files  can  be  addressed . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  2   The  string  " $URE_INTERNAL_JAVA_CLASSPATH "  is  either  not  expandable  via  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  com . sun . star . util . theMacroExpander  singleton 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ( com . sun . star . lang . IllegalArgumentException ) ,  or  is  expanded  via  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  com . sun . star . util . theMacroExpander  singleton  into  a  list  of  zero  or  more 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  internal  ( see  the  com . sun . star . uri . ExternalUriReferenceTranslator  service ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  URIs ,  where  any  space  characters  ( U + 0020 )  are  ignored  ( and ,  in  particular , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  separate  adjacent  URIs ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  either  of  these  requirements  is  not  met ,  getJavaVM  raises  a 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  com . sun . star . uno . RuntimeException . 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								namespace  css  =  com : : sun : : star ;  
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								using  stoc_javavm : : JavaVirtualMachine ;  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								namespace  {  
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2003-04-23 15:12:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  NoJavaIniException :  public  css : : uno : : Exception  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  SingletonFactory :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    private  cppu : : WeakImplHelper1 <  css : : lang : : XEventListener  > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								public :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  css : : uno : : Reference <  css : : uno : : XInterface  >  getSingleton ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        css : : uno : : Reference <  css : : uno : : XComponentContext  >  const  &  rContext ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-12 09:37:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								private :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SingletonFactory ( SingletonFactory  & ) ;  // not implemented
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    void  operator  = ( SingletonFactory ) ;  // not implemented
 
							 
						 
					
						
							
								
									
										
										
										
											2001-06-22 15:21:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    inline  SingletonFactory ( )  { } 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    virtual  inline  ~ SingletonFactory ( )  { } 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    virtual  void  SAL_CALL  disposing ( css : : lang : : EventObject  const  & ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  ( css : : uno : : RuntimeException ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    static  void  dispose ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-06-22 15:21:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // TODO ok to keep these static?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  osl : : Mutex  m_aMutex ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  css : : uno : : Reference <  css : : uno : : XInterface  >  m_xSingleton ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  bool  m_bDisposed ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								css : : uno : : Reference <  css : : uno : : XInterface  >  SingletonFactory : : getSingleton (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : uno : : XComponentContext  >  const  &  rContext ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : uno : : XInterface  >  xSingleton ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : lang : : XComponent  >  xComponent ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-06-22 15:21:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        osl : : MutexGuard  aGuard ( m_aMutex ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! m_xSingleton . is ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                throw  css : : lang : : DisposedException ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            xComponent  =  css : : uno : : Reference <  css : : lang : : XComponent  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rContext ,  css : : uno : : UNO_QUERY_THROW ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xSingleton  =  static_cast <  cppu : : OWeakObject  *  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                new  JavaVirtualMachine ( rContext ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        xSingleton  =  m_xSingleton ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( xComponent . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        try 
							 
						 
					
						
							
								
									
										
										
										
											2001-06-22 15:21:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            xComponent - > addEventListener ( new  SingletonFactory ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-06-22 15:21:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        catch  ( . . . ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            dispose ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  xSingleton ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  SAL_CALL  SingletonFactory : : disposing ( css : : lang : : EventObject  const  & )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    dispose ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  SingletonFactory : : dispose ( )  
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : lang : : XComponent  >  xComponent ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        osl : : MutexGuard  aGuard ( m_aMutex ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xComponent  =  css : : uno : : Reference <  css : : lang : : XComponent  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xSingleton ,  css : : uno : : UNO_QUERY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xSingleton . clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_bDisposed  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( xComponent . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xComponent - > dispose ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								osl : : Mutex  SingletonFactory : : m_aMutex ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								css : : uno : : Reference <  css : : uno : : XInterface  >  SingletonFactory : : m_xSingleton ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  SingletonFactory : : m_bDisposed  =  false ;  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								rtl : : OUString  serviceGetImplementationName ( )  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             " com.sun.star.comp.stoc.JavaVirtualMachine " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								rtl : : OUString  serviceGetServiceName ( )  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             " com.sun.star.java.JavaVirtualMachine " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								css : : uno : : Sequence <  rtl : : OUString  >  serviceGetSupportedServiceNames ( )  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-10 16:05:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    rtl : : OUString  aServiceName  =  serviceGetServiceName ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  css : : uno : : Sequence <  rtl : : OUString  > ( & aServiceName ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								css : : uno : : Reference <  css : : uno : : XInterface  >  SAL_CALL  serviceCreateInstance (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : uno : : XComponentContext  >  const  &  rContext ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SAL_THROW ( ( css : : uno : : Exception ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Only one single instance of this service is ever constructed, and is
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // available until the component context used to create this instance is
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // disposed.  Afterwards, this function throws a DisposedException (as do
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // all relevant methods on the single service instance).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  SingletonFactory : : getSingleton ( rContext ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								cppu : : ImplementationEntry  const  aServiceImplementation [ ]  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    =  {  {  serviceCreateInstance , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          serviceGetImplementationName , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          serviceGetSupportedServiceNames , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          cppu : : createSingleComponentFactory , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          0 ,  0  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        {  0 ,  0 ,  0 ,  0 ,  0 ,  0  }  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  std : : stack <  jvmaccess : : VirtualMachine : : AttachGuard  *  >  GuardStack ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								extern  " C "  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  void  destroyAttachGuards ( void  *  pData )  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    GuardStack  *  pStack  =  static_cast <  GuardStack  *  > ( pData ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( pStack  ! =  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        while  ( ! pStack - > empty ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            delete  pStack - > top ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            pStack - > pop ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        delete  pStack ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  askForRetry ( css : : uno : : Any  const  &  rException )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : uno : : XCurrentContext  >  xContext ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        css : : uno : : getCurrentContext ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( xContext . is ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-06-22 15:21:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        css : : uno : : Reference <  css : : task : : XInteractionHandler  >  xHandler ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xContext - > getValueByName ( rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                         " java-vm.interaction-handler " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            > > =  xHandler ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( xHandler . is ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            rtl : : Reference <  stoc_javavm : : InteractionRequest  >  xRequest ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                new  stoc_javavm : : InteractionRequest ( rException ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            xHandler - > handle ( xRequest . get ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  xRequest - > retry ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// Only gets the properties if the "Proxy Server" entry in the option dialog is
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// set to manual (i.e. not to none)
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  getINetPropsFromConfig ( stoc_javavm : : JVM  *  pjvm ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            const  css : : uno : : Reference < css : : lang : : XMultiComponentFactory >  &  xSMgr , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            const  css : : uno : : Reference < css : : uno : : XComponentContext >  & xCtx  )  throw  ( css : : uno : : Exception ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : uno : : XInterface >  xConfRegistry  =  xSMgr - > createInstanceWithContext ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " com.sun.star.configuration.ConfigurationRegistry " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            xCtx  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if ( ! xConfRegistry . is ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " javavm.cxx: couldn't get ConfigurationRegistry " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XSimpleRegistry >  xConfRegistry_simple ( xConfRegistry ,  css : : uno : : UNO_QUERY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if ( ! xConfRegistry_simple . is ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " javavm.cxx: couldn't get ConfigurationRegistry " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    xConfRegistry_simple - > open ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " org.openoffice.Inet " ) ) ,  sal_True ,  sal_False ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XRegistryKey >  xRegistryRootKey  =  xConfRegistry_simple - > getRootKey ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  if ooInetProxyType is not 0 then read the settings
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XRegistryKey >  proxyEnable =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Settings/ooInetProxyType " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if (  proxyEnable . is ( )  & &  0  ! =  proxyEnable - > getLongValue ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // read ftp proxy name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        css : : uno : : Reference < css : : registry : : XRegistryKey >  ftpProxy_name  =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Settings/ooInetFTPProxyName " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if ( ftpProxy_name . is ( )  & &  ftpProxy_name - > getStringValue ( ) . getLength ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  ftpHost  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " ftp.proxyHost= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ftpHost  + =  ftpProxy_name - > getStringValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // read ftp proxy port
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            css : : uno : : Reference < css : : registry : : XRegistryKey >  ftpProxy_port  =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Settings/ooInetFTPProxyPort " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( ftpProxy_port . is ( )  & &  ftpProxy_port - > getLongValue ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString  ftpPort  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " ftp.proxyPort= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ftpPort  + =  rtl : : OUString : : valueOf ( ftpProxy_port - > getLongValue ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pjvm - > pushProp ( ftpHost ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pjvm - > pushProp ( ftpPort ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // read http proxy name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        css : : uno : : Reference < css : : registry : : XRegistryKey >  httpProxy_name  =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Settings/ooInetHTTPProxyName " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if ( httpProxy_name . is ( )  & &  httpProxy_name - > getStringValue ( ) . getLength ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  httpHost  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " http.proxyHost= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            httpHost  + =  httpProxy_name - > getStringValue ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // read http proxy port
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            css : : uno : : Reference < css : : registry : : XRegistryKey >  httpProxy_port  =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Settings/ooInetHTTPProxyPort " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( httpProxy_port . is ( )  & &  httpProxy_port - > getLongValue ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString  httpPort  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " http.proxyPort= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                httpPort  + =  rtl : : OUString : : valueOf ( httpProxy_port - > getLongValue ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                pjvm - > pushProp ( httpHost ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pjvm - > pushProp ( httpPort ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // read  nonProxyHosts
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        css : : uno : : Reference < css : : registry : : XRegistryKey >  nonProxies_name  =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Settings/ooInetNoProxy " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if ( nonProxies_name . is ( )  & &  nonProxies_name - > getStringValue ( ) . getLength ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  httpNonProxyHosts  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " http.nonProxyHosts= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  ftpNonProxyHosts =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " ftp.nonProxyHosts= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  value =  nonProxies_name - > getStringValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // replace the separator ";" by "|"
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            value =  value . replace ( ( sal_Unicode ) ' ; ' ,  ( sal_Unicode ) ' | ' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            httpNonProxyHosts  + =  value ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ftpNonProxyHosts  + =  value ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            pjvm - > pushProp ( httpNonProxyHosts ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            pjvm - > pushProp ( ftpNonProxyHosts ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-12 10:22:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // read socks settings
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*      Reference<XRegistryKey> socksProxy_name = xRegistryRootKey->openKey(OUSTR("Settings/ooInetSOCKSProxyName"));
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( socksProxy_name . is ( )  & &  httpProxy_name - > getStringValue ( ) . getLength ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OUString  socksHost  =  OUSTR ( " socksProxyHost= " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            socksHost  + =  socksProxy_name - > getStringValue ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // read http proxy port
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Reference < XRegistryKey >  socksProxy_port  =  xRegistryRootKey - > openKey ( OUSTR ( " Settings/ooInetSOCKSProxyPort " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( socksProxy_port . is ( )  & &  socksProxy_port - > getLongValue ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                OUString  socksPort  =  OUSTR ( " socksProxyPort= " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                socksPort  + =  OUString : : valueOf ( socksProxy_port - > getLongValue ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                pjvm - > pushProp ( socksHost ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pjvm - > pushProp ( socksPort ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/   }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    xConfRegistry_simple - > close ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  getDefaultLocaleFromConfig (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    stoc_javavm : : JVM  *  pjvm , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  css : : uno : : Reference < css : : lang : : XMultiComponentFactory >  &  xSMgr , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  css : : uno : : Reference < css : : uno : : XComponentContext >  & xCtx  )  throw ( css : : uno : : Exception ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : uno : : XInterface >  xConfRegistry  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xSMgr - > createInstanceWithContext ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          " com.sun.star.configuration.ConfigurationRegistry " ) ) ,  xCtx  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if ( ! xConfRegistry . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " javavm.cxx: couldn't get ConfigurationRegistry " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XSimpleRegistry >  xConfRegistry_simple ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xConfRegistry ,  css : : uno : : UNO_QUERY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if ( ! xConfRegistry_simple . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " javavm.cxx: couldn't get ConfigurationRegistry " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    xConfRegistry_simple - > open ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " org.openoffice.Setup " ) ) ,  sal_True ,  sal_False ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XRegistryKey >  xRegistryRootKey  =  xConfRegistry_simple - > getRootKey ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // read locale
 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XRegistryKey >  locale  =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " L10N/ooLocale " ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if ( locale . is ( )  & &  locale - > getStringValue ( ) . getLength ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rtl : : OUString  language ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rtl : : OUString  country ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        sal_Int32  index  =  locale - > getStringValue ( ) . indexOf ( ( sal_Unicode )  ' - ' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if ( index  > =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            language  =  locale - > getStringValue ( ) . copy ( 0 ,  index ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            country  =  locale - > getStringValue ( ) . copy ( index  +  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if ( language . getLength ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                rtl : : OUString  prop ( RTL_CONSTASCII_USTRINGPARAM ( " user.language= " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                prop  + =  language ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-11-14 13:07:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                pjvm - > pushProp ( prop ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-11-14 13:07:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if ( country . getLength ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2004-03-25 13:47:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                rtl : : OUString  prop ( RTL_CONSTASCII_USTRINGPARAM ( " user.country= " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                prop  + =  country ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pjvm - > pushProp ( prop ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2000-11-14 13:07:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    xConfRegistry_simple - > close ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  getJavaPropsFromSafetySettings (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    stoc_javavm : : JVM  *  pjvm , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  css : : uno : : Reference < css : : lang : : XMultiComponentFactory >  &  xSMgr , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  css : : uno : : Reference < css : : uno : : XComponentContext >  & xCtx )  throw ( css : : uno : : Exception ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : uno : : XInterface >  xConfRegistry  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xSMgr - > createInstanceWithContext ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              " com.sun.star.configuration.ConfigurationRegistry " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            xCtx ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if ( ! xConfRegistry . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " javavm.cxx: couldn't get ConfigurationRegistry " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XSimpleRegistry >  xConfRegistry_simple ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xConfRegistry ,  css : : uno : : UNO_QUERY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if ( ! xConfRegistry_simple . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " javavm.cxx: couldn't get ConfigurationRegistry " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    xConfRegistry_simple - > open ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " org.openoffice.Office.Java " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sal_True ,  sal_False ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference < css : : registry : : XRegistryKey >  xRegistryRootKey  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xConfRegistry_simple - > getRootKey ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( xRegistryRootKey . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        css : : uno : : Reference < css : : registry : : XRegistryKey >  key_NetAccess =  xRegistryRootKey - > openKey ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " VirtualMachine/NetAccess " ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( key_NetAccess . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            sal_Int32  val =  key_NetAccess - > getLongValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sVal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            switch (  val ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2004-12-16 10:41:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            case  0 :  sVal =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " host " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                break ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-12-16 10:41:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            case  1 :  sVal =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " unrestricted " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                break ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-12-16 10:41:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            case  3 :  sVal =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " none " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sProperty (  RTL_CONSTASCII_USTRINGPARAM ( " appletviewer.security.mode= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            sProperty =  sProperty  +  sVal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            pjvm - > pushProp ( sProperty ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        css : : uno : : Reference < css : : registry : : XRegistryKey >  key_CheckSecurity =  xRegistryRootKey - > openKey ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " VirtualMachine/Security " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if (  key_CheckSecurity . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            sal_Bool  val =  ( sal_Bool )  key_CheckSecurity - > getLongValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sProperty ( RTL_CONSTASCII_USTRINGPARAM ( " stardiv.security.disableSecurity= " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (  val ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                sProperty =  sProperty  +  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " false " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                sProperty =  sProperty  +  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " true " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            pjvm - > pushProp (  sProperty ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    xConfRegistry_simple - > close ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  void  setTimeZone ( stoc_javavm : : JVM  *  pjvm )  throw ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* A Bug in the Java function
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * *  struct  Hjava_util_Properties  *  java_lang_System_initProperties ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * *  struct  Hjava_lang_System  * this , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * *  struct  Hjava_util_Properties  * props ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * *  This  function  doesn ' t  detect  MEZ ,  MET  or  " W. Europe Standard Time " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    struct  tm  * tmData ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    time_t  clock  =  time ( NULL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    tzset ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    tmData  =  localtime ( & clock ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifdef MACOSX 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  *  p  =  tmData - > tm_zone ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# else 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  *  p  =  tzname [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! strcmp ( TIMEZONE ,  p ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        pjvm - > pushProp ( rtl : : OUString : : createFromAscii ( " user.timezone=ECT " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  initVMConfiguration (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    stoc_javavm : : JVM  *  pjvm , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  css : : uno : : Reference < css : : lang : : XMultiComponentFactory >  &  xSMgr , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  css : : uno : : Reference < css : : uno : : XComponentContext  >  & xCtx )  throw ( css : : uno : : Exception ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    stoc_javavm : : JVM  jvm ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        getINetPropsFromConfig ( & jvm ,  xSMgr ,  xCtx ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    catch ( css : : uno : : Exception  &  exception )  { 
							 
						 
					
						
							
								
									
										
										
										
											2003-04-15 16:13:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# if OSL_DEBUG_LEVEL > 1 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rtl : : OString  message  =  rtl : : OUStringToOString ( exception . Message ,  RTL_TEXTENCODING_ASCII_US ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        OSL_TRACE ( " javavm.cxx: can not get INetProps cause of >%s< " ,  message . getStr ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# else 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( void )  exception ;  // unused
 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        getDefaultLocaleFromConfig ( & jvm ,  xSMgr , xCtx ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    catch ( css : : uno : : Exception  &  exception )  { 
							 
						 
					
						
							
								
									
										
										
										
											2003-04-15 16:13:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# if OSL_DEBUG_LEVEL > 1 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rtl : : OString  message  =  rtl : : OUStringToOString ( exception . Message ,  RTL_TEXTENCODING_ASCII_US ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        OSL_TRACE ( " javavm.cxx: can not get locale cause of >%s< " ,  message . getStr ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# else 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( void )  exception ;  // unused
 
							 
						 
					
						
							
								
									
										
										
										
											2000-11-14 13:07:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2000-11-14 13:07:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-07-24 11:39:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    try 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        getJavaPropsFromSafetySettings ( & jvm ,  xSMgr ,  xCtx ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    catch ( css : : uno : : Exception  &  exception )  { 
							 
						 
					
						
							
								
									
										
										
										
											2003-04-15 16:13:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# if OSL_DEBUG_LEVEL > 1 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rtl : : OString  message  =  rtl : : OUStringToOString ( exception . Message ,  RTL_TEXTENCODING_ASCII_US ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        OSL_TRACE ( " javavm.cxx: couldn't get safety settings because of >%s< " ,  message . getStr ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# else 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( void )  exception ;  // unused
 
							 
						 
					
						
							
								
									
										
										
										
											2000-11-14 13:07:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2004-04-13 11:21:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    * pjvm =  jvm ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    setTimeZone ( pjvm ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  DetachCurrentThread  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								public :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    explicit  DetachCurrentThread ( JavaVM  *  jvm ) :  m_jvm ( jvm )  { } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ~ DetachCurrentThread ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( m_jvm - > DetachCurrentThread ( )  ! =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OSL_ASSERT ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								private :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DetachCurrentThread ( DetachCurrentThread  & ) ;  // not defined
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    void  operator  = ( DetachCurrentThread  & ) ;  // not defined
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    JavaVM  *  m_jvm ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								extern  " C "  void  SAL_CALL  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								component_getImplementationEnvironment ( sal_Char  const  * *  pEnvTypeName ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       uno_Environment  * * ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    * pEnvTypeName  =  CPPU_CURRENT_LANGUAGE_BINDING_NAME ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								extern  " C "  sal_Bool  SAL_CALL  component_writeInfo ( void  *  pServiceManager ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                 void  *  pRegistryKey ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( cppu : : component_writeInfoHelper ( pServiceManager ,  pRegistryKey , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        aServiceImplementation ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        try 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            css : : uno : : Reference <  css : : registry : : XRegistryKey  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    reinterpret_cast <  css : : registry : : XRegistryKey  *  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        pRegistryKey ) - > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                createKey ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            " com.sun.star.comp.stoc.JavaVirtualMachine " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            " /UNO/SINGLETONS/ " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            " com.sun.star.java.theJavaVirtualMachine " ) ) ) ) - > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                setStringValue ( serviceGetServiceName ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        catch  ( css : : uno : : Exception  & ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OSL_ENSURE ( false ,  " com.sun.star.uno.Exception caught " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								extern  " C "  void  *  SAL_CALL  component_getFactory ( sal_Char  const  *  pImplName ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                void  *  pServiceManager , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                void  *  pRegistryKey ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  cppu : : component_getFactoryHelper ( pImplName ,  pServiceManager , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                            pRegistryKey , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                            aServiceImplementation ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// There is no component_canUnload, as the library cannot be unloaded.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								JavaVirtualMachine : : JavaVirtualMachine (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : uno : : XComponentContext  >  const  &  rContext ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    JavaVirtualMachine_Impl ( * static_cast <  osl : : Mutex  *  > ( this ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    m_xContext ( rContext ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    m_bDisposed ( false ) , 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    m_pJavaVm ( 0 ) , 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    m_bDontCreateJvm ( false ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    m_aAttachGuards ( destroyAttachGuards )  // TODO check for validity
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  SAL_CALL  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								JavaVirtualMachine : : initialize ( css : : uno : : Sequence <  css : : uno : : Any  >  const  &  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   rArguments ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : Exception ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : lang : : DisposedException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( ) ,  static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( m_xUnoVirtualMachine . is ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              " bad call to initialize " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-01-03 11:44:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : beans : : NamedValue  val ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( rArguments . getLength ( )  = =  1  & &  ( rArguments [ 0 ]  > > =  val ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        & &  val . Name . equalsAsciiL ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            RTL_CONSTASCII_STRINGPARAM (  " UnoVirtualMachine " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OSL_ENSURE ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            sizeof  ( sal_Int64 )  > =  sizeof  ( jvmaccess : : UnoVirtualMachine  * ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " Pointer cannot be represented as sal_Int64 " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sal_Int64  nPointer  =  reinterpret_cast <  sal_Int64  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  jvmaccess : : UnoVirtualMachine  *  > ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        val . Value  > > =  nPointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xUnoVirtualMachine  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            reinterpret_cast <  jvmaccess : : UnoVirtualMachine  *  > ( nPointer ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OSL_ENSURE ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            sizeof  ( sal_Int64 )  > =  sizeof  ( jvmaccess : : VirtualMachine  * ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " Pointer cannot be represented as sal_Int64 " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sal_Int64  nPointer  =  reinterpret_cast <  sal_Int64  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  jvmaccess : : VirtualMachine  *  > ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( rArguments . getLength ( )  = =  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rArguments [ 0 ]  > > =  nPointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rtl : : Reference <  jvmaccess : : VirtualMachine  >  vm ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            reinterpret_cast <  jvmaccess : : VirtualMachine  *  > ( nPointer ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( vm . is ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                m_xUnoVirtualMachine  =  new  jvmaccess : : UnoVirtualMachine ( vm ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }  catch  ( jvmaccess : : UnoVirtualMachine : : CreationException  & )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            " jvmaccess::UnoVirtualMachine::CreationException " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! m_xUnoVirtualMachine . is ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        throw  css : : lang : : IllegalArgumentException ( 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
									
										
										
										
											2006-01-03 11:44:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    " sequence of exactly one any containing either (a) a " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "  com.sun.star.beans.NamedValue with Name " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "   \" UnoVirtualMachine \"  and Value a hyper representing a " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "  non-null pointer to a jvmaccess:UnoVirtualMachine, or (b) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "  a hyper representing a non-null pointer to a " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "  jvmaccess::VirtualMachine required " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2006-01-03 11:44:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    m_xVirtualMachine  =  m_xUnoVirtualMachine - > getVirtualMachine ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								rtl : : OUString  SAL_CALL  JavaVirtualMachine : : getImplementationName ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  serviceGetImplementationName ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2002-01-20 19:11:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sal_Bool  SAL_CALL  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								JavaVirtualMachine : : supportsService ( rtl : : OUString  const  &  rServiceName )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Sequence <  rtl : : OUString  >  aNames ( getSupportedServiceNames ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    for  ( sal_Int32  i  =  0 ;  i  <  aNames . getLength ( ) ;  + + i ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( aNames [ i ]  = =  rServiceName ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								css : : uno : : Sequence <  rtl : : OUString  >  SAL_CALL  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								JavaVirtualMachine : : getSupportedServiceNames ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  serviceGetSupportedServiceNames ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								css : : uno : : Any  SAL_CALL  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								JavaVirtualMachine : : getJavaVM ( css : : uno : : Sequence <  sal_Int8  >  const  &  rProcessId )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : lang : : DisposedException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( ) ,  static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Sequence <  sal_Int8  >  aId ( 16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rtl_getGlobalProcessId ( reinterpret_cast <  sal_uInt8  *  > ( aId . getArray ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enum  ReturnType  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        RETURN_JAVAVM ,  RETURN_VIRTUALMACHINE ,  RETURN_UNOVIRTUALMACHINE  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ReturnType  returnType  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rProcessId . getLength ( )  = =  17  & &  rProcessId [ 16 ]  = =  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ?  RETURN_VIRTUALMACHINE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        :  rProcessId . getLength ( )  = =  17  & &  rProcessId [ 16 ]  = =  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ?  RETURN_UNOVIRTUALMACHINE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        :  RETURN_JAVAVM ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : uno : : Sequence <  sal_Int8  >  aProcessId ( rProcessId ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( returnType  ! =  RETURN_JAVAVM ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        aProcessId . realloc ( 16 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( aId  ! =  aProcessId ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  css : : uno : : Any ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    while  ( ! m_xVirtualMachine . is ( ) )  // retry until successful
 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // This is the second attempt to create Java.  m_bDontCreateJvm is
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // set which means instantiating the JVM might crash.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( m_bDontCreateJvm ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //throw css::uno::RuntimeException();
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  css : : uno : : Any ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        stoc_javavm : : JVM  aJvm ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        initVMConfiguration ( & aJvm ,  m_xContext - > getServiceManager ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            m_xContext ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //Create the JavaVMOption array
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        const  std : : vector < rtl : : OUString >  &  props  =  aJvm . getProperties ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        boost : : scoped_array < JavaVMOption >  sarOptions ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            new  JavaVMOption [ props . size ( ) ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        JavaVMOption  *  arOptions  =  sarOptions . get ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //Create an array that contains the strings which are passed
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        //into the options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        boost : : scoped_array < rtl : : OString >  sarPropStrings ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             new  rtl : : OString [ props . size ( ) ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rtl : : OString  *  arPropStrings  =  sarPropStrings . get ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rtl : : OString  sJavaOption ( " - " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        typedef  std : : vector < rtl : : OUString > : : const_iterator  cit ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        int  index  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  ( cit  i  =  props . begin ( ) ;  i  ! =  props . end ( ) ;  i + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OString  sOption  =  rtl : : OUStringToOString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                * i ,  osl_getThreadTextEncoding ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( ! sOption . matchIgnoreAsciiCase ( sJavaOption ,  0 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                arPropStrings [ index ] =  rtl : : OString ( " -D " )  +  sOption ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                arPropStrings [ index ]  =  sOption ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            arOptions [ index ] . optionString  =  ( sal_Char * ) arPropStrings [ index ] . getStr ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            arOptions [ index ] . extraInfo  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            index  + + ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        JNIEnv  *  pMainThreadEnv  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        javaFrameworkError  errcode  =  JFW_E_NONE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        errcode  =  jfw_startVM ( arOptions ,  index ,  &  m_pJavaVm , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                &  pMainThreadEnv ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        bool  bStarted  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        switch  ( errcode ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  JFW_E_NONE :  bStarted  =  true ;  break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  JFW_E_NO_SELECT : 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // No Java configured. We silenty run the java configuration
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // Java.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            javaFrameworkError  errFind  =  jfw_findAndSelectJRE (  NULL  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( errFind  = =  JFW_E_NONE ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                continue ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            else  if  ( errFind  = =  JFW_E_NO_JAVA_FOUND ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                //Warning MessageBox:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //Please install a JRE and restart %PRODUCTNAME.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                css : : java : : JavaNotFoundException  exc ( 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            " JavaVirtualMachine::getJavaVM failed because " 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            "  No suitable JRE found! " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                askForRetry ( css : : uno : : makeAny ( exc ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  css : : uno : : Any ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            else 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                //An unexpected error occurred
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                      " [JavaVirtualMachine]:An unexpected error occurred " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                      "  while searching for a Java! " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  JFW_E_INVALID_SETTINGS : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //Warning MessageBox:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // The %PRODUCTNAME configuration has been changed. Under Tools
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // - Options - %PRODUCTNAME - Java, select the Java runtime environment
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // you want to have used by %PRODUCTNAME.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            css : : java : : InvalidJavaSettingsException  exc ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " JavaVirtualMachine::getJavaVM failed because " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        "  Java settings have changed! " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            askForRetry ( css : : uno : : makeAny ( exc ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  css : : uno : : Any ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  JFW_E_JAVA_DISABLED : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //QueryBox:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //%PRODUCTNAME requires a Java runtime environment (JRE) to perform
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //this task. However, use of a JRE has been disabled. Do you want to
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //enable the use of a JRE now?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            css : : java : : JavaDisabledException  exc ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " JavaVirtualMachine::getJavaVM failed because " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        "  Java is disabled! " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (  !  askForRetry ( css : : uno : : makeAny ( exc ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  css : : uno : : Any ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  JFW_E_VM_CREATION_FAILED : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-02 16:25:40 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            //If the creation failed because the JRE has been uninstalled then
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //we search another one. As long as there is a javaldx, we should
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //never come into this situation. javaldx checks alway if the JRE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //still exist.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            JavaInfo  *  pJavaInfo  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( JFW_E_NONE  = =  jfw_getSelectedJRE ( & pJavaInfo ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                sal_Bool  bExist  =  sal_False ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( JFW_E_NONE  = =  jfw_existJRE ( pJavaInfo ,  & bExist ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    if  ( bExist  = =  sal_False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        & &  !  ( pJavaInfo - > nRequirements  &  JFW_REQUIRE_NEEDRESTART ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        javaFrameworkError  errFind  =  jfw_findAndSelectJRE (  NULL  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if  ( errFind  = =  JFW_E_NONE ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jfw_freeJavaInfo ( pJavaInfo ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //Error: %PRODUCTNAME requires a Java
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //runtime environment (JRE) to perform this task. The selected JRE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //is defective. Please select another version or install a new JRE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //and select it under Tools - Options - %PRODUCTNAME - Java.
 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            css : : java : : JavaVMCreationFailureException  exc ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " JavaVirtualMachine::getJavaVM failed because " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        "  Java is defective! " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                static_cast <  cppu : : OWeakObject  *  > ( this ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            askForRetry ( css : : uno : : makeAny ( exc ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  css : : uno : : Any ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  JFW_E_RUNNING_JVM : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //This service should make sure that we do not start java twice.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OSL_ASSERT ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  JFW_E_NEED_RESTART : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //Error:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //For the selected Java runtime environment to work properly,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //%PRODUCTNAME must be restarted. Please restart %PRODUCTNAME now.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            css : : java : : RestartRequiredException  exc ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " JavaVirtualMachine::getJavaVM failed because " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " Office must be restarted before Java can be used! " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            askForRetry ( css : : uno : : makeAny ( exc ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  css : : uno : : Any ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //RuntimeException: error is somewhere in the java framework.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            //An unexpected error occurred
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  " [JavaVirtualMachine]:An unexpected error occurred " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  "  while starting Java! " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( bStarted ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                DetachCurrentThread  detach ( m_pJavaVm ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    // necessary to make debugging work; this thread will be
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    // suspended when the destructor of detach returns
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                m_xVirtualMachine  =  new  jvmaccess : : VirtualMachine ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    m_pJavaVm ,  JNI_VERSION_1_2 ,  true ,  pMainThreadEnv ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                setUpUnoVirtualMachine ( pMainThreadEnv ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // Listen for changes in the configuration (e.g. proxy settings):
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // TODO this is done too late; changes to the configuration done
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // after the above call to initVMConfiguration are lost
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            registerConfigChangesListener ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            break ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! m_xUnoVirtualMachine . is ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jvmaccess : : VirtualMachine : : AttachGuard  guard ( m_xVirtualMachine ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            setUpUnoVirtualMachine ( guard . getEnvironment ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  catch  ( jvmaccess : : VirtualMachine : : AttachGuard : : CreationException  & )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " jvmaccess::VirtualMachine::AttachGuard:: " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " CreationException occurred " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    switch  ( returnType )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    default :  // RETURN_JAVAVM
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( m_pJavaVm  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        " JavaVirtualMachine service was initialized in a way " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        "  that the requested JavaVM pointer is not available " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2005-10-05 14:00:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  css : : uno : : makeAny ( reinterpret_cast <  sal_IntPtr  > ( m_pJavaVm ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    case  RETURN_VIRTUALMACHINE : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OSL_ASSERT ( sizeof  ( sal_Int64 )  > =  sizeof  ( jvmaccess : : VirtualMachine  * ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  css : : uno : : makeAny ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            reinterpret_cast <  sal_Int64  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                m_xUnoVirtualMachine - > getVirtualMachine ( ) . get ( ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    case  RETURN_UNOVIRTUALMACHINE : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        OSL_ASSERT ( sizeof  ( sal_Int64 )  > =  sizeof  ( jvmaccess : : VirtualMachine  * ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  css : : uno : : makeAny ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            reinterpret_cast <  sal_Int64  > ( m_xUnoVirtualMachine . get ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sal_Bool  SAL_CALL  JavaVirtualMachine : : isVMStarted ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : lang : : DisposedException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( ) ,  static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  m_xUnoVirtualMachine . is ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sal_Bool  SAL_CALL  JavaVirtualMachine : : isVMEnabled ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw  css : : lang : : DisposedException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( ) ,  static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-01 08:03:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								//    stoc_javavm::JVM aJvm;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//    initVMConfiguration(&aJvm, m_xContext->getServiceManager(), m_xContext);
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//    return aJvm.isEnabled();
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //ToDo
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sal_Bool  bEnabled  =  sal_False ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( jfw_getEnabled (  &  bEnabled )  ! =  JFW_E_NONE ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  bEnabled ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sal_Bool  SAL_CALL  JavaVirtualMachine : : isThreadAttached ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : lang : : DisposedException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( ) ,  static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // TODO isThreadAttached only returns true if the thread was attached via
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // registerThread:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GuardStack  *  pStack 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        =  static_cast <  GuardStack  *  > ( m_aAttachGuards . getData ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  pStack  ! =  0  & &  ! pStack - > empty ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  SAL_CALL  JavaVirtualMachine : : registerThread ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : lang : : DisposedException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( ) ,  static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! m_xUnoVirtualMachine . is ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              " JavaVirtualMachine::registerThread: " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              "  null VirtualMachine " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GuardStack  *  pStack 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        =  static_cast <  GuardStack  *  > ( m_aAttachGuards . getData ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( pStack  = =  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        pStack  =  new  GuardStack ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_aAttachGuards . setData ( pStack ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    try 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        pStack - > push ( 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            new  jvmaccess : : VirtualMachine : : AttachGuard ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                m_xUnoVirtualMachine - > getVirtualMachine ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    catch  ( jvmaccess : : VirtualMachine : : AttachGuard : : CreationException  & ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    " JavaVirtualMachine::registerThread: jvmaccess:: " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    " VirtualMachine::AttachGuard::CreationException " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  SAL_CALL  JavaVirtualMachine : : revokeThread ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_bDisposed ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : lang : : DisposedException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( ) ,  static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! m_xUnoVirtualMachine . is ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              " JavaVirtualMachine::revokeThread: " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              "  null VirtualMachine " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GuardStack  *  pStack 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        =  static_cast <  GuardStack  *  > ( m_aAttachGuards . getData ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( pStack  = =  0  | |  pStack - > empty ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              " JavaVirtualMachine::revokeThread: " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              "  no matching registerThread " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  pStack - > top ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pStack - > pop ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  SAL_CALL  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								JavaVirtualMachine : : disposing ( css : : lang : : EventObject  const  &  rSource )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( rSource . Source  = =  m_xInetConfiguration ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xInetConfiguration . clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( rSource . Source  = =  m_xJavaConfiguration ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xJavaConfiguration . clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  SAL_CALL  JavaVirtualMachine : : elementInserted (  
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : container : : ContainerEvent  const  & ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  SAL_CALL  JavaVirtualMachine : : elementRemoved (  
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    css : : container : : ContainerEvent  const  & ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// If a user changes the setting, for example for proxy settings, then this
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// function will be called from the configuration manager.  Even if the .xml
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// file does not contain an entry yet and that entry has to be inserted, this
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// function will be called.  We call java.lang.System.setProperty for the new
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// values.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  SAL_CALL  JavaVirtualMachine : : elementReplaced (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : container : : ContainerEvent  const  &  rEvent ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  ( css : : uno : : RuntimeException ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // TODO Using the new value stored in rEvent is wrong here.  If two threads
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // receive different elementReplaced calls in quick succession, it is
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // unspecified which changes the JVM's system properties last.  A correct
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // solution must atomically (i.e., protected by a mutex) read the latest
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // value from the configuration and set it as a system property at the JVM.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rtl : : OUString  aAccessor ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rEvent . Accessor  > > =  aAccessor ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rtl : : OUString  aPropertyName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rtl : : OUString  aPropertyName2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rtl : : OUString  aPropertyValue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    bool  bSecurityChanged  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( " ooInetProxyType " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // Proxy none, manually
 
							 
						 
					
						
							
								
									
										
										
										
											2006-11-21 16:25:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        sal_Int32  value  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rEvent . Element  > > =  value ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        setINetSettingsInVM ( value  ! =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else  if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        " ooInetHTTPProxyName " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyName  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          " http.proxyHost " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rEvent . Element  > > =  aPropertyValue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else  if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        " ooInetHTTPProxyPort " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyName 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " http.proxyPort " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sal_Int32  n  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rEvent . Element  > > =  n ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyValue  =  rtl : : OUString : : valueOf ( n ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else  if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        " ooInetFTPProxyName " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyName  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          " ftp.proxyHost " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rEvent . Element  > > =  aPropertyValue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else  if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        " ooInetFTPProxyPort " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyName  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          " ftp.proxyPort " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sal_Int32  n  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rEvent . Element  > > =  n ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyValue  =  rtl : : OUString : : valueOf ( n ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else  if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        " ooInetNoProxy " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyName  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          " http.nonProxyHosts " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyName2  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           " ftp.nonProxyHosts " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rEvent . Element  > > =  aPropertyValue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyValue  =  aPropertyValue . replace ( ' ; ' ,  ' | ' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else  if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( " NetAccess " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aPropertyName  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          " appletviewer.security.mode " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-11-21 16:25:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        sal_Int32  n  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( rEvent . Element  > > =  n ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            switch  ( n ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            case  0 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                aPropertyValue  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
									
										
										
										
											2004-12-16 10:41:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                                   " host " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            case  1 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                aPropertyValue  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
									
										
										
										
											2004-12-16 10:41:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                                   " unrestricted " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                break ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-12-16 10:41:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            case  3 : 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                aPropertyValue  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
									
										
										
										
											2004-12-16 10:41:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                                   " none " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        else 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        bSecurityChanged  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else  if  ( aAccessor . equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( " Security " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 14:52:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        aPropertyName  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          " stardiv.security.disableSecurity " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-08-29 10:15:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        sal_Bool  b  =  sal_Bool ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( rEvent . Element  > > =  b ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( b ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                aPropertyValue  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                   " false " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                aPropertyValue  =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                   " true " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        bSecurityChanged  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    rtl : : Reference <  jvmaccess : : VirtualMachine  >  xVirtualMachine ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( m_xUnoVirtualMachine . is ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            xVirtualMachine  =  m_xUnoVirtualMachine - > getVirtualMachine ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( xVirtualMachine . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        try 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jvmaccess : : VirtualMachine : : AttachGuard  aAttachGuard ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                xVirtualMachine ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            JNIEnv  *  pJNIEnv  =  aAttachGuard . getEnvironment ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // call java.lang.System.setProperty
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // String setProperty( String key, String value)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jclass  jcSystem =  pJNIEnv - > FindClass ( " java/lang/System " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:FindClass java/lang/System " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jmethodID  jmSetProps =  pJNIEnv - > GetStaticMethodID (  jcSystem ,  " setProperty " , " (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetStaticMethodID java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jstring  jsPropName =  pJNIEnv - > NewString (  aPropertyName . getStr ( ) ,  aPropertyName . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // remove the property if it does not have a value ( user left the dialog field empty)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // or if the port is set to 0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            aPropertyValue =  aPropertyValue . trim ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-11 07:05:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               aPropertyValue . getLength ( )  = =  0  | | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 aPropertyName . equals (  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " ftp.proxyPort " ) ) )  | | 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                 aPropertyName . equals (  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " http.proxyPort " ) ) )  /*||
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-11 07:05:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                 aPropertyName . equals (  OUString (  RTL_CONSTASCII_USTRINGPARAM ( " socksProxyPort " ) ) ) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                )  & & 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                aPropertyValue . equals ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " 0 " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                // call java.lang.System.getProperties
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                jmethodID  jmGetProps =  pJNIEnv - > GetStaticMethodID (  jcSystem ,  " getProperties " , " ()Ljava/util/Properties; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetStaticMethodID java.lang.System.getProperties " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                jobject  joProperties =  pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmGetProps ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.getProperties " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // call java.util.Properties.remove
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                jclass  jcProperties =  pJNIEnv - > FindClass ( " java/util/Properties " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:FindClass java/util/Properties " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                jmethodID  jmRemove =  pJNIEnv - > GetMethodID (  jcProperties ,  " remove " ,  " (Ljava/lang/Object;)Ljava/lang/Object; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetMethodID java.util.Properties.remove " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsPropName ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // special calse for ftp.nonProxyHosts and http.nonProxyHosts. The office only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // has a value for two java properties
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( aPropertyName2 . getLength ( )  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    jstring  jsPropName2 =  pJNIEnv - > NewString (  aPropertyName2 . getStr ( ) ,  aPropertyName2 . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsPropName2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            else 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                // Change the Value of the property
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                jstring  jsPropValue =  pJNIEnv - > NewString (  aPropertyValue . getStr ( ) ,  aPropertyValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsPropName ,  jsPropValue ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // special calse for ftp.nonProxyHosts and http.nonProxyHosts. The office only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // has a value for two java properties
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( aPropertyName2 . getLength ( )  >  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                { 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    jstring  jsPropName2 =  pJNIEnv - > NewString (  aPropertyName2 . getStr ( ) ,  aPropertyName2 . getLength ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    jsPropValue =  pJNIEnv - > NewString (  aPropertyValue . getStr ( ) ,  aPropertyValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsPropName2 ,  jsPropValue ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // If the settings for Security and NetAccess changed then we have to notify the SandboxSecurity
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // SecurityManager
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // call System.getSecurityManager()
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( bSecurityChanged ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                jmethodID  jmGetSecur =  pJNIEnv - > GetStaticMethodID (  jcSystem , " getSecurityManager " , " ()Ljava/lang/SecurityManager; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetStaticMethodID java.lang.System.getSecurityManager " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                jobject  joSecur =  pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmGetSecur ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( joSecur  ! =  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    // Make sure the SecurityManager is our SandboxSecurity
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    // FindClass("com.sun.star.lib.sandbox.SandboxSecurityManager" only worked at the first time
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    // this code was executed. Maybe it is a security feature. However, all attempts to debug the
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    // SandboxSecurity class (maybe the VM invokes checkPackageAccess)  failed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//                  jclass jcSandboxSec= pJNIEnv->FindClass("com.sun.star.lib.sandbox.SandboxSecurity");
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//                  if(pJNIEnv->ExceptionOccurred()) throw RuntimeException(OUSTR("JNI:FindClass com.sun.star.lib.sandbox.SandboxSecurity"), Reference<XInterface>());
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//                  jboolean bIsSand= pJNIEnv->IsInstanceOf( joSecur, jcSandboxSec);
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    // The SecurityManagers class Name must be com.sun.star.lib.sandbox.SandboxSecurity
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    jclass  jcSec =  pJNIEnv - > GetObjectClass (  joSecur ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    jclass  jcClass =  pJNIEnv - > FindClass ( " java/lang/Class " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:FindClass java.lang.Class " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    jmethodID  jmName =  pJNIEnv - > GetMethodID (  jcClass , " getName " , " ()Ljava/lang/String; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetMethodID java.lang.Class.getName " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    jstring  jsClass =  ( jstring )  pJNIEnv - > CallObjectMethod (  jcSec ,  jmName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    const  jchar *  jcharName =  pJNIEnv - > GetStringChars (  jsClass ,  NULL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    rtl : : OUString  sName (  jcharName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    jboolean  bIsSandbox ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    if  ( sName  = =  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " com.sun.star.lib.sandbox.SandboxSecurity " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        bIsSandbox =  JNI_TRUE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        bIsSandbox =  JNI_FALSE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    pJNIEnv - > ReleaseStringChars (  jsClass ,  jcharName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    if  ( bIsSandbox  = =  JNI_TRUE ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        // call SandboxSecurity.reset
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        jmethodID  jmReset =  pJNIEnv - > GetMethodID (  jcSec , " reset " , " ()V " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetMethodID com.sun.star.lib.sandbox.SandboxSecurity.reset " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        pJNIEnv - > CallVoidMethod (  joSecur ,  jmReset ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallVoidMethod com.sun.star.lib.sandbox.SandboxSecurity.reset " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        catch  ( jvmaccess : : VirtualMachine : : AttachGuard : : CreationException  & ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  " jvmaccess::VirtualMachine::AttachGuard:: " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  " CreationException " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								JavaVirtualMachine : : ~ JavaVirtualMachine ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_xInetConfiguration . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // We should never get here, but just in case...
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        try 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xInetConfiguration - > removeContainerListener ( this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        catch  ( css : : uno : : Exception  & ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OSL_ENSURE ( false ,  " com.sun.star.uno.Exception caught " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( m_xJavaConfiguration . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // We should never get here, but just in case...
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        try 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xJavaConfiguration - > removeContainerListener ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        catch  ( css : : uno : : Exception  & ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            OSL_ENSURE ( false ,  " com.sun.star.uno.Exception caught " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  SAL_CALL  JavaVirtualMachine : : disposing ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : container : : XContainer  >  xContainer1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : container : : XContainer  >  xContainer2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_bDisposed  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xContainer1  =  m_xInetConfiguration ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xInetConfiguration . clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xContainer2  =  m_xJavaConfiguration ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xJavaConfiguration . clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( xContainer1 . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xContainer1 - > removeContainerListener ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( xContainer2 . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        xContainer2 - > removeContainerListener ( this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*We listen to changes in the configuration. For example, the user changes the proxy
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  settings  in  the  options  dialog  ( menu  tools ) .  Then  we  are  notified  of  this  change  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  the  java  vm  is  already  running  we  change  the  properties  ( System . lang . System . setProperties ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  through  JNI . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  To  receive  notifications  this  class  implements  XContainerListener . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  JavaVirtualMachine : : registerConfigChangesListener ( )  
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    try 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        css : : uno : : Reference <  css : : lang : : XMultiServiceFactory  >  xConfigProvider ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xContext - > getServiceManager ( ) - > createInstanceWithContext (  rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                " com.sun.star.configuration.ConfigurationProvider " ) ) ,  m_xContext ) ,  css : : uno : : UNO_QUERY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( xConfigProvider . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // We register this instance as listener to changes in org.openoffice.Inet/Settings
 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // arguments for ConfigurationAccess
 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            css : : uno : : Sequence <  css : : uno : : Any  >  aArguments ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            aArguments [ 0 ]  < < =  css : : beans : : PropertyValue ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " nodepath " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                0 , 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                css : : uno : : makeAny ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " org.openoffice.Inet/Settings " ) ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                css : : beans : : PropertyState_DIRECT_VALUE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // depth: -1 means unlimited
 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            aArguments [ 1 ]  < < =  css : : beans : : PropertyValue ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " depth " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                0 , 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                css : : uno : : makeAny (  ( sal_Int32 ) - 1 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                css : : beans : : PropertyState_DIRECT_VALUE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            m_xInetConfiguration 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                =  css : : uno : : Reference <  css : : container : : XContainer  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    xConfigProvider - > createInstanceWithArguments ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             " com.sun.star.configuration.ConfigurationAccess " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        aArguments ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    css : : uno : : UNO_QUERY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( m_xInetConfiguration . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                m_xInetConfiguration - > addContainerListener ( this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // now register as listener to changes in org.openoffice.Java/VirtualMachine
 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            css : : uno : : Sequence <  css : : uno : : Any  >  aArguments2 ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            aArguments2 [ 0 ]  < < =  css : : beans : : PropertyValue ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " nodepath " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                0 , 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                css : : uno : : makeAny ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " org.openoffice.Office.Java/VirtualMachine " ) ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                css : : beans : : PropertyState_DIRECT_VALUE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // depth: -1 means unlimited
 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            aArguments2 [ 1 ]  < < =  css : : beans : : PropertyValue ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " depth " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2001-11-19 11:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                0 , 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                css : : uno : : makeAny (  ( sal_Int32 ) - 1 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                css : : beans : : PropertyState_DIRECT_VALUE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xJavaConfiguration 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                =  css : : uno : : Reference <  css : : container : : XContainer  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    xConfigProvider - > createInstanceWithArguments ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             " com.sun.star.configuration.ConfigurationAccess " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        aArguments2 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    css : : uno : : UNO_QUERY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( m_xJavaConfiguration . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                m_xJavaConfiguration - > addContainerListener ( this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } catch (  css : : uno : : Exception  &  e ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2003-04-15 16:13:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# if OSL_DEBUG_LEVEL > 1 
  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rtl : : OString  message  =  rtl : : OUStringToOString ( e . Message ,  RTL_TEXTENCODING_ASCII_US ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        OSL_TRACE ( " javavm.cxx: could not set up listener for Configuration because of >%s< " ,  message . getStr ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# else 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( void )  e ;  // unused
 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-31 15:03:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2000-09-18 14:29:57 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// param true: all Inet setting are set as Java Properties on a live VM.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// false: the Java net properties are set to empty value.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  JavaVirtualMachine : : setINetSettingsInVM ( bool  set_reset )  
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    osl : : MutexGuard  aGuard ( * this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    try 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( m_xUnoVirtualMachine . is ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            jvmaccess : : VirtualMachine : : AttachGuard  aAttachGuard ( 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                m_xUnoVirtualMachine - > getVirtualMachine ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            JNIEnv  *  pJNIEnv  =  aAttachGuard . getEnvironment ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // The Java Properties
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sFtpProxyHost ( RTL_CONSTASCII_USTRINGPARAM ( " ftp.proxyHost " )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sFtpProxyPort ( RTL_CONSTASCII_USTRINGPARAM ( " ftp.proxyPort " )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sFtpNonProxyHosts  ( RTL_CONSTASCII_USTRINGPARAM ( " ftp.nonProxyHosts " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sHttpProxyHost ( RTL_CONSTASCII_USTRINGPARAM ( " http.proxyHost " )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sHttpProxyPort ( RTL_CONSTASCII_USTRINGPARAM ( " http.proxyPort " )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString  sHttpNonProxyHosts ( RTL_CONSTASCII_USTRINGPARAM ( " http.nonProxyHosts " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // creat Java Properties as JNI strings
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jstring  jsFtpProxyHost =  pJNIEnv - > NewString (  sFtpProxyHost . getStr ( ) ,  sFtpProxyHost . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jstring  jsFtpProxyPort =  pJNIEnv - > NewString (  sFtpProxyPort . getStr ( ) ,  sFtpProxyPort . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jstring  jsFtpNonProxyHosts =  pJNIEnv - > NewString (  sFtpNonProxyHosts . getStr ( ) ,  sFtpNonProxyHosts . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jstring  jsHttpProxyHost =  pJNIEnv - > NewString (  sHttpProxyHost . getStr ( ) ,  sHttpProxyHost . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jstring  jsHttpProxyPort =  pJNIEnv - > NewString (  sHttpProxyPort . getStr ( ) ,  sHttpProxyPort . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jstring  jsHttpNonProxyHosts =  pJNIEnv - > NewString (  sHttpNonProxyHosts . getStr ( ) ,  sHttpNonProxyHosts . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // prepare java.lang.System.setProperty
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jclass  jcSystem =  pJNIEnv - > FindClass ( " java/lang/System " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:FindClass java/lang/System " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jmethodID  jmSetProps =  pJNIEnv - > GetStaticMethodID (  jcSystem ,  " setProperty " , " (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetStaticMethodID java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // call java.lang.System.getProperties
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jmethodID  jmGetProps =  pJNIEnv - > GetStaticMethodID (  jcSystem ,  " getProperties " , " ()Ljava/util/Properties; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetStaticMethodID java.lang.System.getProperties " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jobject  joProperties =  pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmGetProps ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.getProperties " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // prepare java.util.Properties.remove
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            jclass  jcProperties =  pJNIEnv - > FindClass ( " java/util/Properties " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:FindClass java/util/Properties " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( set_reset ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // Set all network properties with the VM
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                JVM  jvm ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                getINetPropsFromConfig (  & jvm ,  m_xContext - > getServiceManager ( ) ,  m_xContext ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                const  : : std : : vector <  rtl : : OUString >  &  Props  =  jvm . getProperties ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                typedef  : : std : : vector <  rtl : : OUString  > : : const_iterator  C_IT ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                for (  C_IT  i =  Props . begin ( ) ;  i  ! =  Props . end ( ) ;  i + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    rtl : : OUString  prop =  * i ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    sal_Int32  index =  prop . indexOf (  ( sal_Unicode ) ' = ' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    rtl : : OUString  propName =  prop . copy (  0 ,  index ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    rtl : : OUString  propValue =  prop . copy (  index  +  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    if (  propName . equals (  sFtpProxyHost ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        jstring  jsVal =  pJNIEnv - > NewString (  propValue . getStr ( ) ,  propValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsFtpProxyHost ,  jsVal ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    else  if (  propName . equals (  sFtpProxyPort ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        jstring  jsVal =  pJNIEnv - > NewString (  propValue . getStr ( ) ,  propValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsFtpProxyPort ,  jsVal ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    else  if (  propName . equals (  sFtpNonProxyHosts ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        jstring  jsVal =  pJNIEnv - > NewString (  propValue . getStr ( ) ,  propValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsFtpNonProxyHosts ,  jsVal ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    else  if (  propName . equals (  sHttpProxyHost ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        jstring  jsVal =  pJNIEnv - > NewString (  propValue . getStr ( ) ,  propValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsHttpProxyHost ,  jsVal ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    else  if (  propName . equals (  sHttpProxyPort ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        jstring  jsVal =  pJNIEnv - > NewString (  propValue . getStr ( ) ,  propValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsHttpProxyPort ,  jsVal ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    else  if (  propName . equals (  sHttpNonProxyHosts ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        jstring  jsVal =  pJNIEnv - > NewString (  propValue . getStr ( ) ,  propValue . getLength ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:NewString " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        pJNIEnv - > CallStaticObjectMethod (  jcSystem ,  jmSetProps ,  jsHttpNonProxyHosts ,  jsVal ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:CallStaticObjectMethod java.lang.System.setProperty " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // call java.util.Properties.remove
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                jmethodID  jmRemove =  pJNIEnv - > GetMethodID (  jcProperties ,  " remove " ,  " (Ljava/lang/Object;)Ljava/lang/Object; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if ( pJNIEnv - > ExceptionOccurred ( ) )  throw  css : : uno : : RuntimeException ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " JNI:GetMethodID java.util.Property.remove " ) ) ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-19 23:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsFtpProxyHost ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsFtpProxyPort ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsFtpNonProxyHosts ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsHttpProxyHost ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsHttpProxyPort ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                pJNIEnv - > CallObjectMethod (  joProperties ,  jmRemove ,  jsHttpNonProxyHosts ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2000-09-28 16:34:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    catch  ( css : : uno : : RuntimeException  & ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-06-22 15:21:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        OSL_ENSURE ( false ,  " RuntimeException " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    catch  ( jvmaccess : : VirtualMachine : : AttachGuard : : CreationException  & ) 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2002-12-06 09:48:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        OSL_ENSURE ( false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   " jvmaccess::VirtualMachine::AttachGuard::CreationException " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-23 13:07:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2002-07-12 09:37:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  JavaVirtualMachine : : setUpUnoVirtualMachine ( JNIEnv  *  environment )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    css : : uno : : Reference <  css : : util : : XMacroExpander  >  exp ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! ( m_xContext - > getValueByName ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      " /singletons/com.sun.star.util.theMacroExpander " ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          > > =  exp ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        | |  ! exp . is ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    " component context fails to supply singleton " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "  com.sun.star.util.theMacroExpander of type " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "  com.sun.star.util.XMacroExpander " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xContext ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    rtl : : OUString  baseUrl ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        baseUrl  =  exp - > expandMacros ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                RTL_CONSTASCII_USTRINGPARAM ( " $URE_INTERNAL_JAVA_DIR/ " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  catch  ( css : : lang : : IllegalArgumentException  & )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    " com::sun::star::lang::IllegalArgumentException " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    rtl : : OUString  classPath ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        classPath  =  exp - > expandMacros ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                RTL_CONSTASCII_USTRINGPARAM ( " $URE_INTERNAL_JAVA_CLASSPATH " ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  catch  ( css : : lang : : IllegalArgumentException  & )  { } 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    jclass  class_URLClassLoader  =  environment - > FindClass ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        " java/net/URLClassLoader " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( class_URLClassLoader  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jmethodID  ctor_URLClassLoader  =  environment - > GetMethodID ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class_URLClassLoader ,  " <init> " ,  " ([Ljava/net/URL;)V " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ctor_URLClassLoader  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jclass  class_URL  =  environment - > FindClass ( " java/net/URL " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( class_URL  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jmethodID  ctor_URL_1  =  environment - > GetMethodID ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class_URL ,  " <init> " ,  " (Ljava/lang/String;)V " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ctor_URL_1  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    jvalue  args [ 3 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    args [ 0 ] . l  =  environment - > NewString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        static_cast <  jchar  const  *  > ( baseUrl . getStr ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        static_cast <  jsize  > ( baseUrl . getLength ( ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( args [ 0 ] . l  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jobject  base  =  environment - > NewObjectA ( class_URL ,  ctor_URL_1 ,  args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( base  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jmethodID  ctor_URL_2  =  environment - > GetMethodID ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class_URL ,  " <init> " ,  " (Ljava/net/URL;Ljava/lang/String;)V " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ctor_URL_2  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    jobjectArray  classpath  =  jvmaccess : : ClassPath : : translateToUrls ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xContext ,  environment ,  classPath ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( classpath  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    args [ 0 ] . l  =  base ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    args [ 1 ] . l  =  environment - > NewStringUTF ( " unoloader.jar " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( args [ 1 ] . l  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    args [ 0 ] . l  =  environment - > NewObjectA ( class_URL ,  ctor_URL_2 ,  args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( args [ 0 ] . l  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    args [ 0 ] . l  =  environment - > NewObjectArray ( 1 ,  class_URL ,  args [ 0 ] . l ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( args [ 0 ] . l  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jobject  cl1  =  environment - > NewObjectA ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class_URLClassLoader ,  ctor_URLClassLoader ,  args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( cl1  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jmethodID  method_loadClass  =  environment - > GetMethodID ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class_URLClassLoader ,  " loadClass " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        " (Ljava/lang/String;)Ljava/lang/Class; " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( method_loadClass  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    args [ 0 ] . l  =  environment - > NewStringUTF ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        " com.sun.star.lib.unoloader.UnoClassLoader " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( args [ 0 ] . l  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jclass  class_UnoClassLoader  =  static_cast <  jclass  > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        environment - > CallObjectMethodA ( cl1 ,  method_loadClass ,  args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( class_UnoClassLoader  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jmethodID  ctor_UnoClassLoader  =  environment - > GetMethodID ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class_UnoClassLoader ,  " <init> " , 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        " (Ljava/net/URL;[Ljava/net/URL;Ljava/lang/ClassLoader;)V " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ctor_UnoClassLoader  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    args [ 0 ] . l  =  base ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 09:55:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    args [ 1 ] . l  =  classpath ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    args [ 2 ] . l  =  cl1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-06-17 09:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    jobject  cl2  =  environment - > NewObjectA ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class_UnoClassLoader ,  ctor_UnoClassLoader ,  args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( cl2  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        handleJniException ( environment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m_xUnoVirtualMachine  =  new  jvmaccess : : UnoVirtualMachine ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m_xVirtualMachine ,  cl2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  catch  ( jvmaccess : : UnoVirtualMachine : : CreationException  & )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                RTL_CONSTASCII_USTRINGPARAM ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    " jvmaccess::UnoVirtualMachine::CreationException " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  JavaVirtualMachine : : handleJniException ( JNIEnv  *  environment )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    environment - > ExceptionClear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  css : : uno : : RuntimeException ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        rtl : : OUString ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            RTL_CONSTASCII_USTRINGPARAM ( " JNI exception occurred " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        static_cast <  cppu : : OWeakObject  *  > ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}