NO-JIRA: merged from trunk to this branch (jni-binding) with the commands below
$ svn merge https://svn.apache.org/repos/asf/qpid/proton/trunk .
--- Merging r1441382 through r1441388 into '.':
U proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java
--- Recording mergeinfo for merge of r1421251 through r1441388 into '.':
U .
git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/branches/jni-binding@1441390 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java b/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java
index 6815471..9048de5 100644
--- a/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java
+++ b/proton-j/proton/src/main/java/org/apache/qpid/proton/messenger/impl/MessengerImpl.java
@@ -173,7 +173,7 @@
throw new MessengerException("unable to send to address: " + m.getAddress());
}
int port = address.getPort() < 0 ? defaultPort(address.getScheme()) : address.getPort();
- Sender sender = getLink(address.getHost(), port, new SenderFinder(address.getPath()));
+ Sender sender = getLink(address.getHost(), port, new SenderFinder(cleanPath(address.getPath())));
adjustReplyTo(m);
@@ -261,7 +261,7 @@
}
else
{
- getLink(address.getHost(), port, new ReceiverFinder(address.getPath()));
+ getLink(address.getHost(), port, new ReceiverFinder(cleanPath(address.getPath())));
}
}
catch (URISyntaxException e)
@@ -717,7 +717,11 @@
public Sender create(Session session)
{
- return session.sender(_path);
+ Sender sender = session.sender(_path);
+ Target target = new Target();
+ target.setAddress(_path);
+ sender.setTarget(target);
+ return sender;
}
}
@@ -744,7 +748,11 @@
public Receiver create(Session session)
{
- return session.receiver(_path);
+ Receiver receiver = session.receiver(_path);
+ Source source = new Source();
+ source.setAddress(_path);
+ receiver.setSource(source);
+ return receiver;
}
}
@@ -905,6 +913,19 @@
}
}
+ private static String cleanPath(String path)
+ {
+ //remove leading '/'
+ if (path != null && path.length() > 0 && path.charAt(0) == '/')
+ {
+ return path.substring(1);
+ }
+ else
+ {
+ return path;
+ }
+ }
+
private static boolean matchTarget(Target target, String path)
{
if (target == null) return path.isEmpty();