Flush the PrintWriter passed to PrintWriterTreeLogger if we are logging reachable types to an OutputStream.
Review by: spoon (TBR)
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2870 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
index 93ac23a..7198abd 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
@@ -617,15 +617,7 @@
pruneUnreachableTypes();
- TreeLogger reachableTypesLogger = logger;
- if (logOutputStream != null) {
- PrintWriterTreeLogger printWriterTreeLogger = new PrintWriterTreeLogger(
- new PrintWriter(logOutputStream));
- printWriterTreeLogger.setMaxDetail(TreeLogger.ALL);
- reachableTypesLogger = printWriterTreeLogger;
- }
-
- logReachableTypes(reachableTypesLogger);
+ logReachableTypes(logger);
Set<JClassType> possiblyInstantiatedTypes = new TreeSet<JClassType>(
JTYPE_COMPARATOR);
@@ -1155,6 +1147,16 @@
}
private void logReachableTypes(TreeLogger logger) {
+ PrintWriter printWriter = null;
+ if (logOutputStream != null) {
+ // Route the TreeLogger output to an output stream.
+ printWriter = new PrintWriter(logOutputStream);
+ PrintWriterTreeLogger printWriterTreeLogger = new PrintWriterTreeLogger(
+ printWriter);
+ printWriterTreeLogger.setMaxDetail(TreeLogger.ALL);
+ logger = printWriterTreeLogger;
+ }
+
logger.log(TreeLogger.INFO, "Reachable types computed on: "
+ new Date().toString());
Set<JType> keySet = typeToTypeInfoComputed.keySet();
@@ -1182,6 +1184,11 @@
TreeLogger pathLogger = typeLogger.branch(TreeLogger.INFO, "Path");
logPath(pathLogger, tic.getPath());
+ logger.log(TreeLogger.INFO, "");
+ }
+
+ if (printWriter != null) {
+ printWriter.flush();
}
}