Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [wtp-dev] M5 -- Manual Test -- Client Access Exception of type DANGLING_REFERENCE


Hi Thomas,

Thanks for the trace - this is good information (the second dump) that includes the original access from the application deployable.

at org.eclipse.wst.common.componentcore.internal.StructureEdit.getStructureEditForRead(StructureEdit.java:113)
        at org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent.getComponentTypeId(VirtualComponent.java:89)
        at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployableFactory.createModuleDelegates(EnterpriseApplicationDeployableFactory.java:65)

Do you have a repeatable scenario?  It does seem to be random, and possibly a threading issue - We already have a defect open regarding the use of a WeakHashMap especially in the case for read-only model access.
It may be worth adding this support sooner, rather than chasing down this issue.

Thanks - Chuck

Rational J2EE Tooling Team Lead
IBM Software Lab - Research Triangle Park, NC
Email:  cbridgha@xxxxxxxxxx
Phone: 919-254-1848 (T/L: 444)



"Thomas Yip" <tyip@xxxxxxx>
Sent by: wtp-dev-bounces@xxxxxxxxxxx

06/30/2005 05:25 PM

Please respond to
"General discussion of project-wide or architectural issues."

To
"General discussion of project-wide or architectural issues." <wtp-dev@xxxxxxxxxxx>
cc
Subject
[wtp-dev] M5 -- Manual Test -- Client Access Exception of type        DANGLING_REFERENCE





I got a good number of
   org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistryException
   This exception was generated to indicate an invalid usage of reference counts. Please examine the stack trace.
   Client Access Exception of type DANGLING_REFERENCE
 
If I do enough project creation and publishing was done.
After I got the first one, most modules related operations failed (like creating new WebModule, publish existing module, etc.)
 
So, it can be a critical bug, unless I am proved doing something wrong.
 
 
 
Unlike Konstantin, I do not use EARArtifactEdit directly.
 
Seem like EnterpriseApplicationDeployable.getModules() indirectly use it.
 
            at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployable.getModules(EnterpriseApplicationDeployable.java:54)
            at com.bea.wlw.server.internal.core.WeblogicServer.getChildModules(WeblogicServer.java:466)
 
 
 
Please advise!
 
 
 
Thanks,
 
 
Thomas
 
 
 
 
----------- Affected code: -------------
 
    public IModule[] getChildModules(IModule[] modulePath) {
        IModule module = modulePath[modulePath.length-1];
        String moduleTypeId = module.getModuleType().getId();
 
        // return itself for top level module
        IEnterpriseApplication ea = (IEnterpriseApplication)module.loadAdapter(IEnterpriseApplication.class, null);
                        if (ea==null)
            return EMPTY_MODULES;
       
        IModule[] nested = ea.getModules();
        if (nested==null || nested.length==0)
            return EMPTY_MODULES;
       
        ArrayList list = new ArrayList();
        for (IModule mod: nested) {
            list.add(mod);
        }
        return (IModule[])list.toArray(new IModule[list.size()]);
    }
 
 



From: wtp-dev-bounces@xxxxxxxxxxx [mailto:wtp-dev-bounces@xxxxxxxxxxx] On Behalf Of Konstantin Komissarchik
Sent:
Wednesday, June 29, 2005 1:39 PM
To:
General discussion of project-wide or architectural issues.
Subject:
RE: [wtp-dev] Client Access Exception of type DANGLING_REFERENCE

 
Thanks! That was it. Maybe the error could be made more descriptive? Something like…
 
 “Attempted to open an already open artifact edit. Make sure to call the dispose method when done editing.”
 
As it stands right now, it wasn’t clear to me what was going on despite the fact that I knew about the dispose method.
 
Just a thought…
 
- Konstantin
 



From: wtp-dev-bounces@xxxxxxxxxxx [mailto:wtp-dev-bounces@xxxxxxxxxxx] On Behalf Of John Lanuti
Sent:
Wednesday, June 29, 2005 11:53 AM
To:
General discussion of project-wide or architectural issues.
Subject:
Re: [wtp-dev] Client Access Exception of type DANGLING_REFERENCE

 

