Tue, 11 Jul 2017 14:09:46 +0100
8181100: Better Base Exceptions
Summary: Also reviewed by Roman Grigoriadi <roman.grigoriadi@oracle.com>
Reviewed-by: dfuchs
src/share/jaxws_classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java Fri Jul 14 10:45:53 2017 -0700 1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java Tue Jul 11 14:09:46 2017 +0100 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -34,6 +34,8 @@ 1.11 import java.io.ObjectInputStream; 1.12 import java.io.ObjectOutputStream; 1.13 import java.io.Serializable; 1.14 +import java.util.ArrayList; 1.15 +import java.util.List; 1.16 import javax.xml.ws.WebServiceException; 1.17 1.18 /** 1.19 @@ -117,13 +119,21 @@ 1.20 String resourceBundleName = (String) in.readObject(); 1.21 String key = (String) in.readObject(); 1.22 int len = in.readInt(); 1.23 - if (len == -1) { 1.24 + if (len < -1) { 1.25 + throw new NegativeArraySizeException(); 1.26 + } else if (len == -1) { 1.27 args = null; 1.28 - } else { 1.29 + } else if (len < 255) { 1.30 args = new Object[len]; 1.31 for (int i = 0; i < args.length; i++) { 1.32 args[i] = in.readObject(); 1.33 } 1.34 + } else { 1.35 + List<Object> argList = new ArrayList<>(Math.min(len, 1024)); 1.36 + for (int i = 0; i < len; i++) { 1.37 + argList.add(in.readObject()); 1.38 + } 1.39 + args = argList.toArray(new Object[argList.size()]); 1.40 } 1.41 msg = new LocalizableMessageFactory(resourceBundleName).getMessage(key,args); 1.42 }