]> source.dussan.org Git - aspectj.git/commitdiff
330170
authoraclement <aclement>
Thu, 6 Jan 2011 22:20:58 +0000 (22:20 +0000)
committeraclement <aclement>
Thu, 6 Jan 2011 22:20:58 +0000 (22:20 +0000)
asm/src/org/aspectj/asm/AsmManager.java

index 27f8ef2faedeb6fa88e9221302763751a99811b5..20579df407b7dc455ada248acd25b8c6f21d8db9 100644 (file)
@@ -640,7 +640,8 @@ public class AsmManager implements IStructureModel {
                        }
                        StringBuffer qualifiedTypeNameFromHandle = new StringBuffer();
                        if (hasPackage != -1) {
-                               qualifiedTypeNameFromHandle.append(handle.substring(hasPackage + 1, handle.indexOf(HandleProviderDelimiter.CLASSFILE.getDelimiter(), hasPackage)));
+                               int classfileLoc = handle.indexOf(HandleProviderDelimiter.CLASSFILE.getDelimiter(), hasPackage);
+                               qualifiedTypeNameFromHandle.append(handle.substring(hasPackage + 1, classfileLoc));
                                qualifiedTypeNameFromHandle.append('.');
                        }
                        qualifiedTypeNameFromHandle.append(handle.substring(typeLocation + 1));
@@ -649,7 +650,7 @@ public class AsmManager implements IStructureModel {
                        return typename;
                } catch (StringIndexOutOfBoundsException sioobe) {
                        // debug for 330170
-                       System.err.println("Handle processing problem, the handle is: "+handle);
+                       System.err.println("Handle processing problem, the handle is: " + handle);
                        sioobe.printStackTrace(System.err);
                        return "";
                }
@@ -904,7 +905,9 @@ public class AsmManager implements IStructureModel {
         * @return true if the handle contains ';' - the char indicating that it is a phantom handle
         */
        private boolean isPhantomHandle(String handle) {
-               return handle.indexOf(HandleProviderDelimiter.PHANTOM.getDelimiter()) != -1;
+               int phantomMarker = handle.indexOf(HandleProviderDelimiter.PHANTOM.getDelimiter());
+               return phantomMarker != -1
+                               && handle.charAt(phantomMarker - 1) == HandleProviderDelimiter.PACKAGEFRAGMENTROOT.getDelimiter();
        }
 
        /**