Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2012-05-21 13:06:10 +0000
committerHenrik Rentz-Reichert2012-05-21 13:06:10 +0000
commitdd62a82e5e9e7b535f28a395d603df6ce1e497ef (patch)
treebceaa4756e1d2136a10415e9f119b0e61fa8068e
parent56cb5ad149dff5d6144e8525f1b11feef55988b6 (diff)
downloadorg.eclipse.etrice-dd62a82e5e9e7b535f28a395d603df6ce1e497ef.tar.gz
org.eclipse.etrice-dd62a82e5e9e7b535f28a395d603df6ce1e497ef.tar.xz
org.eclipse.etrice-dd62a82e5e9e7b535f28a395d603df6ce1e497ef.zip
[generator] bug 380135: Ports not connected as expected for replicated Actor connected to replicated (*) Portv_0.2.0.M2
https://bugs.eclipse.org/bugs/show_bug.cgi?id=380135
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java
index ea9ce3d1c..334c27c55 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java
@@ -656,24 +656,29 @@ public class GeneratorModelBuilder {
// in a second step the actually needed number of instances for multiplicity * is filled into the list
HashSet<String> multAny = new HashSet<String>();
for (Binding bind : bindings) {
- addNeededInstance(getEndPointKey(bind.getEndpoint1()), ep2portInstances, multAny);
- addNeededInstance(getEndPointKey(bind.getEndpoint2()), ep2portInstances, multAny);
+ String ep1Key = getEndPointKey(bind.getEndpoint1());
+ String ep2Key = getEndPointKey(bind.getEndpoint2());
+ addNeededInstance(ep1Key, ep2Key, ep2portInstances, multAny);
+ addNeededInstance(ep2Key, ep1Key, ep2portInstances, multAny);
}
return ep2portInstances;
}
- private void addNeededInstance(String key, HashMap<String, ArrayList<PortInstance>> ep2portInstances, HashSet<String> multAny) {
+ private void addNeededInstance(String key, String peerKey, HashMap<String, ArrayList<PortInstance>> ep2portInstances, HashSet<String> multAny) {
ArrayList<PortInstance> ports = ep2portInstances.get(key);
+ ArrayList<PortInstance> peers = ep2portInstances.get(peerKey);
Port port = ports.get(0).getPort();
if (port.getProtocol().getCommType() == CommunicationType.DATA_DRIVEN || port.getMultiplicity() < 0) {
- if (!multAny.contains(key)) {
- // we just register
- multAny.add(key);
- } else {
- // we add another copy of this instance
- ports.add(ports.get(0));
+ for (@SuppressWarnings("unused") PortInstance peer : peers) {
+ if (!multAny.contains(key)) {
+ // we just register
+ multAny.add(key);
+ } else {
+ // we add another copy of this instance
+ ports.add(ports.get(0));
+ }
}
}
}

Back to the top