summaryrefslogtreecommitdiff
path: root/java/test
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2015-11-19 00:07:54 +0100
committerJose <jose@zeroc.com>2015-11-19 00:07:54 +0100
commit3be880f1d7bf57deac92aff2a9844e85e4573c09 (patch)
tree5bc9443d4a8ccf004c809bb638fc690949e4fb89 /java/test
parentRemoved old monotonic clock links (diff)
downloadice-3be880f1d7bf57deac92aff2a9844e85e4573c09.tar.bz2
ice-3be880f1d7bf57deac92aff2a9844e85e4573c09.tar.xz
ice-3be880f1d7bf57deac92aff2a9844e85e4573c09.zip
Fixed bug in Java/C# class data member generated patcher
Diffstat (limited to 'java/test')
-rw-r--r--java/test/src/main/java/test/Ice/objects/AllTests.java30
-rw-r--r--java/test/src/main/java/test/Ice/objects/InitialI.java17
-rw-r--r--java/test/src/main/java/test/Ice/objects/Test.ice34
3 files changed, 80 insertions, 1 deletions
diff --git a/java/test/src/main/java/test/Ice/objects/AllTests.java b/java/test/src/main/java/test/Ice/objects/AllTests.java
index a8b60f0ab42..65b30df0eee 100644
--- a/java/test/src/main/java/test/Ice/objects/AllTests.java
+++ b/java/test/src/main/java/test/Ice/objects/AllTests.java
@@ -21,6 +21,10 @@ import test.Ice.objects.Test.E;
import test.Ice.objects.Test.F;
import test.Ice.objects.Test.H;
import test.Ice.objects.Test.I;
+import test.Ice.objects.Test.A1;
+import test.Ice.objects.Test.B1;
+import test.Ice.objects.Test.D1;
+import test.Ice.objects.Test.EDerived;
import test.Ice.objects.Test.Base;
import test.Ice.objects.Test.S;
import test.Ice.objects.Test.BaseSeqHolder;
@@ -192,6 +196,32 @@ public class AllTests
I h = initial.getH();
test(h != null && ((H)h) != null);
out.println("ok");
+
+ out.print("getting D1... ");
+ out.flush();
+ D1 d1 = new D1(new A1("a1"), new A1("a2"), new A1("a3"), new A1("a4"));
+ d1 = initial.getD1(d1);
+ test(d1.a1.name.equals("a1"));
+ test(d1.a2.name.equals("a2"));
+ test(d1.a3.name.equals("a3"));
+ test(d1.a4.name.equals("a4"));
+ out.println("ok");
+
+ out.print("throw EDerived... ");
+ out.flush();
+ try
+ {
+ initial.throwEDerived();
+ test(false);
+ }
+ catch(EDerived ederived)
+ {
+ test(ederived.a1.name.equals("a1"));
+ test(ederived.a2.name.equals("a2"));
+ test(ederived.a3.name.equals("a3"));
+ test(ederived.a4.name.equals("a4"));
+ }
+ out.println("ok");
out.print("setting I... ");
out.flush();
diff --git a/java/test/src/main/java/test/Ice/objects/InitialI.java b/java/test/src/main/java/test/Ice/objects/InitialI.java
index 36da7c51983..b9ac96a4d32 100644
--- a/java/test/src/main/java/test/Ice/objects/InitialI.java
+++ b/java/test/src/main/java/test/Ice/objects/InitialI.java
@@ -18,6 +18,9 @@ import test.Ice.objects.Test.DHolder;
import test.Ice.objects.Test.E;
import test.Ice.objects.Test.F;
import test.Ice.objects.Test.I;
+import test.Ice.objects.Test.A1;
+import test.Ice.objects.Test.D1;
+import test.Ice.objects.Test.EDerived;
import test.Ice.objects.Test.Base;
import test.Ice.objects.Test.BaseSeqHolder;
import test.Ice.objects.Test.Initial;
@@ -141,6 +144,20 @@ public final class InitialI extends Initial
{
return new HI();
}
+
+ @Override
+ public D1
+ getD1(D1 d1, Ice.Current current)
+ {
+ return d1;
+ }
+
+ @Override
+ public void
+ throwEDerived(Ice.Current current) throws EDerived
+ {
+ throw new EDerived(new A1("a1"), new A1("a2"), new A1("a3"), new A1("a4"));
+ }
@Override
public void
diff --git a/java/test/src/main/java/test/Ice/objects/Test.ice b/java/test/src/main/java/test/Ice/objects/Test.ice
index a67d245a4ea..a6ff714ca6a 100644
--- a/java/test/src/main/java/test/Ice/objects/Test.ice
+++ b/java/test/src/main/java/test/Ice/objects/Test.ice
@@ -136,6 +136,35 @@ exception Ex
};
+class A1
+{
+ string name;
+};
+
+class B1
+{
+ A1 a1;
+ A1 a2;
+};
+
+class D1 extends B1
+{
+ A1 a3;
+ A1 a4;
+};
+
+exception EBase
+{
+ A1 a1;
+ A1 a2;
+};
+
+exception EDerived extends EBase
+{
+ A1 a3;
+ A1 a4;
+};
+
class Initial
{
void shutdown();
@@ -151,7 +180,10 @@ class Initial
I getI();
I getJ();
I getH();
-
+
+ D1 getD1(D1 d1);
+ void throwEDerived() throws EDerived;
+
void setI(I theI);
BaseSeq opBaseSeq(BaseSeq inSeq, out BaseSeq outSeq);