From 538ab026d392dfc778cacc1fa848bb9ce62db055 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Mon, 28 Jan 2013 13:50:12 -0800 Subject: [PATCH] 377906 debug --- .../ajdt/internal/core/builder/AjState.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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); } } -- 2.39.5