Community
Participate
Working Groups
M8 Added two methods to a CU that had errors. Got the ImageBuilderInternalException shown below. Turns out that one of the dependent projects has folders linked to a network drive. The network folder was removed. The builder should handle missing linked folders just like it does out of sync folders (it does show a nice error message for those, right?). org.eclipse.core.internal.resources.ResourceException: Problems encountered while copying resources. at org.eclipse.core.internal.localstore.FileSystemResourceManager.copy(FileSystemResourceManager.java:142) at org.eclipse.core.internal.resources.Resource.copy(Resource.java:524) at org.eclipse.jdt.internal.core.builder.BatchImageBuilder$4.visit(BatchImageBuilder.java:208) at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:53) at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:76) at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:80) at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:119) at org.eclipse.core.internal.resources.Resource.accept(Resource.java:63) at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.copyExtraResourcesBack(BatchImageBuilder.java:180) at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.cleanOutputFolders(BatchImageBuilder.java:123) at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:35) at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:213) at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:141) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:504) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:610) at org.eclipse.core.runtime.Platform.run(Platform.java:521) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:137) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:224) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:165) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:194) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:610) at org.eclipse.core.runtime.Platform.run(Platform.java:521) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:242) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:270) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:168) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62)
Didn't a problem marker show up for this? We dump the stack trace to the log so we can track CoreExceptions... its not walkback per se, since we wrap CoreExceptions.
There was a marker that said "Problems encountered while copying resources". Can you show a more specific error message in this scenario? It's not very helpful in locating the cause of the problem.
The error message comes from Platform/Core.
That message comes from the Multistatus object in the CoreException. Its children contain more specific error messages. Kent, do you create markers for children of a multi-status object?
We are now displaying the message from the first child of the Multi-status. We do not have room for all the children but the first one will give the user a better idea of what went wrong than the previous generic message.
Can you create one problem marker for each child instead of one for the toplevel multistatus? I think that would be a more general solution.
The problem is its the same operation on each subdirectory/file & so the same error/message. Generating 100's of errors instead of 1 doesn't help the user focus on what went wrong.
Sounds ok for this scenario although I don't know what the status children look like. I'm wondering if core may give you other multi status objects that actually return useful information in all status children.
Verified in 200405180816 that ImageBuilderInternalException.getLocalizedMessage returns the message of the first child in case of a Multistatus.
*** Bug 58589 has been marked as a duplicate of this bug. ***