Konstantin,


When you access an artifact edit, you must release it.  So, anytime you want to get an artifact edit, you want a try finally block

like the following:


ArtifactEdit edit= null

try  {

edit = EARArtifactEdit.getEARArtifactEditForWrite( earhandle );

//do stuff

} finally {

  if (edit !=null)

      edit.dipose()

}


That will prevent the client access exception.


Hope that helps,


John Lanuti
Software Engineer, IBM Rational
jlanuti@xxxxxxxxxx
t/l 441-7861

"You see this wandering soul, he's never gonna stop, because he loves and he feels this world can grow.
He's not afraid of feeling, he loves what he believes, he feels, and he grows."  - Of A Revolution

"Konstantin Komissarchik" <kosta@xxxxxxx>
Sent by: wtp-dev-bounces@xxxxxxxxxxx

06/29/2005 01:40 PM


Please respond to
"General discussion of project-wide or architectural issues."


To
"General discussion of project-wide or architectural issues." <wtp-dev@xxxxxxxxxxx>
cc
 
Subject
[wtp-dev] Client Access Exception of type DANGLING_REFERENCE

 


   





Hi,

 
I keep getting this:

 
org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistryException

This exception was generated to indicate an invalid usage of reference counts. Please examine the stack trace.

Client Access Exception of type DANGLING_REFERENCE

 
When I make the following call:

 
EARArtifactEdit.getEARArtifactEditForWrite( earhandle );

 
Am I doing something wrong? I am using the 6/17 i-build. Is this something that was fixed in a later i-build?

 
Thanks,

 
- Konstantin_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev

org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistryException
This exception was generated to indicate an invalid usage of reference counts. Please examine the stack trace.
 Client Access Exception of type DANGLING_REFERENCE 

org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistryException
This exception was generated to indicate an invalid usage of reference counts. Please examine the stack trace.
 Client Access Exception of type DANGLING_REFERENCE 

	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.complain(ClientAccessRegistry.java:86)
	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.complain(ClientAccessRegistry.java:81)
	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.access(ClientAccessRegistry.java:42)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModel.access(EditModel.java:926)
	at org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContext.getEditModelForRead(EMFWorkbenchContext.java:124)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:49)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:39)
	at org.eclipse.wst.common.componentcore.ModuleCoreNature.getModuleStructuralModelForRead(ModuleCoreNature.java:228)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.<init>(StructureEdit.java:360)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.getStructureEditForRead(StructureEdit.java:113)
	at org.eclipse.wst.common.componentcore.internal.resources.FlexibleProject.getComponents(FlexibleProject.java:37)
	at org.eclipse.jst.j2ee.application.internal.operations.J2EEComponentCreationDataModelProvider.getEARPropertyDescriptor(J2EEComponentCreationDataModelProvider.java:342)
	at org.eclipse.jst.j2ee.application.internal.operations.J2EEComponentCreationDataModelProvider.getValidPropertyDescriptors(J2EEComponentCreationDataModelProvider.java:170)
	at org.eclipse.jst.j2ee.internal.web.archive.operations.WebComponentCreationDataModelProvider.getValidPropertyDescriptors(WebComponentCreationDataModelProvider.java:299)
	at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.getValidPropertyDescriptors(DataModelImpl.java:314)
	at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper.setWidgetValue(DataModelSynchHelper.java:291)
	at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper.synchUIWithModel(DataModelSynchHelper.java:210)
	at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper.synchComposite(DataModelSynchHelper.java:428)
	at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper.synchCombo(DataModelSynchHelper.java:465)
	at org.eclipse.jst.j2ee.internal.wizard.ServerEarAndStandaloneGroup.createEarAndStandaloneComposite(ServerEarAndStandaloneGroup.java:107)
	at org.eclipse.jst.j2ee.internal.wizard.ServerEarAndStandaloneGroup.buildComposites(ServerEarAndStandaloneGroup.java:59)
	at org.eclipse.jst.j2ee.internal.wizard.ServerEarAndStandaloneGroup.<init>(ServerEarAndStandaloneGroup.java:51)
	at org.eclipse.jst.j2ee.internal.wizard.J2EEComponentCreationWizardPage.createServerEarAndStandaloneGroup(J2EEComponentCreationWizardPage.java:312)
	at org.eclipse.jst.j2ee.internal.wizard.J2EEComponentCreationWizardPage.addToAdvancedComposite(J2EEComponentCreationWizardPage.java:288)
	at org.eclipse.jst.servlet.ui.internal.wizard.WebComponentCreationWizardPage.addToAdvancedComposite(WebComponentCreationWizardPage.java:57)
	at org.eclipse.jst.j2ee.internal.wizard.J2EEComponentCreationWizardPage.createAdvancedComposite(J2EEComponentCreationWizardPage.java:206)
	at org.eclipse.jst.j2ee.internal.wizard.J2EEComponentCreationWizardPage.createTopLevelComposite(J2EEComponentCreationWizardPage.java:171)
	at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage.createControl(DataModelWizardPage.java:91)
	at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizard.createPageControls(DataModelWizard.java:83)
	at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:611)
	at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:502)
	at org.eclipse.jface.window.Window.create(Window.java:418)
