/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.ignite.internal.visor.node;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.internal.visor.VisorDataTransferObject;
import org.apache.ignite.internal.visor.util.VisorExceptionWrapper;
/**
* Data transfer object for suppressed errors.
*/
public class VisorSuppressedError extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
/** */
private long order;
/** */
@GridToStringExclude
private VisorExceptionWrapper error;
/** */
private long threadId;
/** */
private String threadName;
/** */
private long time;
/** */
private String msg;
/**
* Default constructor.
*/
public VisorSuppressedError() {
// No-op.
}
/**
* Constructor.
*
* @param order Locally unique ID that is atomically incremented for each new error.
* @param error Suppressed error.
* @param msg Message that describe reason why error was suppressed.
* @param threadId Thread ID.
* @param threadName Thread name.
* @param time Occurrence time.
*/
public VisorSuppressedError(long order, VisorExceptionWrapper error, String msg, long threadId, String threadName, long time) {
this.order = order;
this.error = error;
this.threadId = threadId;
this.threadName = threadName;
this.time = time;
this.msg = msg;
}
/**
* @return Locally unique ID that is atomically incremented for each new error.
*/
public long getOrder() {
return order;
}
/**
* @return Gets message that describe reason why error was suppressed.
*/
public String getMessage() {
return msg;
}
/**
* @return Suppressed error.
*/
public VisorExceptionWrapper getError() {
return error;
}
/**
* @return Gets thread ID.
*/
public long getThreadId() {
return threadId;
}
/**
* @return Gets thread name.
*/
public String getThreadName() {
return threadName;
}
/**
* @return Gets time.
*/
public long getTime() {
return time;
}
/** {@inheritDoc} */
@Override protected void writeExternalData(ObjectOutput out) throws IOException {
out.writeLong(order);
out.writeObject(error);
out.writeLong(threadId);
U.writeString(out, threadName);
out.writeLong(time);
U.writeString(out, msg);
}
/** {@inheritDoc} */
@Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
order = in.readLong();
error = (VisorExceptionWrapper)in.readObject();
threadId = in.readLong();
threadName= U.readString(in);
time = in.readLong();
msg = U.readString(in);
}
/** {@inheritDoc} */
public String toString() {
return S.toString(VisorSuppressedError.class, this);
}
}