Example usage for org.aspectj.bridge MessageUtil MESSAGE_ALL

List of usage examples for org.aspectj.bridge MessageUtil MESSAGE_ALL

Introduction

In this page you can find the example usage for org.aspectj.bridge MessageUtil MESSAGE_ALL.

Prototype

IMessageRenderer MESSAGE_ALL

To view the source code for org.aspectj.bridge MessageUtil MESSAGE_ALL.

Click Source Link

Document

render message without restriction, up to 10K, including throwable

Usage

From source file:org.eclipse.ajdt.core.ant.AjcTask.java

License:Open Source License

/**
 * Run the compile in the same VM by loading the compiler (Main), setting up any message holders, doing the compile, and
 * converting abort/failure and error messages to BuildException, as appropriate.
 * /*from w w  w .j  a  v a2s.co  m*/
  * @return true on successful compilation
 * @throws BuildException if abort or failure messages or if errors and failonerror.
 * 
 */
protected boolean executeInSameVM(String[] args) {
    if (null != maxMem) {
        log("maxMem ignored unless forked: " + maxMem, Project.MSG_WARN);
    }
    IMessageHolder holder = messageHolder;
    int numPreviousErrors;
    if (null == holder) {
        MessageHandler mhandler = new MessageHandler(true);
        final IMessageHandler delegate;
        delegate = new AntMessageHandler(this.logger, this.verbose, false);
        mhandler.setInterceptor(delegate);
        holder = mhandler;
        numPreviousErrors = 0;
    } else {
        numPreviousErrors = holder.numMessages(IMessage.ERROR, true);
    }
    AjdtCommandForAnt command = new AjdtCommandForAnt();
    {
        Main newmain = new Main();
        newmain.setCommand(command);
        newmain.setHolder(holder);
        newmain.setCompletionRunner(new Runnable() {
            public void run() {
                doCompletionTasks();
            }
        });
        if (null != main) {
            MessageUtil.fail(holder, "still running prior main");
            return false;
        }
        main = newmain;
    }
    main.runMain(args, false);
    if (failonerror) {
        int errs = holder.numMessages(IMessage.ERROR, false);
        errs -= numPreviousErrors;
        if (0 < errs) {
            String m = errs + " errors";
            MessageUtil.print(System.err, holder, "", MessageUtil.MESSAGE_ALL, MessageUtil.PICK_ERROR, true);
            throw new BuildException(m);
        }
    }
    // Throw BuildException if there are any fail or abort
    // messages.
    // The BuildException message text has a list of class names
    // for the exceptions found in the messages, or the
    // number of fail/abort messages found if there were
    // no exceptions for any of the fail/abort messages.
    // The interceptor message handler should have already
    // printed the messages, including any stack traces.
    // HACK: this ignores the Usage message
    {
        IMessage[] fails = holder.getMessages(IMessage.FAIL, true);
        if (!LangUtil.isEmpty(fails)) {
            StringBuffer sb = new StringBuffer();
            String prefix = "fail due to ";
            int numThrown = 0;
            for (int i = 0; i < fails.length; i++) {
                String message = fails[i].getMessage();
                if (LangUtil.isEmpty(message)) {
                    message = "<no message>";
                } else if (-1 != message.indexOf(USAGE_SUBSTRING)) {
                    continue;
                }
                Throwable t = fails[i].getThrown();
                if (null != t) {
                    numThrown++;
                    sb.append(prefix);
                    sb.append(LangUtil.unqualifiedClassName(t.getClass()));
                    String thrownMessage = t.getMessage();
                    if (!LangUtil.isEmpty(thrownMessage)) {
                        sb.append(" \"" + thrownMessage + "\"");
                    }
                }
                sb.append("\"" + message + "\"");
                prefix = ", ";
            }
            if (0 < sb.length()) {
                sb.append(" (" + numThrown + " exceptions)");
                throw new BuildException(sb.toString());
            }
        }
    }
    return command.isFailed();
}