View | Details | Raw Unified | Return to issue 119950
Collapse All | Expand All

(-)desktop/inc/app.hxx (+1 lines)
Lines 74-79 Link Here
74
            BE_LANGUAGE_MISSING,
74
            BE_LANGUAGE_MISSING,
75
            BE_USERINSTALL_NOTENOUGHDISKSPACE,
75
            BE_USERINSTALL_NOTENOUGHDISKSPACE,
76
            BE_USERINSTALL_NOWRITEACCESS,
76
            BE_USERINSTALL_NOWRITEACCESS,
77
            BE_MUTLISESSION_NOT_SUPPROTED,
77
            BE_OFFICECONFIG_BROKEN
78
            BE_OFFICECONFIG_BROKEN
78
		};
79
		};
79
        enum BootstrapStatus
80
        enum BootstrapStatus
(-)desktop/source/app/app.cxx (-1 / +12 lines)
Lines 995-1001 Link Here
995
        if ( aStatus == OfficeIPCThread::IPC_STATUS_BOOTSTRAP_ERROR )
995
        if ( aStatus == OfficeIPCThread::IPC_STATUS_BOOTSTRAP_ERROR )
996
        {
996
        {
997
            SetBootstrapError( BE_PATHINFO_MISSING );
997
            SetBootstrapError( BE_PATHINFO_MISSING );
998
			
998
        }
999
        }
1000
        else if ( aStatus == OfficeIPCThread::IPC_STATUS_MULTI_TS_ERROR )
1001
        {
1002
            SetBootstrapError( BE_MUTLISESSION_NOT_SUPPROTED );
1003
        }
999
        else if ( aStatus == OfficeIPCThread::IPC_STATUS_2ND_OFFICE )
1004
        else if ( aStatus == OfficeIPCThread::IPC_STATUS_2ND_OFFICE )
1000
        {
1005
        {
1001
            // 2nd office startup should terminate after sending cmdlineargs through pipe
1006
            // 2nd office startup should terminate after sending cmdlineargs through pipe
Lines 1241-1247 Link Here
1241
1246
1242
void Desktop::HandleBootstrapErrors( BootstrapError aBootstrapError )
1247
void Desktop::HandleBootstrapErrors( BootstrapError aBootstrapError )
1243
{
1248
{
1244
    if ( aBootstrapError == BE_PATHINFO_MISSING )
1249
	if ( aBootstrapError == BE_MUTLISESSION_NOT_SUPPROTED ) {
1250
		OUString        aMessage;
1251
		aMessage = GetMsgString( STR_BOOTSTRAP_ERR_MULTISESSION,
1252
                        OUString( RTL_CONSTASCII_USTRINGPARAM( "Another instance is running in other terminal session. Please close it first." )) );
1253
        FatalError(aMessage);
1254
1255
	} else if ( aBootstrapError == BE_PATHINFO_MISSING )
1245
    {
1256
    {
1246
        OUString                    aErrorMsg;
1257
        OUString                    aErrorMsg;
1247
        OUString                    aBuffer;
1258
        OUString                    aBuffer;
(-)desktop/source/app/desktop.hrc (+1 lines)
Lines 67-72 Link Here
67
#define STR_BOOTSTRAP_ERR_NO_CFG_SERVICE	(RID_DESKTOP_STRING_START+121)
67
#define STR_BOOTSTRAP_ERR_NO_CFG_SERVICE	(RID_DESKTOP_STRING_START+121)
68
#define STR_BOOTSTRAP_ERR_CFG_DATAACCESS	(RID_DESKTOP_STRING_START+122)
68
#define STR_BOOTSTRAP_ERR_CFG_DATAACCESS	(RID_DESKTOP_STRING_START+122)
69
#define STR_BOOTSTRAP_ERR_NO_PATHSET_SERVICE (RID_DESKTOP_STRING_START+123)
69
#define STR_BOOTSTRAP_ERR_NO_PATHSET_SERVICE (RID_DESKTOP_STRING_START+123)
70
#define STR_BOOTSTRAP_ERR_MULTISESSION       (RID_DESKTOP_STRING_START+124)
70
71
71
#define STR_ASK_START_SETUP_MANUALLY		(RID_DESKTOP_STRING_START+152)
72
#define STR_ASK_START_SETUP_MANUALLY		(RID_DESKTOP_STRING_START+152)
72
73
(-)desktop/source/app/desktop.src (+5 lines)
Lines 94-99 Link Here
94
	Text [ en-US ] = "The configuration service is not available.";
94
	Text [ en-US ] = "The configuration service is not available.";
95
};
95
};
96
96
97
String STR_BOOTSTRAP_ERR_MULTISESSION
98
{
99
	Text [ en-US ] = "Another %PRODUCTNAME is running for same user in another terminal session. Please close previous %PRODUCTNAME running first";
100
};
101
97
String STR_ASK_START_SETUP_MANUALLY
102
String STR_ASK_START_SETUP_MANUALLY
98
{
103
{
99
	Text [ en-US ] = "Start the setup application to repair the installation from the CD or the folder containing the installation packages.";
104
	Text [ en-US ] = "Start the setup application to repair the installation from the CD or the folder containing the installation packages.";
(-)desktop/source/app/officeipcthread.cxx (-6 / +14 lines)
Lines 497-512 Link Here
497
	{
497
	{
498
		OSecurity &rSecurity = Security::get();
498
		OSecurity &rSecurity = Security::get();
499
		// Try to create pipe
499
		// Try to create pipe
500
		if ( pThread->maPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Create, rSecurity ))
500
		if( pThread->maPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Open, rSecurity )) // Creation not successfull, now we try to connect
501
		{
501
		{
502
			//Test if launched in another terminal session for same user.
503
			vos::OPipe	maSessionPipe;
504
			if ( maSessionPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Create, rSecurity )) {
505
				//Can create pipe with same name. It is in a session user.
506
				return IPC_STATUS_MULTI_TS_ERROR;
507
			} else {
508
				// Pipe connected to first office
509
				nPipeMode = PIPEMODE_CONNECTED;
510
			}
511
512
		}
513
		else if ( pThread->maPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Create, rSecurity ))
514
		{
502
			// Pipe created
515
			// Pipe created
503
			nPipeMode = PIPEMODE_CREATED;
516
			nPipeMode = PIPEMODE_CREATED;
504
		}
517
		}
505
		else if( pThread->maPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Open, rSecurity )) // Creation not successfull, now we try to connect
506
		{
507
			// Pipe connected to first office
508
			nPipeMode = PIPEMODE_CONNECTED;
509
		}
510
		else
518
		else
511
		{
519
		{
512
			OPipe::TPipeError eReason = pThread->maPipe.getError();
520
			OPipe::TPipeError eReason = pThread->maPipe.getError();
(-)desktop/source/app/officeipcthread.hxx (-1 / +2 lines)
Lines 107-113 Link Here
107
	{
107
	{
108
		IPC_STATUS_OK,
108
		IPC_STATUS_OK,
109
		IPC_STATUS_2ND_OFFICE,
109
		IPC_STATUS_2ND_OFFICE,
110
		IPC_STATUS_BOOTSTRAP_ERROR
110
		IPC_STATUS_BOOTSTRAP_ERROR,
111
		IPC_STATUS_MULTI_TS_ERROR
111
	};
112
	};
112
113
113
	virtual ~OfficeIPCThread();
114
	virtual ~OfficeIPCThread();

Return to issue 119950