summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-07-06 00:18:03 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-07-06 00:18:03 +0200
commit54d8f3fb0d3d53f851051980f1bc941c4e39a60f (patch)
tree0d8259f0cd48b3ba0a3792556821aa41d6f718a7 /java
parentFixed ICE-8223 - renamed cloneImpl to _iceCloneImpl (diff)
downloadice-54d8f3fb0d3d53f851051980f1bc941c4e39a60f.tar.bz2
ice-54d8f3fb0d3d53f851051980f1bc941c4e39a60f.tar.xz
ice-54d8f3fb0d3d53f851051980f1bc941c4e39a60f.zip
Added Ice::UserException::ice_getSlicedData and Ice::UnkownSlicedValue::ice_id methods
Diffstat (limited to 'java')
-rw-r--r--java/src/Ice/src/main/java/com/zeroc/Ice/UnknownSlicedValue.java19
-rw-r--r--java/src/Ice/src/main/java/com/zeroc/Ice/UserException.java11
-rw-r--r--java/src/Ice/src/main/java/com/zeroc/IceInternal/Ex.java4
-rw-r--r--java/test/src/main/java/test/Ice/slicing/exceptions/AllTests.java43
-rw-r--r--java/test/src/main/java/test/Ice/slicing/objects/AllTests.java4
5 files changed, 68 insertions, 13 deletions
diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/UnknownSlicedValue.java b/java/src/Ice/src/main/java/com/zeroc/Ice/UnknownSlicedValue.java
index 41ce5a574e4..648fd2f611a 100644
--- a/java/src/Ice/src/main/java/com/zeroc/Ice/UnknownSlicedValue.java
+++ b/java/src/Ice/src/main/java/com/zeroc/Ice/UnknownSlicedValue.java
@@ -25,25 +25,26 @@ public final class UnknownSlicedValue extends Value
}
/**
- * Determine the Slice type ID associated with this object.
+ * Returns the sliced data if the value has a preserved-slice base class and has been sliced during
+ * un-marshaling of the value, null is returned otherwise.
*
- * @return The type ID.
+ * @return The sliced data or null.
**/
- public String getUnknownTypeId()
+ @Override
+ public SlicedData ice_getSlicedData()
{
- return _unknownTypeId;
+ return _slicedData;
}
/**
- * Returns the sliced data if the value has a preserved-slice base class and has been sliced during
- * un-marshaling of the value, null is returned otherwise.
+ * Determine the Slice type ID associated with this object.
*
- * @return The sliced data or null.
+ * @return The type ID.
**/
@Override
- public SlicedData ice_getSlicedData()
+ public String ice_id()
{
- return _slicedData;
+ return _unknownTypeId;
}
@Override
diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/UserException.java b/java/src/Ice/src/main/java/com/zeroc/Ice/UserException.java
index 32a57624c4a..c09452fdbcb 100644
--- a/java/src/Ice/src/main/java/com/zeroc/Ice/UserException.java
+++ b/java/src/Ice/src/main/java/com/zeroc/Ice/UserException.java
@@ -65,6 +65,17 @@ public abstract class UserException extends java.lang.Exception implements Clone
public abstract String ice_id();
/**
+ * Returns the sliced data if the exception has a preserved-slice base class and has been sliced during
+ * un-marshaling, null is returned otherwise.
+ *
+ * @return The sliced data or null.
+ **/
+ public com.zeroc.Ice.SlicedData ice_getSlicedData()
+ {
+ return null;
+ }
+
+ /**
* Returns a string representation of this exception.
*
* @return A string representation of this exception.
diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/Ex.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/Ex.java
index c3bedd51bb7..a784cb38b12 100644
--- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/Ex.java
+++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/Ex.java
@@ -21,7 +21,7 @@ public class Ex
if(v instanceof com.zeroc.Ice.UnknownSlicedValue)
{
com.zeroc.Ice.UnknownSlicedValue usv = (com.zeroc.Ice.UnknownSlicedValue)v;
- throw new com.zeroc.Ice.NoValueFactoryException("", usv.getUnknownTypeId());
+ throw new com.zeroc.Ice.NoValueFactoryException("", usv.ice_id());
}
String type = v.ice_id();
@@ -48,7 +48,7 @@ public class Ex
if(v instanceof com.zeroc.Ice.UnknownSlicedValue)
{
com.zeroc.Ice.UnknownSlicedValue usv = (com.zeroc.Ice.UnknownSlicedValue)v;
- throw new com.zeroc.Ice.NoValueFactoryException("", usv.getUnknownTypeId());
+ throw new com.zeroc.Ice.NoValueFactoryException("", usv.ice_id());
}
String type = v.ice_id();
diff --git a/java/test/src/main/java/test/Ice/slicing/exceptions/AllTests.java b/java/test/src/main/java/test/Ice/slicing/exceptions/AllTests.java
index 8445d06ae74..610957cce0f 100644
--- a/java/test/src/main/java/test/Ice/slicing/exceptions/AllTests.java
+++ b/java/test/src/main/java/test/Ice/slicing/exceptions/AllTests.java
@@ -652,6 +652,49 @@ public class AllTests
out.print("preserved exceptions... ");
out.flush();
{
+ try
+ {
+ test.unknownPreservedAsBase();
+ test(false);
+ }
+ catch(Base ex)
+ {
+ if(test.ice_getEncodingVersion().equals(com.zeroc.Ice.Util.Encoding_1_0))
+ {
+ test(ex.ice_getSlicedData() == null);
+ }
+ else
+ {
+ com.zeroc.Ice.SlicedData slicedData = ex.ice_getSlicedData();
+ test(slicedData != null);
+ test(slicedData.slices.length == 2);
+ test(slicedData.slices[1].typeId.equals("::Test::SPreserved1"));
+ test(slicedData.slices[0].typeId.equals("::Test::SPreserved2"));
+ }
+ }
+
+ try
+ {
+ test.unknownPreservedAsKnownPreserved();
+ test(false);
+ }
+ catch(KnownPreserved ex)
+ {
+ test(ex.kp.equals("preserved"));
+ if(test.ice_getEncodingVersion().equals(com.zeroc.Ice.Util.Encoding_1_0))
+ {
+ test(ex.ice_getSlicedData() == null);
+ }
+ else
+ {
+ com.zeroc.Ice.SlicedData slicedData = ex.ice_getSlicedData();
+ test(slicedData != null);
+ test(slicedData.slices.length == 2);
+ test(slicedData.slices[1].typeId.equals("::Test::SPreserved1"));
+ test(slicedData.slices[0].typeId.equals("::Test::SPreserved2"));
+ }
+ }
+
com.zeroc.Ice.ObjectAdapter adapter = communicator.createObjectAdapter("");
RelayPrx relay = RelayPrx.uncheckedCast(adapter.addWithUUID(new RelayI()));
adapter.activate();
diff --git a/java/test/src/main/java/test/Ice/slicing/objects/AllTests.java b/java/test/src/main/java/test/Ice/slicing/objects/AllTests.java
index 30c55660224..1a96bd0dd87 100644
--- a/java/test/src/main/java/test/Ice/slicing/objects/AllTests.java
+++ b/java/test/src/main/java/test/Ice/slicing/objects/AllTests.java
@@ -377,7 +377,7 @@ public class AllTests
o = test.SUnknownAsObject();
test(!test.ice_getEncodingVersion().equals(Util.Encoding_1_0));
test(o instanceof com.zeroc.Ice.UnknownSlicedValue);
- test(((com.zeroc.Ice.UnknownSlicedValue)o).getUnknownTypeId().equals("::Test::SUnknown"));
+ test(((com.zeroc.Ice.UnknownSlicedValue)o).ice_id().equals("::Test::SUnknown"));
test(((com.zeroc.Ice.UnknownSlicedValue)o).ice_getSlicedData() != null);
test.checkSUnknown(o);
}
@@ -413,7 +413,7 @@ public class AllTests
{
test(ex == null);
test(result instanceof com.zeroc.Ice.UnknownSlicedValue);
- test(((com.zeroc.Ice.UnknownSlicedValue)result).getUnknownTypeId().equals("::Test::SUnknown"));
+ test(((com.zeroc.Ice.UnknownSlicedValue)result).ice_id().equals("::Test::SUnknown"));
cb.called();
});
cb.check();