Mercurial > hg > openjdk > jdk7u > jaxws
changeset 1146:a28183e4181d
8181100: Better Base Exceptions
Summary: Also reviewed by Roman Grigoriadi <roman.grigoriadi@oracle.com>
Reviewed-by: dfuchs
author | aefimov |
---|---|
date | Tue, 31 Oct 2017 06:34:30 +0000 |
parents | 7a9a6ffac242 |
children | 4f5edec6f3d8 |
files | src/share/jaxws_classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java |
diffstat | 1 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/jaxws_classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java Thu Aug 03 07:27:56 2017 +0100 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java Tue Oct 31 06:34:30 2017 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,8 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; /** * Represents a {@link WebServiceException} with @@ -119,13 +121,21 @@ 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); }