Opened 13 years ago
Last modified 13 years ago
#9848 closed defect
4.1.4 compilation issues with java glue — at Initial Version
| Reported by: | Aidar | Owned by: | |
|---|---|---|---|
| Component: | other | Version: | VirtualBox 4.1.4 |
| Keywords: | glue-java.xsl java | Cc: | |
| Guest type: | other | Host type: | Linux |
Description
emerging 4.1.4 ose on gentoo here with following failure:
/var/tmp/portage/app-emulation/virtualbox-4.1.4/work/VirtualBox-4.1.4_OSE/out/linux.amd64/release/obj/vboxjxpcom-gen/jxpcomgen/java/glue/Helper.java:123: error: name clash: unwrap(List<Integer>) and unwrap(List<Short>) have the same erasure
public static int[] unwrap(List<Integer> vals) {
^
/var/tmp/portage/app-emulation/virtualbox-4.1.4/work/VirtualBox-4.1.4_OSE/out/linux.amd64/release/obj/vboxjxpcom-gen/jxpcomgen/java/glue/Helper.java:135: error: name clash: unwrap(List<Long>) and unwrap(List<Short>) have the same erasure
public static long[] unwrap(List<Long> vals) {
^
/var/tmp/portage/app-emulation/virtualbox-4.1.4/work/VirtualBox-4.1.4_OSE/out/linux.amd64/release/obj/vboxjxpcom-gen/jxpcomgen/java/glue/Helper.java:147: error: name clash: unwrap(List<Boolean>) and unwrap(List<Short>) have the same erasure
public static boolean[] unwrap(List<Boolean> vals) {
^
/var/tmp/portage/app-emulation/virtualbox-4.1.4/work/VirtualBox-4.1.4_OSE/out/linux.amd64/release/obj/vboxjxpcom-gen/jxpcomgen/java/glue/Helper.java:159: error: name clash: unwrap(List<String>) and unwrap(List<Short>) have the same erasure
public static String[] unwrap(List<String> vals) {
indeed, src/VBox/Main/glue/glue-java.xsl on line 2656 has illegal java:
public static short[] unwrap(List<Short> vals) {
if (vals==null)
return null;
short[] ret = new short[vals.size()];
int i = 0;
for (short l : vals) {
ret[i++] = l;
}
return ret;
}
public static int[] unwrap(List<Integer> vals) {
if (vals == null)
return null;
int[] ret = new int[vals.size()];
int i = 0;
for (int l : vals) {
ret[i++] = l;
}
return ret;
}
public static long[] unwrap(List<Long> vals) {
if (vals == null)
return null;
long[] ret = new long[vals.size()];
int i = 0;
for (long l : vals) {
ret[i++] = l;
}
return ret;
}
.
.
.
Some more generic methods with the exact same erasure which is illegal java. Any sane fix for this ? Am I missing something ?
Note:
See TracTickets
for help on using tickets.

