Lines 354-360
Link Here
|
354 |
// .class file not on classpath, create a new buffer to be nice (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=41444) |
354 |
// .class file not on classpath, create a new buffer to be nice (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=41444) |
355 |
Object info = ((ClassFile) getClassFile()).getBinaryTypeInfo((IFile) getResource()); |
355 |
Object info = ((ClassFile) getClassFile()).getBinaryTypeInfo((IFile) getResource()); |
356 |
IBuffer buffer = openBuffer(null, info); |
356 |
IBuffer buffer = openBuffer(null, info); |
357 |
if (buffer != null) |
357 |
if (buffer != null && !(buffer instanceof NullBuffer)) |
358 |
return buffer; |
358 |
return buffer; |
359 |
if (status.getCode() == IJavaModelStatusConstants.ELEMENT_NOT_ON_CLASSPATH) |
359 |
if (status.getCode() == IJavaModelStatusConstants.ELEMENT_NOT_ON_CLASSPATH) |
360 |
return null; // don't throw a JavaModelException to be able to open .class file outside the classpath (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=138507) |
360 |
return null; // don't throw a JavaModelException to be able to open .class file outside the classpath (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=138507) |
Lines 633-653
Link Here
|
633 |
if (buffer == null) return null; |
633 |
if (buffer == null) return null; |
634 |
BufferManager bufManager = getBufferManager(); |
634 |
BufferManager bufManager = getBufferManager(); |
635 |
bufManager.addBuffer(buffer); |
635 |
bufManager.addBuffer(buffer); |
636 |
|
636 |
|
637 |
// set the buffer source |
637 |
// set the buffer source |
638 |
if (buffer.getCharacters() == null){ |
638 |
if (buffer.getCharacters() == null){ |
639 |
buffer.setContents(contents); |
639 |
buffer.setContents(contents); |
640 |
} |
640 |
} |
641 |
|
641 |
|
642 |
// listen to buffer changes |
642 |
// listen to buffer changes |
643 |
buffer.addBufferChangedListener(this); |
643 |
buffer.addBufferChangedListener(this); |
644 |
|
644 |
|
645 |
// do the source mapping |
645 |
// do the source mapping |
646 |
mapper.mapSource(getType(), contents, info); |
646 |
mapper.mapSource(getType(), contents, info); |
647 |
|
647 |
|
|
|
648 |
return buffer; |
649 |
} else { |
650 |
// create buffer |
651 |
IBuffer buffer = BufferManager.createNullBuffer(this); |
652 |
if (buffer == null) return null; |
653 |
BufferManager bufManager = getBufferManager(); |
654 |
bufManager.addBuffer(buffer); |
655 |
|
656 |
// listen to buffer changes |
657 |
buffer.addBufferChangedListener(this); |
648 |
return buffer; |
658 |
return buffer; |
649 |
} |
659 |
} |
650 |
return null; |
|
|
651 |
} |
660 |
} |
652 |
/* package */ static String simpleName(char[] className) { |
661 |
/* package */ static String simpleName(char[] className) { |
653 |
if (className == null) |
662 |
if (className == null) |