diff --git a/src/etc/testcases/taskdefs/rmic/rmic.xml b/src/etc/testcases/taskdefs/rmic/rmic.xml
index 746ad9813..25b5a971e 100644
--- a/src/etc/testcases/taskdefs/rmic/rmic.xml
+++ b/src/etc/testcases/taskdefs/rmic/rmic.xml
@@ -263,4 +263,15 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java b/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
index c06d591e0..b9aee9bf1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
@@ -192,7 +192,7 @@ public abstract class DefaultRmicAdapter implements RmicAdapter {
//handle the many different stub options.
String stubVersion = attributes.getStubVersion();
//default is compatibility
- String stubOption=STUB_COMPAT;
+ String stubOption = null;
if (null != stubVersion) {
if ("1.1".equals(stubVersion)) {
stubOption = STUB_1_1;
@@ -202,12 +202,21 @@ public abstract class DefaultRmicAdapter implements RmicAdapter {
stubOption = STUB_COMPAT;
} else {
//anything else
- attributes.log("Unknown stub option "+stubVersion);
+ attributes.log("Unknown stub option " + stubVersion);
//do nothing with the value? or go -v+stubVersion??
}
}
- cmd.createArgument().setValue(stubOption);
-
+ //for java1.5+, we generate compatible stubs, that is, unless
+ //the caller asked for IDL or IIOP support.
+ if (stubOption == null &&
+ !attributes.getIiop() &&
+ !attributes.getIdl()) {
+ stubOption = STUB_COMPAT;
+ }
+ if(stubOption!=null) {
+ //set the non-null stubOption
+ cmd.createArgument().setValue(stubOption);
+ }
if (null != attributes.getSourceBase()) {
cmd.createArgument().setValue("-keepgenerated");
}
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java b/src/testcases/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java
index d8da7d405..3490d6677 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java
@@ -212,6 +212,24 @@ public class RmicAdvancedTest extends BuildFileTest {
executeTarget("testXnewForked");
}
+ /**
+ * test that verifies that IDL compiles.
+ *
+ * @throws Exception
+ */
+ public void testIDL() throws Exception {
+ executeTarget("testIDL");
+ }
+
+ /**
+ * test that verifies that IIOP compiles.
+ *
+ * @throws Exception
+ */
+ public void testIIOP() throws Exception {
+ executeTarget("testIIOP");
+ }
+
/**
* this little bunny verifies that we can load stuff, and that
* a failure to execute is turned into a fault