[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Intermittent adapter problems

Hi Thomas,

Thomas Hallgren wrote:
<stuff deleted>
Intermittently, and so far seemingly without any pattern, when get a null value at times when other code in this bundle call the createRetrieveFileTransfer() method.


So far I've been unable to find the reason. Have you seen anything like this before?

No, not really.

Do you have any ideas what could be causing this?

One thought is that perhaps it's the platform IAdapterManager service not getting initialized for some reason. (i.e. environment, start sequence, or ?) Because the BaseContainer returned from createContainer() has this as it's impl of getAdapter:


public Object getAdapter(Class serviceType) {
if (serviceType == null)
return null;
if (serviceType.isInstance(this)) {
return this;
}
IAdapterManager adapterManager = ECFPlugin.getDefault().getAdapterManager();
return (adapterManager == null) ? null : adapterManager.loadAdapter(this, serviceType.getName());
}


For the file transfer provider an adapter manager is registered with the platform via this markup:

<extension
point="org.eclipse.core.runtime.adapters">
<factory
adaptableType="org.eclipse.ecf.core.BaseContainer"
class="org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapterFactory">
<adapter type="org.eclipse.ecf.filetransfer.IRetrieveFileTransferContainerAdapter"/>
</factory>
</extension>


If, for whatever reason the adapterManager is not initialized then the getAdapterManager would return null. Is there possibly some race condition in the initialization of the platform adapter manager?

What version of Eclipse are you using? I think I recall something about Eclipse 3.3 platform having a bug in adapter manager initialization, but I can't recall/find the bug at the moment. (but of course if this is Eclipse 3.4 then this is not what's going on).

Scott



Thanks, Thomas Hallgren

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