Bug 3291 - Exception adding .class file to folder in package view (1GEUF3I)
Summary: Exception adding .class file to folder in package view (1GEUF3I)
Status: RESOLVED DUPLICATE of bug 3344
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0   Edit
Hardware: All All
: P2 normal (vote)
Target Milestone: 2.0 M3   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-10-10 22:52 EDT by Dani Megert CLA
Modified: 2002-02-03 10:54 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dani Megert CLA 2001-10-10 22:52:41 EDT
1. Start empty Eclipse
	2. Create Java project
	3. In the packages view add a normal folder
	4. Add x.txt	==> visible, folder icon switches from package to folder
	5. Add testInput.class ==> folder switches back to package and .class file not visible
		Exception is written to console (see below)

	Maybe the UI should not allow to add .class files if they can't be
	handled later.

	Note that with the default setup (proj = src = bin) it will not be possible
	to have normal folders (i.e. which aren't on the classpath). This means
	it is not possible to write a program that uses .java or .class only as
	input.

Java Model Exception: Java Model Status [test does not exist.]
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java, Compiled Code)
        at java.lang.Exception.<init>(Exception.java, Compiled Code)
        at org.eclipse.core.runtime.CoreException.<init>(CoreException.java, Compiled Code)
        at org.eclipse.jdt.core.JavaModelException.<init>(JavaModelException.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaElement.getRawInfo(JavaElement.java, Compiled Code)
        at org.eclipse.jdt.internal.core.BinaryType.getSuperclassName(BinaryType.java:206)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.subtypesIncludeSupertypeOf(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByType(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByPackageFragment(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByPackageFragmentRoot(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByJavaProject(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByJavaModel(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaModelManager.fire(JavaModelManager.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaModelManager.resourceChanged(JavaModelManager.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java, Compiled Code)
        at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java, Compiled Code)
        at org.eclipse.core.runtime.Platform.run(Platform.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:34)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:48)
        at org.eclipse.core.internal.resources.Workspace.broadcastChanges(Workspace.java, Compiled Code)
        at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java, Compiled Code)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1188)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:78)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:98)
Java Model Exception: Java Model Status [test does not exist.]
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java, Compiled Code)
        at java.lang.Exception.<init>(Exception.java, Compiled Code)
        at org.eclipse.core.runtime.CoreException.<init>(CoreException.java, Compiled Code)
        at org.eclipse.jdt.core.JavaModelException.<init>(JavaModelException.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaElement.getRawInfo(JavaElement.java, Compiled Code)
        at org.eclipse.jdt.internal.core.BinaryType.getSuperclassName(BinaryType.java:206)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.subtypesIncludeSupertypeOf(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByType(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByPackageFragment(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByPackageFragmentRoot(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByJavaProject(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByJavaModel(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaModelManager.fire(JavaModelManager.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaModelManager.resourceChanged(JavaModelManager.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java, Compiled Code)
        at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java, Compiled Code)
        at org.eclipse.core.runtime.Platform.run(Platform.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:34)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:48)
        at org.eclipse.core.internal.resources.Workspace.broadcastChanges(Workspace.java, Compiled Code)
        at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java, Compiled Code)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1188)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:78)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:98)
Java Model Exception: Java Model Status [test does not exist.]
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java, Compiled Code)
        at java.lang.Exception.<init>(Exception.java, Compiled Code)
        at org.eclipse.core.runtime.CoreException.<init>(CoreException.java, Compiled Code)
        at org.eclipse.jdt.core.JavaModelException.<init>(JavaModelException.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaElement.getRawInfo(JavaElement.java, Compiled Code)
        at org.eclipse.jdt.internal.core.BinaryType.getSuperclassName(BinaryType.java:206)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.subtypesIncludeSupertypeOf(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByType(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByPackageFragment(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByPackageFragmentRoot(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByJavaProject(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByChildren(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByJavaModel(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaModelManager.fire(JavaModelManager.java, Compiled Code)
        at org.eclipse.jdt.internal.core.JavaModelManager.resourceChanged(JavaModelManager.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java, Compiled Code)
        at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java, Compiled Code)
        at org.eclipse.core.runtime.Platform.run(Platform.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java, Compiled Code)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:34)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:48)
        at org.eclipse.core.internal.resources.Workspace.broadcastChanges(Workspace.java, Compiled Code)
        at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java, Compiled Code)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1188)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:78)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:98)


NOTES:

GDA (6/5/01 11:09:21 AM)
	Recommend to fix.

JW (6/5/01 5:35:00 PM) OK to investigate.

EG (6/6/2001 3:50:52 AM)
	Step 5 was done by using the basic New File wizard. This wizard is part of the workbench and doesn't
	know about Java. The wizard has to be available in the Java UI otherwise users can't create non Java
	resources like .txt files. This means the UI can't protect the user from this case.
	The .class file created in step 5 is likely incomplete and the JCORE should check for this.
	Moving to JCORE, suggest fix if easy.

JBL (9/7/2001 12:30:32 PM)
	No exceptions are logged to the console in 135.

JBL (9/7/2001 1:08:54 PM)
	Was not able to reproduce with the above steps in 118.

JBL (9/7/2001 3:53:52 PM)
	Sent e-mail to DM.

DM (9/7/01 7:06:47 PM)
	In order to see the error you must start Eclipse with -consoleLog or start Eclipse with a batch file 
	to have a console which shows the error. Unfortunately the error is not written to the log.

JBL (9/10/2001 3:01:10 PM)
	Exception is caught and hidden by UI. 
	ClassFile.isClass() throws a JavaModelException if the .class file is not well formed (as specified in IClassFile).
	Problem is more that ClassFile.exists() returns false. In this case, it should be considered as a 
	non-java resource.
Comment 1 DJ Houghton CLA 2001-10-29 17:07:17 EST
PRODUCT VERSION:
	0.118


Comment 2 Philipe Mulet CLA 2002-02-02 07:07:22 EST
If project==src, then this is it, no classfile can be treated as input in this 
project. And the file should be ignored (not even a non-java resource, since 
all generated classfiles will be in the same boat).

Comment 3 Jerome Lanneluc CLA 2002-02-03 10:54:26 EST
When proj=src=bin, .class files addition/deletion are not reported by the delta 
processor any longer (see bug 3344). As a result, we don't try to find out if 
the hierarchy is affected. The .class file will not appear in the package view 
either.

*** This bug has been marked as a duplicate of 3344 ***