!!
org.eclipse.wst.common.internal.emfworkbench.edit.Snapshot: IWAE0016E Locking Insurance Stack Trace
	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.access(ClientAccessRegistry.java:34)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModel.access(EditModel.java:926)
	at org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContext.getEditModelForRead(EMFWorkbenchContext.java:124)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:49)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:39)
	at org.eclipse.wst.common.componentcore.ModuleCoreNature.getModuleStructuralModelForRead(ModuleCoreNature.java:228)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.<init>(StructureEdit.java:360)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.getStructureEditForRead(StructureEdit.java:113)
	at org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent.getComponentTypeId(VirtualComponent.java:89)
	at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployableFactory.createModuleDelegates(EnterpriseApplicationDeployableFactory.java:65)
	at org.eclipse.jst.j2ee.internal.deployables.J2EEDeployableFactory.createModules(J2EEDeployableFactory.java:104)
	at org.eclipse.jst.j2ee.internal.deployables.J2EEDeployableFactory.createModules(J2EEDeployableFactory.java:89)
	at org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate.addModules(ProjectModuleFactoryDelegate.java:297)
	at org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate.cacheModules(ProjectModuleFactoryDelegate.java:83)
	at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployableFactory.getModules(EnterpriseApplicationDeployableFactory.java:86)
	at org.eclipse.wst.server.core.internal.ModuleFactory.getModules(ModuleFactory.java:129)
	at org.eclipse.wst.server.core.ServerUtil.getModules(ServerUtil.java:255)
	at org.eclipse.wst.server.core.ServerUtil.getModules(ServerUtil.java:53)
	at org.eclipse.jst.j2ee.internal.deployables.FlexibleProjectServerUtil.getModules(FlexibleProjectServerUtil.java:72)
	at org.eclipse.jst.j2ee.internal.deployables.FlexibleProjectServerUtil.getModule(FlexibleProjectServerUtil.java:34)
	at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployable.getModules(EnterpriseApplicationDeployable.java:58)
	at com.bea.wlw.server.internal.core.WeblogicServer.getChildModules(WeblogicServer.java:466)
	at org.eclipse.wst.server.core.internal.Server.getChildModules(Server.java:1757)
	at org.eclipse.wst.server.core.internal.Server.visitModule(Server.java:1911)
	at org.eclipse.wst.server.core.internal.Server.visit(Server.java:1892)
	at org.eclipse.wst.server.core.internal.Server.getAllModules(Server.java:745)




