8181100: Better Base Exceptions jdk8u151-b05

Tue, 11 Jul 2017 14:09:46 +0100

author
aefimov
date
Tue, 11 Jul 2017 14:09:46 +0100
changeset 1407
730acb5d508e
parent 1406
6089203bd3f3
child 1408
7ce2bd0eda1f

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      }

mercurial