From 31c2e3f98737cb9cb2923040d2fd12784785a671 Mon Sep 17 00:00:00 2001 From: avasseur Date: Wed, 19 Oct 2005 09:51:17 +0000 Subject: [PATCH] fix for odd NPE - don't know what this readAspect goal is (javadoc welcome) and thus if my fix is ok --- .../loadtime/ClassLoaderWeavingAdaptor.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java b/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java index f314e19d5..1698f9d7a 100644 --- a/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java +++ b/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java @@ -416,9 +416,14 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor { * @return the bytecode representation of the aspect */ private String readAspect(String name, ClassLoader loader){ - try { + if (true) return name+"@"+(loader==null?"0":loader.hashCode()); + // FIXME AV - ?? can someone tell me why we read the whole bytecode + // especially one byte by one byte + // also it does some NPE sometime (see AtAjLTW "LTW Decp2") + InputStream is = null; + try { String result = ""; - InputStream is = loader.getResourceAsStream(name.replace('.','/')+".class"); + is = loader.getResourceAsStream(name.replace('.','/')+".class"); int b = is.read(); while(b!=-1){ result = result + b; @@ -429,11 +434,13 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor { } catch (IOException e) { e.printStackTrace(); return ""; - }catch (NullPointerException e) { + } catch (NullPointerException e) { //probably tried to read in a "non aspect @missing@" aspect System.err.println("ClassLoaderWeavingAdaptor.readAspect() name: "+name+" Exception: "+e); return ""; - } + } finally { + try {is.close();} catch (Throwable t) {;} + } } } -- 2.39.5