From: Andy Clement Date: Mon, 28 Jan 2013 21:50:12 +0000 (-0800) Subject: 377906 debug X-Git-Tag: V1_7_2~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=538ab026d392dfc778cacc1fa848bb9ce62db055;p=aspectj.git 377906 debug --- diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java index e545814e9..6cf7d2712 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java @@ -13,7 +13,9 @@ package org.aspectj.ajdt.internal.core.builder; +import java.io.DataOutputStream; import java.io.File; +import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; import java.lang.ref.ReferenceQueue; @@ -1497,6 +1499,22 @@ public class AjState implements CompilerConfigurationChangeFlags, TypeDelegateRe this.resolvedTypeStructuresFromLastBuild.put(thisTime.getClassName(), new CompactTypeStructureRepresentation( reader, isAspect)); } catch (ClassFormatException cfe) { + try { + String s = System.getProperty("aspectj.debug377906","false"); + if (s.equalsIgnoreCase("true")) { + String location = System.getProperty("java.io.tmpdir","/tmp"); + String name = thisTime.getClassName(); + File f = File.createTempFile(location+File.separator+name, ".class"); + StringBuilder debug = new StringBuilder(); + debug.append("Debug377906: Dumping class called "+name+" to "+f.getName()+" size:"+thisTime.getBytes().length); + DataOutputStream dos = new DataOutputStream(new FileOutputStream(f)); + dos.write(thisTime.getBytes()); + dos.close(); + throw new BCException(debug.toString(), cfe); + } + } catch (Exception e) { + e.printStackTrace(); + } throw new BCException("Unexpected problem processing class", cfe); } }