diff options
author | Benoit Foucher <benoit@zeroc.com> | 2013-01-16 13:03:45 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2013-01-16 13:03:45 +0100 |
commit | 3a7e1fda55a94937c8b9504b116a8b9bc29239ca (patch) | |
tree | c93d574855c871d95b5806bdc817a3ba5c58541b /java/src | |
parent | Fixed ICE-5131 - parsing of -p <version> for proxies, tweaked UDP endpoint de... (diff) | |
download | ice-3a7e1fda55a94937c8b9504b116a8b9bc29239ca.tar.bz2 ice-3a7e1fda55a94937c8b9504b116a8b9bc29239ca.tar.xz ice-3a7e1fda55a94937c8b9504b116a8b9bc29239ca.zip |
Fixed ICE-5143 and ICE-5140: stringified proxy and default raw encoding for opaque endpoints
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/IceInternal/EndpointFactoryManager.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/OpaqueEndpointI.java | 4 | ||||
-rw-r--r-- | java/src/IceInternal/Reference.java | 18 |
3 files changed, 16 insertions, 8 deletions
diff --git a/java/src/IceInternal/EndpointFactoryManager.java b/java/src/IceInternal/EndpointFactoryManager.java index b3c666c4c6a..a0bbfbc95fa 100644 --- a/java/src/IceInternal/EndpointFactoryManager.java +++ b/java/src/IceInternal/EndpointFactoryManager.java @@ -97,7 +97,7 @@ public final class EndpointFactoryManager // if(protocol.equals("opaque")) { - EndpointI ue = new OpaqueEndpointI(s.substring(m.end())); + EndpointI ue = new OpaqueEndpointI(s.substring(m.end()), _instance); for(int i = 0; i < _factories.size(); i++) { EndpointFactory f = _factories.get(i); diff --git a/java/src/IceInternal/OpaqueEndpointI.java b/java/src/IceInternal/OpaqueEndpointI.java index 42a0d2da8b0..3821eecfcb9 100644 --- a/java/src/IceInternal/OpaqueEndpointI.java +++ b/java/src/IceInternal/OpaqueEndpointI.java @@ -12,11 +12,11 @@ package IceInternal; final class OpaqueEndpointI extends EndpointI { public - OpaqueEndpointI(String str) + OpaqueEndpointI(String str, Instance instance) { super(""); - _rawEncoding = Protocol.currentEncoding; + _rawEncoding = instance.defaultsAndOverrides().defaultEncoding; int topt = 0; int vopt = 0; diff --git a/java/src/IceInternal/Reference.java b/java/src/IceInternal/Reference.java index b750743c252..6b95a8fc920 100644 --- a/java/src/IceInternal/Reference.java +++ b/java/src/IceInternal/Reference.java @@ -363,15 +363,23 @@ public abstract class Reference implements Cloneable if(!_protocol.equals(Ice.Util.Protocol_1_0)) { + // + // We only print the protocol if it's not 1.0. It's fine as + // long as we don't add Ice.Default.ProtocolVersion, a + // stringified proxy will convert back to the same proxy with + // stringToProxy. + // s.append(" -p "); s.append(Ice.Util.protocolVersionToString(_protocol)); } - if(!_encoding.equals(Ice.Util.Encoding_1_0)) - { - s.append(" -e "); - s.append(Ice.Util.encodingVersionToString(_encoding)); - } + // + // Always print the encoding version to ensure a stringified proxy + // will convert back to a proxy with the same encoding with + // stringToProxy (and won't use Ice.Default.EncodingVersion). + // + s.append(" -e "); + s.append(Ice.Util.encodingVersionToString(_encoding)); return s.toString(); |