summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/BuildInstructions.md10
-rw-r--r--java/build.gradle12
-rw-r--r--java/gradle.properties2
-rw-r--r--java/gradle/ice.gradle2
-rw-r--r--java/gradle/library.gradle2
-rw-r--r--java/src/Ice/src/main/java/Ice/Util.java4
-rw-r--r--java/src/Ice/src/main/java/IceInternal/BasicStream.java24
-rw-r--r--java/src/Ice/src/main/java/IceInternal/Incoming.java3
-rw-r--r--java/src/Ice/src/main/java/IceInternal/OutgoingAsync.java2
-rw-r--r--java/src/Ice/src/main/java/IceInternal/OutgoingConnectionFactory.java119
-rw-r--r--java/src/Ice/src/main/java/IceInternal/PropertyNames.java4
-rwxr-xr-xjava/src/IceGridGUI/src/main/java/IceGridGUI/LiveDeployment/Service.java66
-rw-r--r--java/test/src/main/java/test/Ice/optional/AMDInitialI.java9
-rw-r--r--java/test/src/main/java/test/Ice/optional/AllTests.java14
-rw-r--r--java/test/src/main/java/test/Ice/optional/InitialI.java8
-rw-r--r--java/test/src/main/java/test/Ice/optional/Test.ice4
-rw-r--r--java/test/src/main/java/test/Ice/optional/TestAMD.ice4
17 files changed, 175 insertions, 114 deletions
diff --git a/java/BuildInstructions.md b/java/BuildInstructions.md
index e5e3e16079d..3fc75b0a4a6 100644
--- a/java/BuildInstructions.md
+++ b/java/BuildInstructions.md
@@ -141,12 +141,12 @@ have not built Ice for C++ in this source distribution, you must set the
`ICE_HOME` environment variable with the path name of your Ice installation.
For example, on Unix:
- $ export ICE_HOME=/opt/Ice-3.6.2 (For local build)
+ $ export ICE_HOME=/opt/Ice-3.6.3 (For local build)
$ export ICE_HOME=/usr (For RPM installation)
On Windows:
- > set ICE_HOME=C:\Program Files (x86)\ZeroC\Ice-3.6.2
+ > set ICE_HOME=C:\Program Files (x86)\ZeroC\Ice-3.6.3
Before building Ice for Java, review the settings in the file
`gradle.properties` and edit as necessary.
@@ -176,7 +176,7 @@ The installation installs the following JAR files to `<prefix>/lib`.
freeze-3.6.2.jar
glacier2-3.6.2.jar
- ice-3.6.2.jar
+ ice-3.6.3.jar
icebox-3.6.2.jar
icediscovery-3.6.2.jar
icegrid-3.6.2.jar
@@ -195,12 +195,12 @@ C++ distribution. If you have not built Ice for C++ in this source distribution
then you must set the `ICE_HOME` environment variable with the path name of your
Ice installation. On Unix:
- $ export ICE_HOME=/opt/Ice-3.6.2 (For local build)
+ $ export ICE_HOME=/opt/Ice-3.6.3 (For local build)
$ export ICE_HOME=/usr (For RPM installation)
On Windows:
- > set ICE_HOME=c:\Program Files (x86)\ZeroC\Ice-3.6.2
+ > set ICE_HOME=c:\Program Files (x86)\ZeroC\Ice-3.6.3
Python is required to run the test suite. To run the tests, open a command
window and change to the top-level directory. At the command prompt, execute:
diff --git a/java/build.gradle b/java/build.gradle
index 8c0cbb25b30..2befd7009f7 100644
--- a/java/build.gradle
+++ b/java/build.gradle
@@ -23,15 +23,15 @@ subprojects {
dirs slice.jarDir
}
}
-
+
if(new File("/usr/share/maven-repo").exists()) {
maven {
url "/usr/share/maven-repo"
}
}
-
+
mavenCentral()
-
+
maven {
url 'https://repo.zeroc.com/nexus/content/repositories/thirdparty'
}
@@ -55,11 +55,11 @@ subprojects {
task dist()
dist.dependsOn(project(":ice").assemble)
-dist.dependsOn(project(":freeze").assemble)
+dist.dependsOn(project(":freeze").assemble)
dist.dependsOn(project(":glacier2").assemble)
dist.dependsOn(project(":icegrid").assemble)
-dist.dependsOn(project(":icebox").assemble)
-dist.dependsOn(project(":icediscovery").assemble)
+dist.dependsOn(project(":icebox").assemble)
+dist.dependsOn(project(":icediscovery").assemble)
dist.dependsOn(project(":icepatch2").assemble)
dist.dependsOn(project(":icestorm").assemble)
dist.dependsOn(project(":IceGridGUI").assemble)
diff --git a/java/gradle.properties b/java/gradle.properties
index b5e805e062d..d06566a45af 100644
--- a/java/gradle.properties
+++ b/java/gradle.properties
@@ -7,7 +7,7 @@
//
// **********************************************************************
-iceVersion = 3.6.2
+iceVersion = 3.6.3
//
// The directory that contains Oracle Berkeley DB's db.jar file. When not
diff --git a/java/gradle/ice.gradle b/java/gradle/ice.gradle
index 2a40fa418ad..96493714c70 100644
--- a/java/gradle/ice.gradle
+++ b/java/gradle/ice.gradle
@@ -27,7 +27,7 @@ buildscript {
}
}
}
-
+
if(new File("/usr/share/maven-repo").exists()){
repositories {
maven {
diff --git a/java/gradle/library.gradle b/java/gradle/library.gradle
index 7353e00cbb3..3d446c7698c 100644
--- a/java/gradle/library.gradle
+++ b/java/gradle/library.gradle
@@ -144,7 +144,7 @@ if(jarsClassPath.toBoolean()){
}
}
}
-
+
install.dependsOn(updateInstallManifest)
} else {
task install(type: Copy, dependsOn: jarSources, overwrite: true) {
diff --git a/java/src/Ice/src/main/java/Ice/Util.java b/java/src/Ice/src/main/java/Ice/Util.java
index b2cc28106a3..bd2db69babb 100644
--- a/java/src/Ice/src/main/java/Ice/Util.java
+++ b/java/src/Ice/src/main/java/Ice/Util.java
@@ -571,7 +571,7 @@ public final class Util
public static String
stringVersion()
{
- return "3.6.2"; // "A.B.C", with A=major, B=minor, C=patch
+ return "3.6.3"; // "A.B.C", with A=major, B=minor, C=patch
}
/**
@@ -584,7 +584,7 @@ public final class Util
public static int
intVersion()
{
- return 30602; // AABBCC, with AA=major, BB=minor, CC=patch
+ return 30603; // AABBCC, with AA=major, BB=minor, CC=patch
}
/**
diff --git a/java/src/Ice/src/main/java/IceInternal/BasicStream.java b/java/src/Ice/src/main/java/IceInternal/BasicStream.java
index 5b40a3beb64..e83a2e5234c 100644
--- a/java/src/Ice/src/main/java/IceInternal/BasicStream.java
+++ b/java/src/Ice/src/main/java/IceInternal/BasicStream.java
@@ -412,29 +412,35 @@ public class BasicStream
_readEncapsCache.reset();
}
- public void
- skipEmptyEncaps(Ice.EncodingVersion encoding)
+ public Ice.EncodingVersion
+ skipEmptyEncaps()
{
int sz = readInt();
- if(sz != 6)
+ if(sz < 6)
{
throw new Ice.EncapsulationException();
}
-
- final int pos = _buf.b.position();
- if(pos + 2 > _buf.size())
+ if(sz - 4 > _buf.b.remaining())
{
throw new Ice.UnmarshalOutOfBoundsException();
}
- if(encoding != null)
+ Ice.EncodingVersion encoding = new Ice.EncodingVersion();
+ encoding.__read(this);
+ if(encoding.equals(Ice.Util.Encoding_1_0))
{
- encoding.__read(this);
+ if(sz != 6)
+ {
+ throw new Ice.EncapsulationException();
+ }
}
else
{
- _buf.b.position(pos + 2);
+ // Skip the optional content of the encapsulation if we are expecting an
+ // empty encapsulation.
+ _buf.b.position(_buf.b.position() + sz - 6);
}
+ return encoding;
}
public void
diff --git a/java/src/Ice/src/main/java/IceInternal/Incoming.java b/java/src/Ice/src/main/java/IceInternal/Incoming.java
index 9afd6ed4903..6f1f205854f 100644
--- a/java/src/Ice/src/main/java/IceInternal/Incoming.java
+++ b/java/src/Ice/src/main/java/IceInternal/Incoming.java
@@ -383,8 +383,7 @@ final public class Incoming extends IncomingBase implements Ice.Request
public final void
readEmptyParams()
{
- _current.encoding = new Ice.EncodingVersion();
- _is.skipEmptyEncaps(_current.encoding);
+ _current.encoding = _is.skipEmptyEncaps();
}
public final byte[]
diff --git a/java/src/Ice/src/main/java/IceInternal/OutgoingAsync.java b/java/src/Ice/src/main/java/IceInternal/OutgoingAsync.java
index 8d776c84af4..55050ec5cc6 100644
--- a/java/src/Ice/src/main/java/IceInternal/OutgoingAsync.java
+++ b/java/src/Ice/src/main/java/IceInternal/OutgoingAsync.java
@@ -382,7 +382,7 @@ public class OutgoingAsync extends ProxyOutgoingAsyncBase
public void readEmptyParams()
{
- _is.skipEmptyEncaps(null);
+ _is.skipEmptyEncaps();
}
public byte[] readParamEncaps()
diff --git a/java/src/Ice/src/main/java/IceInternal/OutgoingConnectionFactory.java b/java/src/Ice/src/main/java/IceInternal/OutgoingConnectionFactory.java
index 029de0bbc63..716550dcc78 100644
--- a/java/src/Ice/src/main/java/IceInternal/OutgoingConnectionFactory.java
+++ b/java/src/Ice/src/main/java/IceInternal/OutgoingConnectionFactory.java
@@ -871,26 +871,10 @@ public final class OutgoingConnectionFactory
connectionStartFailed(Ice.ConnectionI connection, Ice.LocalException ex)
{
assert(_current != null);
-
- if(_observer != null)
- {
- _observer.failed(ex.ice_name());
- _observer.detach();
- }
-
- _factory.handleConnectionException(ex, _hasMore || _iter.hasNext());
- if(ex instanceof Ice.CommunicatorDestroyedException) // No need to continue.
- {
- _factory.finishGetConnection(_connectors, ex, this);
- }
- else if(_iter.hasNext()) // Try the next connector.
+ if(connectionStartFailedImpl(ex))
{
nextConnector();
}
- else
- {
- _factory.finishGetConnection(_connectors, ex, this);
- }
}
//
@@ -1059,52 +1043,83 @@ public final class OutgoingConnectionFactory
private void
nextConnector()
{
- Ice.ConnectionI connection = null;
- try
+ while(true)
{
- assert(_iter.hasNext());
- _current = _iter.next();
-
- Ice.Instrumentation.CommunicatorObserver obsv = _factory._instance.initializationData().observer;
- if(obsv != null)
+ try
{
- _observer = obsv.getConnectionEstablishmentObserver(_current.endpoint,
- _current.connector.toString());
- if(_observer != null)
+ assert(_iter.hasNext());
+ _current = _iter.next();
+
+ Ice.Instrumentation.CommunicatorObserver obsv = _factory._instance.initializationData().observer;
+ if(obsv != null)
{
- _observer.attach();
+ _observer = obsv.getConnectionEstablishmentObserver(_current.endpoint,
+ _current.connector.toString());
+ if(_observer != null)
+ {
+ _observer.attach();
+ }
}
- }
- if(_factory._instance.traceLevels().network >= 2)
- {
- StringBuffer s = new StringBuffer("trying to establish ");
- s.append(_current.endpoint.protocol());
- s.append(" connection to ");
- s.append(_current.connector.toString());
- _factory._instance.initializationData().logger.trace(_factory._instance.traceLevels().networkCat,
- s.toString());
+ if(_factory._instance.traceLevels().network >= 2)
+ {
+ StringBuffer s = new StringBuffer("trying to establish ");
+ s.append(_current.endpoint.protocol());
+ s.append(" connection to ");
+ s.append(_current.connector.toString());
+ _factory._instance.initializationData().logger.trace(_factory._instance.traceLevels().networkCat,
+ s.toString());
+ }
+
+ Ice.ConnectionI connection = _factory.createConnection(_current.connector.connect(), _current);
+ connection.start(this);
}
+ catch(Ice.LocalException ex)
+ {
+ if(_factory._instance.traceLevels().network >= 2)
+ {
+ StringBuffer s = new StringBuffer("failed to establish ");
+ s.append(_current.endpoint.protocol());
+ s.append(" connection to ");
+ s.append(_current.connector.toString());
+ s.append("\n");
+ s.append(ex);
+ _factory._instance.initializationData().logger.trace(_factory._instance.traceLevels().networkCat,
+ s.toString());
+ }
- connection = _factory.createConnection(_current.connector.connect(), _current);
- connection.start(this);
+ if(connectionStartFailedImpl(ex))
+ {
+ continue;
+ }
+ }
+ break;
}
- catch(Ice.LocalException ex)
+ }
+
+ private boolean
+ connectionStartFailedImpl(Ice.LocalException ex)
+ {
+ if(_observer != null)
{
- if(_factory._instance.traceLevels().network >= 2)
- {
- StringBuffer s = new StringBuffer("failed to establish ");
- s.append(_current.endpoint.protocol());
- s.append(" connection to ");
- s.append(_current.connector.toString());
- s.append("\n");
- s.append(ex);
- _factory._instance.initializationData().logger.trace(_factory._instance.traceLevels().networkCat,
- s.toString());
- }
+ _observer.failed(ex.ice_name());
+ _observer.detach();
+ }
- connectionStartFailed(connection, ex);
+ _factory.handleConnectionException(ex, _hasMore || _iter.hasNext());
+ if(ex instanceof Ice.CommunicatorDestroyedException) // No need to continue.
+ {
+ _factory.finishGetConnection(_connectors, ex, this);
+ }
+ else if(_iter.hasNext()) // Try the next connector.
+ {
+ return true;
+ }
+ else
+ {
+ _factory.finishGetConnection(_connectors, ex, this);
}
+ return false;
}
private final OutgoingConnectionFactory _factory;
diff --git a/java/src/Ice/src/main/java/IceInternal/PropertyNames.java b/java/src/Ice/src/main/java/IceInternal/PropertyNames.java
index 089edf73a21..838d58f06db 100644
--- a/java/src/Ice/src/main/java/IceInternal/PropertyNames.java
+++ b/java/src/Ice/src/main/java/IceInternal/PropertyNames.java
@@ -6,7 +6,7 @@
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue Jul 5 22:01:38 2016
+// Generated by makeprops.py from file ./config/PropertyNames.xml, Wed Jul 6 12:39:37 2016
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -125,6 +125,7 @@ public final class PropertyNames
new Property("Ice\\.IPv4", false, null),
new Property("Ice\\.IPv6", false, null),
new Property("Ice\\.LogFile", false, null),
+ new Property("Ice\\.LogFile\\.SizeMax", false, null),
new Property("Ice\\.LogStdErr\\.Convert", false, null),
new Property("Ice\\.MessageSizeMax", false, null),
new Property("Ice\\.Nohup", false, null),
@@ -1003,6 +1004,7 @@ public final class PropertyNames
new Property("IceSSL\\.ProtocolVersionMax", false, null),
new Property("IceSSL\\.ProtocolVersionMin", false, null),
new Property("IceSSL\\.Random", false, null),
+ new Property("IceSSL\\.SecurityLevel", false, null),
new Property("IceSSL\\.Trace\\.Security", false, null),
new Property("IceSSL\\.TrustOnly", false, null),
new Property("IceSSL\\.TrustOnly\\.Client", false, null),
diff --git a/java/src/IceGridGUI/src/main/java/IceGridGUI/LiveDeployment/Service.java b/java/src/IceGridGUI/src/main/java/IceGridGUI/LiveDeployment/Service.java
index 7ad220f4ac3..0e9c108595f 100755
--- a/java/src/IceGridGUI/src/main/java/IceGridGUI/LiveDeployment/Service.java
+++ b/java/src/IceGridGUI/src/main/java/IceGridGUI/LiveDeployment/Service.java
@@ -170,28 +170,24 @@ public class Service extends ListArrayTreeNode
{
if(_showIceLogDialog == null)
{
- Ice.ObjectPrx serverAdmin = ((Server)_parent).getServerAdmin();
- if(serverAdmin == null)
+ Ice.LoggerAdminPrx loggerAdmin = Ice.LoggerAdminPrxHelper.uncheckedCast(getAdminFacet("Logger"));
+ if(loggerAdmin == null)
{
- JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), "Admin not available",
+ JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), "Admin not available",
"No Admin for server " + _parent.getId(), JOptionPane.ERROR_MESSAGE);
return;
}
-
- // TODO: add support for shared communicator
-
- Ice.LoggerAdminPrx loggerAdmin = Ice.LoggerAdminPrxHelper.uncheckedCast(
- serverAdmin.ice_facet("IceBox.Service." + _id + ".Logger"));
+
String title = "Service " + _parent.getId() + "/" + _id + " Ice log";
- _showIceLogDialog = new ShowIceLogDialog(this, title, loggerAdmin, _parent.getId() + "-" + _id,
+ _showIceLogDialog = new ShowIceLogDialog(this, title, loggerAdmin, _parent.getId() + "-" + _id,
getRoot().getLogMaxLines(), getRoot().getLogInitialLines());
- }
+ }
else
{
_showIceLogDialog.toFront();
}
}
-
+
@Override
public void retrieveLogFile()
{
@@ -311,14 +307,14 @@ public class Service extends ListArrayTreeNode
la.setTarget(this);
return _popup;
}
-
+
@Override
public void clearShowIceLogDialog()
{
_showIceLogDialog = null;
}
-
-
+
+
Service(Server parent, String serviceName, Utils.Resolver resolver, ServiceInstanceDescriptor descriptor,
ServiceDescriptor serviceDescriptor, PropertySetDescriptor serverInstancePSDescriptor)
{
@@ -344,7 +340,7 @@ public class Service extends ListArrayTreeNode
_showIceLogDialog.stopped();
}
}
-
+
boolean updateAdapter(AdapterDynamicInfo info)
{
for(Adapter p : _adapters)
@@ -415,9 +411,8 @@ public class Service extends ListArrayTreeNode
void showRuntimeProperties()
{
- Ice.ObjectPrx serverAdmin = ((Server)_parent).getServerAdmin();
-
- if(serverAdmin == null)
+ Ice.PropertiesAdminPrx propAdmin = Ice.PropertiesAdminPrxHelper.uncheckedCast(getAdminFacet("Properties"));
+ if(propAdmin == null)
{
_editor.setBuildId("", this);
}
@@ -467,9 +462,6 @@ public class Service extends ListArrayTreeNode
try
{
- Ice.PropertiesAdminPrx propAdmin =
- Ice.PropertiesAdminPrxHelper.uncheckedCast(serverAdmin.ice_facet("IceBox.Service." + _id +
- ".Properties"));
propAdmin.begin_getPropertiesForPrefix("", cb);
}
catch(Ice.LocalException e)
@@ -550,15 +542,12 @@ public class Service extends ListArrayTreeNode
return; // Already loaded.
}
- Ice.ObjectPrx serverAdmin = ((Server)_parent).getServerAdmin();
- if(serverAdmin == null)
+ final IceMX.MetricsAdminPrx metricsAdmin = IceMX.MetricsAdminPrxHelper.uncheckedCast(getAdminFacet("Metrics"));
+ if(metricsAdmin == null)
{
return;
}
_metricsRetrieved = true;
- final IceMX.MetricsAdminPrx metricsAdmin =
- IceMX.MetricsAdminPrxHelper.uncheckedCast(serverAdmin.ice_facet("IceBox.Service." + _id +
- ".Metrics"));
IceMX.Callback_MetricsAdmin_getMetricsViewNames cb = new IceMX.Callback_MetricsAdmin_getMetricsViewNames()
{
@@ -603,7 +592,7 @@ public class Service extends ListArrayTreeNode
else
{
e.printStackTrace();
- JOptionPane.showMessageDialog(getCoordinator().getMainFrame(),
+ JOptionPane.showMessageDialog(getCoordinator().getMainFrame(),
"Error: " + e.toString(), "Error",
JOptionPane.ERROR_MESSAGE);
}
@@ -653,6 +642,27 @@ public class Service extends ListArrayTreeNode
getRoot().getTreeModel().nodeStructureChanged(this);
}
+ private Ice.ObjectPrx getAdminFacet(String facet)
+ {
+ Server parent = (Server)_parent;
+ Ice.ObjectPrx serverAdmin = parent.getServerAdmin();
+ if(serverAdmin == null)
+ {
+ return null;
+ }
+ try
+ {
+ if(Integer.valueOf(parent.getProperties().get("IceBox.UseSharedCommunicator." + _id)) > 0)
+ {
+ return serverAdmin.ice_facet("IceBox.SharedCommunicator." + facet);
+ }
+ }
+ catch(NumberFormatException ex)
+ {
+ }
+ return serverAdmin.ice_facet("IceBox.Service." + _id + "." + facet);
+ }
+
private final ServiceInstanceDescriptor _instanceDescriptor;
private final ServiceDescriptor _serviceDescriptor;
private final PropertySetDescriptor _serverInstancePSDescriptor;
@@ -666,7 +676,7 @@ public class Service extends ListArrayTreeNode
private boolean _metricsRetrieved = false;
private ShowIceLogDialog _showIceLogDialog;
-
+
static private ServiceEditor _editor;
static private DefaultTreeCellRenderer _cellRenderer;
static private JPopupMenu _popup;
diff --git a/java/test/src/main/java/test/Ice/optional/AMDInitialI.java b/java/test/src/main/java/test/Ice/optional/AMDInitialI.java
index 0d132abe559..b7feeebbd80 100644
--- a/java/test/src/main/java/test/Ice/optional/AMDInitialI.java
+++ b/java/test/src/main/java/test/Ice/optional/AMDInitialI.java
@@ -564,7 +564,7 @@ public final class AMDInitialI extends Initial
{
cb.ice_response(new Ice.Optional<OneOptional>(new OneOptional(53)));
}
-
+
@Override
public void
opG_async(AMD_Initial_opG cb, G g, Ice.Current current)
@@ -574,6 +574,13 @@ public final class AMDInitialI extends Initial
@Override
public void
+ opVoid_async(AMD_Initial_opVoid cb, Ice.Current current)
+ {
+ cb.ice_response();
+ }
+
+ @Override
+ public void
supportsRequiredParams_async(AMD_Initial_supportsRequiredParams cb, Ice.Current current)
{
cb.ice_response(true);
diff --git a/java/test/src/main/java/test/Ice/optional/AllTests.java b/java/test/src/main/java/test/Ice/optional/AllTests.java
index 1db643bedae..91d70d7fcea 100644
--- a/java/test/src/main/java/test/Ice/optional/AllTests.java
+++ b/java/test/src/main/java/test/Ice/optional/AllTests.java
@@ -415,7 +415,19 @@ public class AllTests
test(10 == g.gg2.a);
test(20 == g.getGg2Opt().a);
test("gg1".equals(g.gg1.a));
-
+
+ initial.opVoid();
+
+ os = Ice.Util.createOutputStream(communicator);
+ os.startEncapsulation();
+ os.writeOptional(1, Ice.OptionalFormat.F4);
+ os.writeInt(15);
+ os.writeOptional(1, Ice.OptionalFormat.VSize);
+ os.writeString("test");
+ os.endEncapsulation();
+ inEncaps = os.finished();
+ test(initial.ice_invoke("opVoid", Ice.OperationMode.Normal, inEncaps, outEncaps));
+
out.println("ok");
out.print("testing marshaling of large containers with fixed size elements... ");
diff --git a/java/test/src/main/java/test/Ice/optional/InitialI.java b/java/test/src/main/java/test/Ice/optional/InitialI.java
index f581047ac5a..54eda7d7f73 100644
--- a/java/test/src/main/java/test/Ice/optional/InitialI.java
+++ b/java/test/src/main/java/test/Ice/optional/InitialI.java
@@ -612,7 +612,7 @@ public final class InitialI extends Initial
{
o.set(new OneOptional(53));
}
-
+
@Override
public G
opG(G g, Ice.Current current)
@@ -621,6 +621,12 @@ public final class InitialI extends Initial
}
@Override
+ public void
+ opVoid(Ice.Current current)
+ {
+ }
+
+ @Override
public boolean
supportsRequiredParams(Ice.Current current)
{
diff --git a/java/test/src/main/java/test/Ice/optional/Test.ice b/java/test/src/main/java/test/Ice/optional/Test.ice
index 9ea0d9b4028..7fbce8c3270 100644
--- a/java/test/src/main/java/test/Ice/optional/Test.ice
+++ b/java/test/src/main/java/test/Ice/optional/Test.ice
@@ -318,9 +318,11 @@ class Initial
["java:optional"]
void returnOptionalClass(bool req, out optional(1) OneOptional o);
-
+
G opG(G g);
+ void opVoid();
+
bool supportsRequiredParams();
bool supportsJavaSerializable();
diff --git a/java/test/src/main/java/test/Ice/optional/TestAMD.ice b/java/test/src/main/java/test/Ice/optional/TestAMD.ice
index 42af1f17928..e318e105e39 100644
--- a/java/test/src/main/java/test/Ice/optional/TestAMD.ice
+++ b/java/test/src/main/java/test/Ice/optional/TestAMD.ice
@@ -319,9 +319,11 @@ class Initial
["java:optional"]
void returnOptionalClass(bool req, out optional(1) OneOptional o);
-
+
G opG(G g);
+ void opVoid();
+
bool supportsRequiredParams();
bool supportsJavaSerializable();