1 22 23 package gnu.mail.util; 24 25 import java.io.BufferedInputStream ; 26 import java.io.FilterInputStream ; 27 import java.io.InputStream ; 28 import java.io.IOException ; 29 30 import javax.mail.Session ; 31 32 44 public class MessageInputStream 45 extends LineInputStream 46 { 47 50 public MessageInputStream (InputStream in) 51 { 52 super (new DotTerminatedInputStream (in)); 53 } 54 55 63 public static void logClass (InputStream stream) 64 { 65 Class thisClass = stream.getClass (); 66 logClass (thisClass.toString() + " classes and superclasses:", stream); 67 } 68 69 77 public static void logClass (String message, 78 InputStream stream) 79 { 80 Session.log (message); 81 82 Class thisClass = stream.getClass (); 83 84 if (stream instanceof FilterInputStream ) { 85 86 try { 87 final String FilterInputClass = "class java.io.FilterInputStream"; 89 Class superClass = thisClass; 90 while (! superClass.toString ().equals (FilterInputClass)) { 91 92 superClass = superClass.getSuperclass (); 93 Session.log (" " + superClass.toString()); 94 } 95 96 java.lang.reflect.Field inField = superClass.getDeclaredField("in"); 98 InputStream innerStream = (java.io.InputStream ) inField.get(stream); 99 Session.log (thisClass.toString() + ".in follows"); 100 101 logClass (innerStream); 103 } 104 catch (Exception e) { 105 Session.log (thisClass.toString() + ": " + e); 106 e.printStackTrace (); 107 } 108 } 109 else { 110 Session.logClass (stream); 111 } 112 } 113 } 114 | Popular Tags |