Skip to content

Commit c3bdbf9

Browse files
author
Andy Herrick
committed
8259238: Clean up Log.java and remove usage of non-final static variables.
Reviewed-by: asemenyuk, almatvee, kizune
1 parent 6d6a23e commit c3bdbf9

File tree

3 files changed

+30
-67
lines changed

3 files changed

+30
-67
lines changed

src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ public class Arguments {
100100
private String buildRoot = null;
101101
private String mainJarPath = null;
102102

103-
private static boolean runtimeInstaller = false;
103+
private boolean runtimeInstaller = false;
104104

105105
private List<AddLauncherArguments> addLaunchers = null;
106106

107-
private static Map<String, CLIOptions> argIds = new HashMap<>();
108-
private static Map<String, CLIOptions> argShortIds = new HashMap<>();
107+
private static final Map<String, CLIOptions> argIds = new HashMap<>();
108+
private static final Map<String, CLIOptions> argShortIds = new HashMap<>();
109109

110110
static {
111111
// init maps for parsing arguments
@@ -117,7 +117,12 @@ public class Arguments {
117117
});
118118
}
119119

120+
private static final InheritableThreadLocal<Arguments> instance =
121+
new InheritableThreadLocal<Arguments>();
122+
120123
public Arguments(String[] args) {
124+
instance.set(this);
125+
121126
argList = new ArrayList<String>(args.length);
122127
for (String arg : args) {
123128
argList.add(arg);
@@ -392,16 +397,8 @@ private CLIOptions(String id, String shortId,
392397
this.category = category;
393398
}
394399

395-
static void setContext(Arguments context) {
396-
argContext = context;
397-
}
398-
399400
public static Arguments context() {
400-
if (argContext != null) {
401-
return argContext;
402-
} else {
403-
throw new RuntimeException("Argument context is not set.");
404-
}
401+
return instance.get();
405402
}
406403

407404
public String getId() {
@@ -462,10 +459,6 @@ enum OptionCategories {
462459

463460
public boolean processArguments() {
464461
try {
465-
466-
// init context of arguments
467-
CLIOptions.setContext(this);
468-
469462
// parse cmd line
470463
String arg;
471464
CLIOptions option;

src/jdk.jpackage/share/classes/jdk/jpackage/internal/Log.java

Lines changed: 17 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -75,44 +75,33 @@ public void flush() {
7575
public void info(String msg) {
7676
if (out != null) {
7777
out.println(msg);
78-
} else {
79-
System.out.println(msg);
8078
}
8179
}
8280

8381
public void fatalError(String msg) {
8482
if (err != null) {
8583
err.println(msg);
86-
} else {
87-
System.err.println(msg);
8884
}
8985
}
9086

9187
public void error(String msg) {
9288
msg = addTimestamp(msg);
9389
if (err != null) {
9490
err.println(msg);
95-
} else {
96-
System.err.println(msg);
9791
}
9892
}
9993

10094
public void verbose(Throwable t) {
10195
if (out != null && verbose) {
10296
out.print(addTimestamp(""));
10397
t.printStackTrace(out);
104-
} else if (verbose) {
105-
System.out.print(addTimestamp(""));
106-
t.printStackTrace(System.out);
10798
}
10899
}
109100

110101
public void verbose(String msg) {
111102
msg = addTimestamp(msg);
112103
if (out != null && verbose) {
113104
out.println(msg);
114-
} else if (verbose) {
115-
System.out.println(msg);
116105
}
117106
}
118107

@@ -142,62 +131,50 @@ private String addTimestamp(String msg) {
142131
}
143132
}
144133

145-
private static Logger delegate = null;
134+
private static final InheritableThreadLocal<Logger> instance =
135+
new InheritableThreadLocal<Logger>() {
136+
@Override protected Logger initialValue() {
137+
return new Logger();
138+
}
139+
};
146140

147-
public static void setLogger(Logger logger) {
148-
delegate = (logger != null) ? logger : new Logger();
141+
public static void setPrintWriter (PrintWriter out, PrintWriter err) {
142+
instance.get().setPrintWriter(out, err);
149143
}
150144

151145
public static void flush() {
152-
if (delegate != null) {
153-
delegate.flush();
154-
}
146+
instance.get().flush();
155147
}
156148

157149
public static void info(String msg) {
158-
if (delegate != null) {
159-
delegate.info(msg);
160-
}
150+
instance.get().info(msg);
161151
}
162152

163153
public static void fatalError(String msg) {
164-
if (delegate != null) {
165-
delegate.fatalError(msg);
166-
}
154+
instance.get().fatalError(msg);
167155
}
168156

169157
public static void error(String msg) {
170-
if (delegate != null) {
171-
delegate.error(msg);
172-
}
158+
instance.get().error(msg);
173159
}
174160

175161
public static void setVerbose() {
176-
if (delegate != null) {
177-
delegate.setVerbose();
178-
}
162+
instance.get().setVerbose();
179163
}
180164

181165
public static boolean isVerbose() {
182-
return (delegate != null) ? delegate.isVerbose() : false;
166+
return instance.get().isVerbose();
183167
}
184168

185169
public static void verbose(String msg) {
186-
if (delegate != null) {
187-
delegate.verbose(msg);
188-
}
170+
instance.get().verbose(msg);
189171
}
190172

191173
public static void verbose(Throwable t) {
192-
if (delegate != null) {
193-
delegate.verbose(t);
194-
}
174+
instance.get().verbose(t);
195175
}
196176

197177
public static void verbose(List<String> strings, List<String> out, int ret) {
198-
if (delegate != null) {
199-
delegate.verbose(strings, out, ret);
200-
}
178+
instance.get().verbose(strings, out, ret);
201179
}
202-
203180
}

src/jdk.jpackage/share/classes/jdk/jpackage/main/Main.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ public class Main {
4646
* @param args command line arguments
4747
*/
4848
public static void main(String... args) throws Exception {
49-
// Create logger with default system.out and system.err
50-
Log.setLogger(null);
5149

52-
int status = new jdk.jpackage.main.Main().execute(args);
50+
PrintWriter out = new PrintWriter(System.out);
51+
PrintWriter err = new PrintWriter(System.err);
52+
int status = new jdk.jpackage.main.Main().execute(out, err, args);
5353
System.exit(status);
5454
}
5555

@@ -62,15 +62,8 @@ public static void main(String... args) throws Exception {
6262
* @return an exit code. 0 means success, non-zero means an error occurred.
6363
*/
6464
public int execute(PrintWriter out, PrintWriter err, String... args) {
65-
// Create logger with provided streams
66-
Log.Logger logger = new Log.Logger();
67-
logger.setPrintWriter(out, err);
68-
Log.setLogger(logger);
65+
Log.setPrintWriter(out, err);
6966

70-
return execute(args);
71-
}
72-
73-
private int execute(String... args) {
7467
try {
7568
String[] newArgs;
7669
try {

0 commit comments

Comments
 (0)