U-1: Support verbose mode in Encoder Tester
authorLixin Tang <ltang@netbeans.org>
Mon, 28 Jul 2008 12:09:42 -0700
changeset 48286ad7a0572a32
parent 4827 2c970f5eac21
child 4829 d488885f7198
U-1: Support verbose mode in Encoder Tester
Fix so that verbose traces are also displayed in case of exceptions during encoding tests
encoder.ui.tester/src/org/netbeans/modules/encoder/ui/tester/impl/EncoderTestPerformerImpl.java
     1.1 --- a/encoder.ui.tester/src/org/netbeans/modules/encoder/ui/tester/impl/EncoderTestPerformerImpl.java	Fri Jul 25 23:10:21 2008 -0700
     1.2 +++ b/encoder.ui.tester/src/org/netbeans/modules/encoder/ui/tester/impl/EncoderTestPerformerImpl.java	Mon Jul 28 12:09:42 2008 -0700
     1.3 @@ -261,7 +261,7 @@
     1.4              }
     1.5          }
     1.6          
     1.7 -        boolean mResult = true;
     1.8 +        boolean result = true;
     1.9  
    1.10          if (type.equals(ENCODE)) {
    1.11              try {
    1.12 @@ -270,20 +270,25 @@
    1.13                          processFile, outputFile, testerPanel.getPostencodeCoding(),
    1.14                          testerPanel.isToString());
    1.15              } catch (IOException ex) {
    1.16 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.17                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.18 -                mResult = false;
    1.19 +                result = false;
    1.20              } catch (ParserConfigurationException ex) {
    1.21 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.22                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.23 -                mResult = false;
    1.24 +                result = false;
    1.25              } catch (EncoderException ex) {
    1.26 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.27                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.28 -                mResult = false;
    1.29 +                result = false;
    1.30              } catch (SAXException ex) {
    1.31 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.32                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.33 -                mResult = false;            
    1.34 +                result = false;            
    1.35              } catch (EncoderConfigurationException ex) {
    1.36 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.37                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.38 -                mResult = false;            
    1.39 +                result = false;            
    1.40              } finally {
    1.41                  testerPanel.setCursor(null);
    1.42              }
    1.43 @@ -294,26 +299,31 @@
    1.44                          processFile, outputFile, testerPanel.getPredecodeCoding(),
    1.45                          testerPanel.isFromString());
    1.46              } catch (TransformerConfigurationException ex) {
    1.47 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.48                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.49 -                mResult = false;
    1.50 +                result = false;
    1.51              } catch (final TransformerException ex) {
    1.52 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.53                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.54 -                mResult = false;
    1.55 +                result = false;
    1.56              } catch (EncoderException ex) {
    1.57 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.58                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.59 -                mResult = false;
    1.60 +                result = false;
    1.61              } catch (IOException ex) {
    1.62 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.63                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.64 -                mResult = false;
    1.65 +                result = false;
    1.66              } catch (EncoderConfigurationException ex) {
    1.67 +                displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
    1.68                  Utils.notify(ex, true, dialog, JOptionPane.ERROR_MESSAGE);
    1.69 -                mResult = false;            
    1.70 +                result = false;            
    1.71              } finally {
    1.72                  testerPanel.setCursor(null);
    1.73 -            }            
    1.74 +            }
    1.75          }
    1.76          
    1.77 -        if (!mResult) {
    1.78 +        if (!result) {
    1.79              return;
    1.80          }
    1.81          
    1.82 @@ -331,31 +341,39 @@
    1.83              ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
    1.84          }
    1.85  
    1.86 -        if (isVerbose) {
    1.87 -            if (logHandler != null && byteArrOS != null && logger4Verbose != null) {
    1.88 -                // flush the Handler.
    1.89 -                logHandler.flush();
    1.90 -                InputOutput io = IOProvider.getDefault()
    1.91 -                        .getIO("Encoder Test [" + metaFile.getName() + "]", true);
    1.92 -                // Ensure this I/O output pane is visible.
    1.93 -                io.select();
    1.94 -                // now writes to the output pane.
    1.95 -                OutputWriter writer = io.getOut();
    1.96 -                writer.println(byteArrOS.toString());
    1.97 -                try {
    1.98 -                    byteArrOS.close();
    1.99 -                } catch (IOException ex) {
   1.100 -                    // ignore
   1.101 -                }
   1.102 +        displayVerboseMessages(isVerbose, byteArrOS, logHandler, logger4Verbose, origLevel);
   1.103 +    }
   1.104 +    
   1.105 +    private void displayVerboseMessages(boolean isVerbose,
   1.106 +            ByteArrayOutputStream byteArrOS,
   1.107 +            Handler logHandler,
   1.108 +            Logger logger4Verbose,
   1.109 +            Level origLevel) {
   1.110 +        if (!isVerbose || logHandler == null || byteArrOS == null 
   1.111 +                || logger4Verbose == null) {
   1.112 +            return;
   1.113 +        }
   1.114 +        // flush the Handler.
   1.115 +        logHandler.flush();
   1.116 +        InputOutput io = IOProvider.getDefault().getIO("Encoder Test ["
   1.117 +                + metaFile.getName() + "]", true);
   1.118 +        // Ensure this I/O output pane is visible.
   1.119 +        io.select();
   1.120 +        // now writes to the output pane.
   1.121 +        OutputWriter writer = io.getOut();
   1.122 +        writer.println(byteArrOS.toString());
   1.123 +        try {
   1.124 +            byteArrOS.close();
   1.125 +        } catch (IOException ex) {
   1.126 +            // ignore
   1.127 +        }
   1.128  
   1.129 -                // make sure to close the writer of I/O output pane.
   1.130 -                writer.close();
   1.131 -                // close and remove the Handler.
   1.132 -                logHandler.close();
   1.133 -                logger4Verbose.removeHandler(logHandler);
   1.134 -                // reset to its original logging level
   1.135 -                logger4Verbose.setLevel(origLevel);
   1.136 -            }
   1.137 -        }
   1.138 +        // make sure to close the writer of I/O output pane.
   1.139 +        writer.close();
   1.140 +        // close and remove the Handler.
   1.141 +        logHandler.close();
   1.142 +        logger4Verbose.removeHandler(logHandler);
   1.143 +        // reset to its original logging level
   1.144 +        logger4Verbose.setLevel(origLevel);
   1.145      }
   1.146  }