src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/FactoryFinder.java

changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 637
9c07ef4934dd
     1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/FactoryFinder.java	Thu Apr 04 19:05:24 2013 -0700
     1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/FactoryFinder.java	Tue Apr 09 14:51:13 2013 +0100
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2012, 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 @@ -29,6 +29,8 @@
    1.11  import java.io.IOException;
    1.12  import java.io.InputStream;
    1.13  import java.io.InputStreamReader;
    1.14 +import java.util.logging.Level;
    1.15 +import java.util.logging.Logger;
    1.16  
    1.17  class FactoryFinder {
    1.18  
    1.19 @@ -58,26 +60,34 @@
    1.20  
    1.21      private static String findJarServiceProviderName(String factoryId) {
    1.22          String serviceId = "META-INF/services/" + factoryId;
    1.23 -        InputStream is = null;
    1.24 +        InputStream is;
    1.25          is = cl.getResourceAsStream(serviceId);
    1.26  
    1.27          if (is == null) {
    1.28              return null;
    1.29          }
    1.30  
    1.31 -        BufferedReader rd;
    1.32 +        String factoryClassName;
    1.33 +        BufferedReader rd = null;
    1.34          try {
    1.35 -            rd = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    1.36 -        } catch (java.io.UnsupportedEncodingException e) {
    1.37 -            rd = new BufferedReader(new InputStreamReader(is));
    1.38 -        }
    1.39 -
    1.40 -        String factoryClassName = null;
    1.41 -        try {
    1.42 -            factoryClassName = rd.readLine();
    1.43 -            rd.close();
    1.44 -        } catch (IOException x) {
    1.45 -            return null;
    1.46 +            try {
    1.47 +                rd = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    1.48 +            } catch (java.io.UnsupportedEncodingException e) {
    1.49 +                rd = new BufferedReader(new InputStreamReader(is));
    1.50 +            }
    1.51 +            try {
    1.52 +                factoryClassName = rd.readLine();
    1.53 +            } catch (IOException x) {
    1.54 +                return null;
    1.55 +            }
    1.56 +        } finally {
    1.57 +            if (rd != null) {
    1.58 +                try {
    1.59 +                    rd.close();
    1.60 +                } catch (IOException ex) {
    1.61 +                    Logger.getLogger(FactoryFinder.class.getName()).log(Level.INFO, null, ex);
    1.62 +                }
    1.63 +            }
    1.64          }
    1.65  
    1.66          return factoryClassName;

mercurial