|  | // Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | package com.android.tools.r8.cf; | 
|  |  | 
|  | import com.android.tools.r8.NeverInline; | 
|  | import java.io.IOException; | 
|  | import java.io.OutputStream; | 
|  |  | 
|  | public class CloserTest { | 
|  |  | 
|  | @NeverInline | 
|  | public static CloserTest create() { | 
|  | return new CloserTest(); | 
|  | } | 
|  |  | 
|  | OutputStream register() { | 
|  | return System.out; | 
|  | } | 
|  |  | 
|  | public void doSomething(String message) throws IOException { | 
|  | System.out.println(message); | 
|  | } | 
|  |  | 
|  | public static void main(String... args) throws IOException { | 
|  | CloserTest closer = CloserTest.create(); | 
|  | try { | 
|  | OutputStream out = closer.register(); | 
|  | out.write(args[0].getBytes()); | 
|  | } catch (Throwable e) { | 
|  | closer.doSomething(e.getMessage()); | 
|  | } finally { | 
|  | closer.doSomething("FINISHED"); | 
|  | } | 
|  | } | 
|  | } |