001
014
015 package com.liferay.portal.kernel.process.log;
016
017 import com.liferay.portal.kernel.io.unsync.UnsyncByteArrayOutputStream;
018 import com.liferay.portal.kernel.process.ProcessCallable;
019
020 import java.io.IOException;
021 import java.io.ObjectOutputStream;
022
023
026 public class ProcessOutputStream extends UnsyncByteArrayOutputStream {
027
028 public ProcessOutputStream(ObjectOutputStream objectOutputStream) {
029 this(objectOutputStream, false);
030 }
031
032 public ProcessOutputStream(
033 ObjectOutputStream objectOutputStream, boolean error) {
034
035 _objectOutputStream = objectOutputStream;
036 _error = error;
037 }
038
039 @Override
040 public void close() throws IOException {
041 _objectOutputStream.close();
042 }
043
044 @Override
045 public void flush() throws IOException {
046 if (index > 0) {
047 byte[] bytes = toByteArray();
048
049 LoggingProcessCallable loggingProcessCallable =
050 new LoggingProcessCallable(bytes, _error);
051
052 writeProcessCallable(loggingProcessCallable);
053
054 reset();
055 }
056 }
057
058 public void writeProcessCallable(ProcessCallable<?> processCallable)
059 throws IOException {
060
061 _objectOutputStream.writeObject(processCallable);
062
063 _objectOutputStream.flush();
064 }
065
066 private final boolean _error;
067 private final ObjectOutputStream _objectOutputStream;
068
069 }