8181100: Better Base Exceptions

Reviewed-by: dfuchs, rhalade, skoivu
This commit is contained in:
Roman Grigoriadi 2017-06-19 22:51:35 +01:00 committed by Aleksei Efimov
parent 7ec06eee41
commit fea6f71dae

View File

@ -34,6 +34,8 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.xml.ws.WebServiceException;
@ -122,13 +124,21 @@ public abstract class JAXWSExceptionBase
String resourceBundleName = (String) in.readObject();
String key = (String) in.readObject();
int len = in.readInt();
if (len == -1) {
if (len < -1) {
throw new NegativeArraySizeException();
} else if (len == -1) {
args = null;
} else {
} else if (len < 255) {
args = new Object[len];
for (int i = 0; i < args.length; i++) {
args[i] = in.readObject();
}
} else {
List<Object> argList = new ArrayList<>(Math.min(len, 1024));
for (int i = 0; i < len; i++) {
argList.add(in.readObject());
}
args = argList.toArray(new Object[argList.size()]);
}
msg = new LocalizableMessageFactory(resourceBundleName).getMessage(key,args);
}