diff options
author | Andy Clement <andrew.clement@gmail.com> | 2013-01-28 13:50:12 -0800 |
---|---|---|
committer | Andy Clement <andrew.clement@gmail.com> | 2013-01-28 13:50:12 -0800 |
commit | 538ab026d392dfc778cacc1fa848bb9ce62db055 (patch) | |
tree | 1636df6ec190a8aed26efde962a9da201f2554d1 | |
parent | 25433050e15c2b6dd2b0af046f7c0c380383667a (diff) | |
download | aspectj-538ab026d392dfc778cacc1fa848bb9ce62db055.tar.gz aspectj-538ab026d392dfc778cacc1fa848bb9ce62db055.zip |
377906 debug
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java | 18 |
1 files changed, 18 insertions, 0 deletions
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); } } |