summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-03-06 16:35:36 +0100
committerBenoit Foucher <benoit@zeroc.com>2017-03-06 16:35:36 +0100
commitf5f9c9de9ff1eba12d8780281303dd620c9b8db1 (patch)
tree07645df707e4697e1e541f8414201f9a2196e52c
parentFix (ICE-7457) - IceGridGUI NPE (diff)
downloadice-f5f9c9de9ff1eba12d8780281303dd620c9b8db1.tar.bz2
ice-f5f9c9de9ff1eba12d8780281303dd620c9b8db1.tar.xz
ice-f5f9c9de9ff1eba12d8780281303dd620c9b8db1.zip
Fixed ICE-7639 - Java generated code bug
-rw-r--r--CHANGELOG-3.6.md9
-rw-r--r--cpp/src/slice2java/Gen.cpp4
-rw-r--r--cpp/test/Ice/operations/Test.ice15
-rw-r--r--csharp/test/Ice/operations/Test.ice15
-rw-r--r--java/test/src/main/java/test/Ice/operations/Test.ice15
-rw-r--r--js/package.json4
-rw-r--r--js/test/Ice/operations/Test.ice15
-rw-r--r--objective-c/test/Ice/operations/OperationsTest.ice15
-rw-r--r--php/test/Ice/operations/Test.ice15
-rw-r--r--python/test/Ice/operations/Test.ice15
-rw-r--r--ruby/test/Ice/operations/Test.ice15
11 files changed, 133 insertions, 4 deletions
diff --git a/CHANGELOG-3.6.md b/CHANGELOG-3.6.md
index a834ebafd52..7e49353d455 100644
--- a/CHANGELOG-3.6.md
+++ b/CHANGELOG-3.6.md
@@ -11,6 +11,9 @@ particular aspect of Ice.
- [Changes in Ice 3.6.4](#changes-in-ice-364)
- [General Changes](#general-changes)
- [C++ Changes](#c-changes)
+ - [Java Changes](#java-changes)
+ - [JavaScript Changes](#javascript-changes)
+ - [C# Changes](#c-changes-2)
- [Changes in Ice 3.6.3](#changes-in-ice-363)
- [General Changes](#general-changes)
- [C++ Changes](#c-changes)
@@ -63,6 +66,12 @@ These are the changes since Ice 3.6.4.
- Fixed bug which would cause an IceUtil::NullHandleException to be raised when
using a proxy configured with ice_invocationTimeout(-2) with collocated calls.
+## Java Changes
+
+- Fixed generated code bug which would cause a build failure if an interface
+ inherited from an interface from another module and if this interface had
+ operations returning multiple values.
+
## JavaScript Changes
- Fixed a bug in Ice.Long toNumber implementation where negative integers
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 7f88d0f4cfe..6d7cd242ced 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -395,7 +395,7 @@ Slice::JavaVisitor::getAsyncCallbackInterface(const OperationPtr& op, const stri
else
{
ClassDefPtr cl = ClassDefPtr::dynamicCast(op->container());
- return "_Callback_" + cl->name() + "_" + op->name();
+ return getPackage(cl) + "._Callback_" + cl->name() + "_" + op->name();
}
}
@@ -468,7 +468,7 @@ Slice::JavaVisitor::getAsyncCallbackBaseClass(const OperationPtr& op, bool funct
{
os << "IceInternal.TwowayCallback implements ";
}
- os << "_Callback_" << cl->name() << "_" << op->name();
+ os << getPackage(cl) << "._Callback_" << cl->name() << "_" << op->name();
return os.str();
}
}
diff --git a/cpp/test/Ice/operations/Test.ice b/cpp/test/Ice/operations/Test.ice
index 35f5637afa2..4e997f5db5f 100644
--- a/cpp/test/Ice/operations/Test.ice
+++ b/cpp/test/Ice/operations/Test.ice
@@ -414,3 +414,18 @@ const ["cpp:type:wstring"]string wsu1 = "\u0128\u0178\u00FF\u0100\u1F00\U0001019
const ["cpp:type:wstring"]string wsu2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+};
diff --git a/csharp/test/Ice/operations/Test.ice b/csharp/test/Ice/operations/Test.ice
index 1158786a2e3..ccafaf89b60 100644
--- a/csharp/test/Ice/operations/Test.ice
+++ b/csharp/test/Ice/operations/Test.ice
@@ -346,3 +346,18 @@ const string su1 = "\u0128\u0178\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198
const string su2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+};
diff --git a/java/test/src/main/java/test/Ice/operations/Test.ice b/java/test/src/main/java/test/Ice/operations/Test.ice
index e4ab46e9c28..2a50c78d450 100644
--- a/java/test/src/main/java/test/Ice/operations/Test.ice
+++ b/java/test/src/main/java/test/Ice/operations/Test.ice
@@ -344,3 +344,18 @@ const string su0 = "ĨŸÿĀἀ𐆔𐅪𐆘🍀🍁🍂🍃";
const string su1 = "\u0128\u0178\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
const string su2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+}; \ No newline at end of file
diff --git a/js/package.json b/js/package.json
index 29c2ee6c0eb..2fc2f0efed3 100644
--- a/js/package.json
+++ b/js/package.json
@@ -27,13 +27,13 @@
"gulp-minify-css": "^1.2.3",
"gulp-newer": "^1.1.0",
"gulp-open": "^1.0.0",
- "gulp-sourcemaps": "^1.5.2",
+ "gulp-sourcemaps": "^2.2.0",
"gulp-uglify": "^1.5.1",
"gulp-util": "^3.0.5",
"gulp-watch": "^4.2.4",
"hogan.js": "^3.0.2",
"jshint": "^2.8.0",
- "source-map": "^0.5.3",
+ "source-map": "^0.5.6",
"through2": "^2.0.0",
"vinyl-paths": "^2.1.0"
},
diff --git a/js/test/Ice/operations/Test.ice b/js/test/Ice/operations/Test.ice
index 69713c5b6fd..6e219103c43 100644
--- a/js/test/Ice/operations/Test.ice
+++ b/js/test/Ice/operations/Test.ice
@@ -342,3 +342,18 @@ const string su1 = "\u0128\u0178\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198
const string su2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+};
diff --git a/objective-c/test/Ice/operations/OperationsTest.ice b/objective-c/test/Ice/operations/OperationsTest.ice
index 8f7248ce985..5f0e7dd42fe 100644
--- a/objective-c/test/Ice/operations/OperationsTest.ice
+++ b/objective-c/test/Ice/operations/OperationsTest.ice
@@ -387,3 +387,18 @@ const string su1 = "\u0128\u0178\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198
const string su2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+};
diff --git a/php/test/Ice/operations/Test.ice b/php/test/Ice/operations/Test.ice
index 23a4f1ba4b1..ab935c4522c 100644
--- a/php/test/Ice/operations/Test.ice
+++ b/php/test/Ice/operations/Test.ice
@@ -320,3 +320,18 @@ const string su1 = "\u0128\u0178\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198
const string su2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+};
diff --git a/python/test/Ice/operations/Test.ice b/python/test/Ice/operations/Test.ice
index 82e7cba1dfc..1dc9bae6cfb 100644
--- a/python/test/Ice/operations/Test.ice
+++ b/python/test/Ice/operations/Test.ice
@@ -341,3 +341,18 @@ const string su1 = "\u0128\u0178\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198
const string su2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+};
diff --git a/ruby/test/Ice/operations/Test.ice b/ruby/test/Ice/operations/Test.ice
index b053ebf9a46..add85cd4fed 100644
--- a/ruby/test/Ice/operations/Test.ice
+++ b/ruby/test/Ice/operations/Test.ice
@@ -339,3 +339,18 @@ const string su1 = "\u0128\u0178\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198
const string su2 = "\U00000128\U00000178\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343";
};
+
+module Test2
+{
+
+/**
+ *
+ * Makes sure that proxy operations are correctly generated when extending an interface from
+ * a different module (ICE-7639).
+ *
+ **/
+class MyDerivedClass extends Test::MyClass
+{
+};
+
+}; \ No newline at end of file