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.File;
20: import java.io.IOException;
21:
22: /**
23: * A temporary file used to cache POP3 messages.
24: */
25: class TempFile {
26:
27: private File file; // the temp file name
28: private WritableSharedFile sf;
29:
30: /**
31: * Create a temp file in the specified directory (if not null).
32: * The file will be deleted when the JVM exits.
33: */
34: public TempFile(File dir) throws IOException {
35: file = File.createTempFile("pop3.", ".mbox", dir);
36: // XXX - need JDK 6 to set permissions on the file to owner-only
37: file.deleteOnExit();
38: sf = new WritableSharedFile(file);
39: }
40:
41: /**
42: * Return a stream for appending to the temp file.
43: */
44: public AppendStream getAppendStream() throws IOException {
45: return sf.getAppendStream();
46: }
47:
48: /**
49: * Close and remove this temp file.
50: */
51: public void close() {
52: try {
53: sf.close();
54: } catch (IOException ex) {
55: // ignore it
56: }
57: file.delete();
58: }
59:
60: @Override
61: protected void finalize() throws Throwable {
62: try {
63: close();
64: } finally {
65: super.finalize();
66: }
67: }
68: }