Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 55727 Details for
Bug 168138
Test launch race condition often delays test launch by 15 seconds
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
Patch file for HEAD with fixes
168138.patch (text/plain), 5.84 KB, created by
Joe Toomey
on 2006-12-14 18:10:10 EST
(
hide
)
Description:
Patch file for HEAD with fixes
Filename:
MIME Type:
Creator:
Joe Toomey
Created:
2006-12-14 18:10:10 EST
Size:
5.84 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.hyades.execution >Index: src-local/org/eclipse/hyades/internal/execution/local/control/ProcessImpl.java >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.execution/src-local/org/eclipse/hyades/internal/execution/local/control/ProcessImpl.java,v >retrieving revision 1.14 >diff -u -r1.14 ProcessImpl.java >--- src-local/org/eclipse/hyades/internal/execution/local/control/ProcessImpl.java 30 Oct 2006 18:25:55 -0000 1.14 >+++ src-local/org/eclipse/hyades/internal/execution/local/control/ProcessImpl.java 14 Dec 2006 23:02:48 -0000 >@@ -823,10 +823,10 @@ > // good enough for now) > try { > for (int i = 0, j = timeout / 2000; i < j; i++) { >- this.getNode().listProcesses(); // bugzilla_92619 (without >+ this.getNode().fastListProcesses(); // bugzilla_92619 (without > // this, agents are never > // refreshed) >- for (Enumeration agents = this.getAgentsByType(agentType); agents >+ for (Enumeration agents = this.listAgents(); agents > .hasMoreElements();) { > Agent agent = (Agent) agents.nextElement(); > if (agent.getName().indexOf(agentName) != -1) { // checks >Index: src-local/org/eclipse/hyades/internal/execution/local/control/Node.java >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.execution/src-local/org/eclipse/hyades/internal/execution/local/control/Node.java,v >retrieving revision 1.3 >diff -u -r1.3 Node.java >--- src-local/org/eclipse/hyades/internal/execution/local/control/Node.java 27 Sep 2005 20:31:57 -0000 1.3 >+++ src-local/org/eclipse/hyades/internal/execution/local/control/Node.java 14 Dec 2006 23:02:48 -0000 >@@ -45,9 +45,23 @@ > > /** > * Enumerate all the active processes on this node. >+ * >+ * This method has side effects of storing the process list within >+ * the node, populating the agents within each process in that list >+ * and retrieving the details of each agent in each process. > */ > Enumeration listProcesses() throws NotConnectedException; > >+ /** >+ * Enumerate all the active processes on this node. >+ * >+ * This method has side effects of storing the process list within >+ * the node and populating the agents within each process in that list >+ * Unlike the listProcesses() method, it does *not* retrieve the details >+ * for each agent. >+ */ >+ Enumeration fastListProcesses() throws NotConnectedException; >+ > /** > * Enumerate all the properties on this node. > */ >Index: src-local/org/eclipse/hyades/internal/execution/local/control/NodeImpl.java >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.execution/src-local/org/eclipse/hyades/internal/execution/local/control/NodeImpl.java,v >retrieving revision 1.19 >diff -u -r1.19 NodeImpl.java >--- src-local/org/eclipse/hyades/internal/execution/local/control/NodeImpl.java 20 Mar 2006 14:07:51 -0000 1.19 >+++ src-local/org/eclipse/hyades/internal/execution/local/control/NodeImpl.java 14 Dec 2006 23:02:48 -0000 >@@ -146,6 +146,10 @@ > > /** > * List the processes running in the node >+ * >+ * This method has side effects of setting the _processList member >+ * variable, populating the agents within each process in _processList >+ * and retrieving the details of each agent in each process. > */ > public Enumeration listProcesses() throws NotConnectedException { > ControlMessage message; >@@ -458,7 +462,7 @@ > // Change this from a polling model into a notify model > try { > for (int i = 0, j = timeout / 2000; i < j; i++) { >- Enumeration processes = this.listProcesses(); >+ Enumeration processes = this.fastListProcesses(); > if (processes != null) { > for (; processes.hasMoreElements();) { > Process process = (Process) processes.nextElement(); >@@ -476,6 +480,63 @@ > return null; // no process was found in the allowed time > } > >+ /** >+ * List the processes running in the node >+ * >+ * This method has side effects of setting the _processList member >+ * variable and populating the agents within each process in _processList >+ * Unlike the listProcesses() method, it does *not* retrieve the details >+ * for each agent. >+ */ >+ public Enumeration fastListProcesses() throws NotConnectedException { >+ ControlMessage message; >+ >+ if (_connection == null) { >+ throw new NotConnectedException(); >+ } else { >+ _connection.addConnectionListener(_connectionListener); // to avoid >+ // deadlock >+ >+ // Query the process list >+ message = new ControlMessage(); >+ QueryProcessListCommand qplCommand = new QueryProcessListCommand(); >+ message.appendCommand(qplCommand); >+ synchronized (_processListLock) { >+ try { >+ _connection.sendMessage(message, _commandHandler); >+ _processListLock.wait(DEFAULT_TIMEOUT); >+ } catch (Exception e) { >+ e.printStackTrace(); >+ return null; >+ } >+ } >+ >+ // Populate the process with all agents >+ Enumeration ePIDs = _processList.keys(); >+ while (ePIDs.hasMoreElements()) { >+ Long pid = (Long) (ePIDs.nextElement()); >+ >+ // Query the agent list >+ message = new ControlMessage(); >+ QueryAgentListCommand qalCommand = new QueryAgentListCommand(); >+ qalCommand.setProcessId(pid.longValue()); >+ message.appendCommand(qalCommand); >+ synchronized (_agentListLock) { >+ try { >+ _connection.sendMessage(message, _commandHandler); >+ _agentListLock.wait(DEFAULT_TIMEOUT); >+ } catch (Exception e) { >+ e.printStackTrace(); >+ return null; >+ } >+ } >+ } >+ >+ } >+ >+ return _processList.elements(); >+ } >+ > public void removeProcess(long pid) { > if (_processList.containsKey(new Long(pid))) { > _processList.remove(new Long(pid));
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 168138
: 55727