Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 197848 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/rse/services/shells/AbstractHostShellOutputReader.java (-7 / +8 lines)
Lines 12-18 Link Here
12
 * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
12
 * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
13
 * 
13
 * 
14
 * Contributors:
14
 * Contributors:
15
 * {Name} (company) - description of contribution.
15
 * Martin Oberhuber (Wind River) - [197848] Fix shell terminated state when remote dies
16
 *******************************************************************************/
16
 *******************************************************************************/
17
17
18
package org.eclipse.rse.services.shells;
18
package org.eclipse.rse.services.shells;
Lines 132-138 Link Here
132
		}
132
		}
133
	}
133
	}
134
134
135
136
	public void fireOutputChanged(IHostShellChangeEvent event)
135
	public void fireOutputChanged(IHostShellChangeEvent event)
137
	{
136
	{
138
		for (int i = 0; i < _listeners.size(); i++)
137
		for (int i = 0; i < _listeners.size(); i++)
Lines 158-164 Link Here
158
	{
157
	{
159
		if (_keepRunning)
158
		if (_keepRunning)
160
		{
159
		{
161
162
			_waitIncrement = 0;
160
			_waitIncrement = 0;
163
			//dispose();
161
			//dispose();
164
		}
162
		}
Lines 172-186 Link Here
172
			{
170
			{
173
				Thread.sleep(_waitIncrement);
171
				Thread.sleep(_waitIncrement);
174
				Thread.yield();
172
				Thread.yield();
173
				handle();
175
			}
174
			}
176
			catch (InterruptedException e)
175
			catch (InterruptedException e)
177
			{
176
			{
178
				e.printStackTrace();
179
				finish();
177
				finish();
180
				return;
178
				_keepRunning = false;
181
			}
179
			}
182
180
		}
183
			handle();
181
		if (!isErrorReader()) {
182
			//Bug 197848: Fire empty event as notification that we are done
183
			HostShellChangeEvent event = new HostShellChangeEvent(_hostShell, this, 0, 0);
184
			fireOutputChanged(event);
184
		}
185
		}
185
	}
186
	}
186
	
187
	
(-)src/org/eclipse/rse/internal/subsystems/shells/servicesubsystem/OutputRefreshJob.java (+13 lines)
Lines 13-18 Link Here
13
 * Contributors:
13
 * Contributors:
14
 * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
14
 * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
15
 * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
15
 * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
16
 * Martin Oberhuber (Wind River) - [197848] Fix shell terminated state when remote dies
16
 ********************************************************************************/
17
 ********************************************************************************/
17
18
18
package org.eclipse.rse.internal.subsystems.shells.servicesubsystem;
19
package org.eclipse.rse.internal.subsystems.shells.servicesubsystem;
Lines 24-29 Link Here
24
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
25
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
25
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
26
import org.eclipse.rse.core.events.SystemResourceChangeEvent;
26
import org.eclipse.rse.core.model.ISystemRegistry;
27
import org.eclipse.rse.core.model.ISystemRegistry;
28
import org.eclipse.rse.core.subsystems.ISubSystem;
27
import org.eclipse.rse.internal.subsystems.shells.core.ShellStrings;
29
import org.eclipse.rse.internal.subsystems.shells.core.ShellStrings;
28
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCommandShell;
30
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCommandShell;
29
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteOutput;
31
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteOutput;
Lines 87-92 Link Here
87
					registry.fireEvent(
89
					registry.fireEvent(
88
							new SystemResourceChangeEvent(_command, ISystemResourceChangeEvents.EVENT_PROPERTY_CHANGE, _command.getCommandSubSystem()));
90
							new SystemResourceChangeEvent(_command, ISystemResourceChangeEvents.EVENT_PROPERTY_CHANGE, _command.getCommandSubSystem()));
89
				}
91
				}
92
				
93
				//Bug 197848: Artificial event for shell termination
94
				if (_outputs.length == 0 && !_command.isActive()) {
95
					ISubSystem subsys = _command.getCommandSubSystem();
96
					//update action states in commands view
97
					registry.fireEvent(
98
							new SystemResourceChangeEvent(_command, ISystemResourceChangeEvents.EVENT_COMMAND_SHELL_FINISHED, subsys));
99
					//update "connected" overlay in SystemView
100
					registry.fireEvent(
101
							new SystemResourceChangeEvent(_command, ISystemResourceChangeEvents.EVENT_REFRESH, subsys));
102
				}
90
			}
103
			}
91
			}
104
			}
92
			catch (Exception e)
105
			catch (Exception e)

Return to bug 197848