You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2015/07/10 00:12:19 UTC

[39/50] qpid-proton git commit: PROTON-937: LinkImpl.localOpen() does not initialize source and target

PROTON-937: LinkImpl.localOpen() does not initialize source and target


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/f6d74a47
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/f6d74a47
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/f6d74a47

Branch: refs/heads/cjansen-cpp-client
Commit: f6d74a47d1f3f4ee3f4f3a444e239a209276f928
Parents: d4d22ee
Author: Bozo Dragojevic <bo...@digiverse.si>
Authored: Tue Jul 7 21:32:58 2015 +0200
Committer: Bozo Dragojevic <bo...@digiverse.si>
Committed: Tue Jul 7 21:49:44 2015 +0200

----------------------------------------------------------------------
 .../qpid/proton/amqp/messaging/Source.java       | 19 +++++++++++++++++++
 .../qpid/proton/amqp/messaging/Target.java       | 12 ++++++++++++
 .../qpid/proton/amqp/messaging/Terminus.java     | 17 +++++++++++++++++
 .../proton/amqp/transaction/Coordinator.java     |  5 +++++
 .../qpid/proton/amqp/transport/Source.java       |  2 ++
 .../qpid/proton/amqp/transport/Target.java       |  2 ++
 .../apache/qpid/proton/engine/impl/LinkImpl.java |  4 ++++
 7 files changed, 61 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f6d74a47/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Source.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Source.java b/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Source.java
index 5efc15a..e6fffef 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Source.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Source.java
@@ -21,7 +21,9 @@
 package org.apache.qpid.proton.amqp.messaging;
 
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Map;
+
 import org.apache.qpid.proton.amqp.Symbol;
 
 public final class Source extends Terminus
@@ -32,6 +34,18 @@ public final class Source extends Terminus
     private Outcome _defaultOutcome;
     private Symbol[] _outcomes;
 
+    private Source(Source other) {
+        super(other);
+        _distributionMode = other._distributionMode;
+        if (other._filter != null)
+            _filter = new HashMap(other._filter);
+        _defaultOutcome = other._defaultOutcome;
+        if (other._outcomes != null)
+            _outcomes = other._outcomes.clone();
+    }
+    
+    public Source() {}
+
     public Symbol getDistributionMode()
     {
         return _distributionMode;
@@ -90,5 +104,10 @@ public final class Source extends Terminus
                ", capabilities=" + (getCapabilities() == null ? null : Arrays.asList(getCapabilities())) +
                '}';
     }
+
+    @Override
+    public org.apache.qpid.proton.amqp.transport.Source copy() {
+        return new Source(this);
+    }
 }
   
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f6d74a47/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Target.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Target.java b/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Target.java
index 1749d40..38678d1 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Target.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Target.java
@@ -28,6 +28,13 @@ import java.util.Arrays;
 public final class Target extends Terminus
       implements org.apache.qpid.proton.amqp.transport.Target
 {
+    private Target(Target other) {
+        super(other);
+    }
+
+    public Target() {
+    }
+
     @Override
     public String toString()
     {
@@ -41,5 +48,10 @@ public final class Target extends Terminus
                ", capabilities=" + (getCapabilities() == null ? null : Arrays.asList(getCapabilities())) +
                '}';
     }
+
+    @Override
+    public org.apache.qpid.proton.amqp.transport.Target copy() {
+        return new Target(this);
+    }
 }
   
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f6d74a47/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Terminus.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Terminus.java b/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Terminus.java
index be57957..ac28b32 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Terminus.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/amqp/messaging/Terminus.java
@@ -20,7 +20,9 @@
  */
 package org.apache.qpid.proton.amqp.messaging;
 
+import java.util.HashMap;
 import java.util.Map;
+
 import org.apache.qpid.proton.amqp.Symbol;
 import org.apache.qpid.proton.amqp.UnsignedInteger;
 
@@ -37,6 +39,21 @@ public abstract class Terminus
     Terminus()
     {
     }
+    
+    protected Terminus(Terminus other) {
+        _address = other._address;
+        _durable = other._durable;
+        _expiryPolicy = other._expiryPolicy;
+        _timeout = other._timeout;
+        _dynamic = other._dynamic;
+        if (other._dynamicNodeProperties != null) {
+            // TODO: Do we need to copy or can we make a simple reference?
+            _dynamicNodeProperties = new HashMap(other._dynamicNodeProperties); // FIXME
+        }
+        if (other._capabilities != null) {
+            _capabilities = other._capabilities.clone(); // FIXME?
+        }
+    }
 
     public final String getAddress()
     {

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f6d74a47/proton-j/src/main/java/org/apache/qpid/proton/amqp/transaction/Coordinator.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/amqp/transaction/Coordinator.java b/proton-j/src/main/java/org/apache/qpid/proton/amqp/transaction/Coordinator.java
index 2af968d..7ff000a 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/amqp/transaction/Coordinator.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/amqp/transaction/Coordinator.java
@@ -55,5 +55,10 @@ public final class Coordinator
     {
         return null;
     }
+
+    @Override
+    public Target copy() {
+        return null;
+    }
 }
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f6d74a47/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Source.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Source.java b/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Source.java
index 93d71f7..2d6f3b2 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Source.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Source.java
@@ -23,4 +23,6 @@ package org.apache.qpid.proton.amqp.transport;
 public interface Source
 {
     public String getAddress();
+
+    public Source copy();
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f6d74a47/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Target.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Target.java b/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Target.java
index 8b81f37..c972c02 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Target.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/amqp/transport/Target.java
@@ -24,4 +24,6 @@ package org.apache.qpid.proton.amqp.transport;
 public interface Target
 {
     public String getAddress();
+
+    public Target copy();
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f6d74a47/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
index 6b63b9a..ca98096 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
@@ -418,6 +418,10 @@ public abstract class LinkImpl extends EndpointImpl implements Link
     @Override
     void localOpen()
     {
+        if (_source == null)
+            _source = _remoteSource.copy();
+        if (_target == null)
+            _target = _remoteTarget.copy();
         getConnectionImpl().put(Event.Type.LINK_LOCAL_OPEN, this);
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org