Skip to content

Package: TempFile

TempFile

nameinstructionbranchcomplexitylinemethod
TempFile(File)
M: 19 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
close()
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
finalize()
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
getAppendStream()
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*
2: * Copyright (c) 2010, 2023 Oracle and/or its affiliates. All rights reserved.
3: *
4: * This program and the accompanying materials are made available under the
5: * terms of the Eclipse Public License v. 2.0, which is available at
6: * http://www.eclipse.org/legal/epl-2.0.
7: *
8: * This Source Code may also be made available under the following Secondary
9: * Licenses when the conditions for such availability set forth in the
10: * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11: * version 2 with the GNU Classpath Exception, which is available at
12: * https://www.gnu.org/software/classpath/license.html.
13: *
14: * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15: */
16:
17: package org.eclipse.angus.mail.pop3;
18:
19: import java.io.*;
20:
21: /**
22: * A temporary file used to cache POP3 messages.
23: */
24: class TempFile {
25:
26: private File file;        // the temp file name
27: private WritableSharedFile sf;
28:
29: /**
30: * Create a temp file in the specified directory (if not null).
31: * The file will be deleted when the JVM exits.
32: */
33: public TempFile(File dir) throws IOException {
34:         file = File.createTempFile("pop3.", ".mbox", dir);
35:         // XXX - need JDK 6 to set permissions on the file to owner-only
36:         file.deleteOnExit();
37:         sf = new WritableSharedFile(file);
38: }
39:
40: /**
41: * Return a stream for appending to the temp file.
42: */
43: public AppendStream getAppendStream() throws IOException {
44:         return sf.getAppendStream();
45: }
46:
47: /**
48: * Close and remove this temp file.
49: */
50: public void close() {
51:         try {
52:          sf.close();
53:         } catch (IOException ex) {
54:          // ignore it
55:         }
56:         file.delete();
57: }
58:
59: @Override
60: protected void finalize() throws Throwable {
61:         try {
62:          close();
63:         } finally {
64:          super.finalize();
65:         }
66: }
67: }