org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistryException
This exception was generated to indicate an invalid usage of reference counts. Please examine the stack trace.
 Client Access Exception of type DANGLING_REFERENCE 

org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistryException
This exception was generated to indicate an invalid usage of reference counts. Please examine the stack trace.
 Client Access Exception of type DANGLING_REFERENCE 

	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.complain(ClientAccessRegistry.java:86)
	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.complain(ClientAccessRegistry.java:81)
	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.access(ClientAccessRegistry.java:42)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModel.access(EditModel.java:926)
	at org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContext.getEditModelForRead(EMFWorkbenchContext.java:124)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:49)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:39)
	at org.eclipse.wst.common.componentcore.ModuleCoreNature.getModuleStructuralModelForRead(ModuleCoreNature.java:228)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.<init>(StructureEdit.java:360)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.getStructureEditForRead(StructureEdit.java:113)
	at org.eclipse.wst.common.componentcore.internal.builder.ComponentStructuralBuilderDependencyResolver.build(ComponentStructuralBuilderDependencyResolver.java:51)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:593)
	at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:168)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:202)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:231)
	at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:234)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:253)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:282)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:139)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:200)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)
!!
org.eclipse.wst.common.internal.emfworkbench.edit.Snapshot: IWAE0016E Locking Insurance Stack Trace
	at org.eclipse.wst.common.internal.emfworkbench.edit.ClientAccessRegistry.access(ClientAccessRegistry.java:34)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModel.access(EditModel.java:926)
	at org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContext.getEditModelForRead(EMFWorkbenchContext.java:124)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:49)
	at org.eclipse.wst.common.internal.emfworkbench.integration.EditModelNature.getEditModelForRead(EditModelNature.java:39)
	at org.eclipse.wst.common.componentcore.ModuleCoreNature.getModuleStructuralModelForRead(ModuleCoreNature.java:228)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.<init>(StructureEdit.java:360)
	at org.eclipse.wst.common.componentcore.internal.StructureEdit.getStructureEditForRead(StructureEdit.java:113)
	at org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent.getComponentTypeId(VirtualComponent.java:89)
	at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployableFactory.createModuleDelegates(EnterpriseApplicationDeployableFactory.java:65)
	at org.eclipse.jst.j2ee.internal.deployables.J2EEDeployableFactory.createModules(J2EEDeployableFactory.java:104)
	at org.eclipse.jst.j2ee.internal.deployables.J2EEDeployableFactory.createModules(J2EEDeployableFactory.java:89)
	at org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate.addModules(ProjectModuleFactoryDelegate.java:297)
	at org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate.cacheModules(ProjectModuleFactoryDelegate.java:83)
	at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployableFactory.getModules(EnterpriseApplicationDeployableFactory.java:86)
	at org.eclipse.wst.server.core.internal.ModuleFactory.getModules(ModuleFactory.java:129)
	at org.eclipse.wst.server.core.ServerUtil.getModules(ServerUtil.java:255)
	at org.eclipse.wst.server.core.ServerUtil.getModules(ServerUtil.java:53)
	at org.eclipse.jst.j2ee.internal.deployables.FlexibleProjectServerUtil.getModules(FlexibleProjectServerUtil.java:72)
	at org.eclipse.jst.j2ee.internal.deployables.FlexibleProjectServerUtil.getModule(FlexibleProjectServerUtil.java:34)
	at org.eclipse.jst.j2ee.internal.deployables.EnterpriseApplicationDeployable.getModules(EnterpriseApplicationDeployable.java:58)
	at com.bea.wlw.server.internal.core.WeblogicServer.getChildModules(WeblogicServer.java:466)
	at org.eclipse.wst.server.core.internal.Server.getChildModules(Server.java:1757)
	at org.eclipse.wst.server.core.internal.Server.visitModule(Server.java:1911)
	at org.eclipse.wst.server.core.internal.Server.visit(Server.java:1892)
	at org.eclipse.wst.server.core.internal.Server.getAllModules(Server.java:745)

Back to the top