| Hi all, Scott tried to provide a fix for this bug. He commented on the
      bug that the fix should be available at http://download.eclipse.org/rt/ecf/snapshot/site.p2/?d but it is not. I need version 4.2.200.qualifier of bundle
      
      org.eclipse.ecf.provider.remoteservice. Maybe someone familiar with the ecf build could point me to the
      download location for this fix!? I'm a little in a hurry for that fix, since i will be away for
      two weeks starting at tomorrow ;)
 Thanks. Bye Peter
 
 Am 17.03.2017 um 08:20 schrieb Peter
      Hermsdorf:
 
      
      Hi Scott, created https://bugs.eclipse.org/bugs/show_bug.cgi?id=513791. I'm wondering that no one else stumbled upon this issue .... Thanks for your help! Bye Peter
 
 Am 17.03.2017 um 05:14 schrieb Scott
        Lewis:
 
        Hi Peter,
 This seems to be a bug.   Please open a bug report with the
          info you've already provided, and I will fix in time for our
          next minor release (3.13.6).   I've already pretty much
          written the fix, so this can all go quick.
 
 Thanks,
 
 Scott
 
 On 3/16/2017 4:40 AM, Peter Hermsdorf wrote:
 
 
          I now removed our custom code - I don't think it has
            something to do with this issue. current state: on every client connect one ore more (depending on the
            number of published services) "ID targetContainerID" Objects
            are added to a List in the Map
            localRegistryUnregistrationTargets in the
            RegistrySharedObject on the Server Side. the call stack is: Daemon Thread
            [org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter:run]
            (Suspended (breakpoint at line 1633 in
            RegistrySharedObject))    owns: RemoteServiceRegistryImpl  (id=252)
 RegistrySharedObject.addTargetForUnregister(RemoteServiceRegistrationImpl,
            ID) line: 1633
 RegistrySharedObject.sendAddRegistrations(ID, Integer,
            RemoteServiceRegistrationImpl[]) line: 1253
 RegistrySharedObject.sendRegistryUpdate(ID, Integer)
            line: 775
 RegistrySharedObject.handleRegistryUpdateRequest(ID,
            Integer) line: 1128
 GeneratedMethodAccessor35.invoke(Object, Object[]) line:
            not available
 DelegatingMethodAccessorImpl.invoke(Object, Object[])
            line: 43
 Method.invoke(Object, Object...) line: 498
 SharedObjectMsg.doInvoke(Object) line: 323
 SharedObjectMsg.invoke(Object) line: 290
 RegistrySharedObject.handleSharedObjectMsg(SharedObjectMsg)
            line: 1843
 RegistrySharedObject(BaseSharedObject).handleSharedObjectMsg(ID,
            SharedObjectMsg) line: 467
 RegistrySharedObject(BaseSharedObject).handleSharedObjectMsgEvent(ISharedObjectMessageEvent)
            line: 457
 SharedObjectMsgEventProcessor.processSharedObjectMsgEvent(ISharedObjectMessageEvent)
            line: 41
 SharedObjectMsgEventProcessor.processEvent(Event) line:
            36
 RegistrySharedObject(BaseSharedObject).fireEventProcessors(Event)
            line: 192
 RegistrySharedObject(BaseSharedObject).handleEvent(Event)
            line: 126
 SOWrapper.svc(Event) line: 182
 SOWrapper$2.run() line: 138
 Thread.run() line: 745
 
 I don't see any code that removed entries from the List in
            Map when the Client disconnects. So the List (and with it
            the Map localRegistryUnregistrationTargets) grows until
            there is no memory left. Any help on this topic would greatly be appreciated. thx Peter
 
 Am 15.03.2017 um 15:52 schrieb
            Peter Hermsdorf:
 Hi all, _______________________________________________
 sorry for double posting - hotkeys are evil sometimes...
 
 for custom error handling on server side (please see
            previous discussion on this list as of 27.06.2014 with the
            subject "Exception Handling of Remote Calls") we use a
            derived HostContainerSelector and a derived
            RegistrySharedObject. See code below.
 
 The problem seems to be that we create a instance of
            RegistrySharedObject (P4RegistrySharedObject()) wich gets
            added to
org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject.localRegistryUnregistrationTargets
            but "no one" calls
org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject.sendUnregister(RemoteServiceRegistrationImpl)
            when the remote client disconnects.
 So the Map grows over time and finally the server run's into
            an OutOfMemory Exception after some time.
 
 Any suggestions where the Problem is or what is missing from
            the implementation?
 
 thanks in advance!
 
 Best Regards, Peter
 
 BTW: we are running ECF 3.13.1.v20160405-1820
 
 extended HostContainerSelector:
 
 @Override
 protected IRemoteServiceContainer createRSContainer(
 @SuppressWarnings("rawtypes") final
            ServiceReference serviceReference, final Map<String,
            Object> properties,
 final ContainerTypeDescription
            containerTypeDescription) throws SelectContainerException {
 final ISharedObjectContainer container =
            (ISharedObjectContainer) createContainer(serviceReference,
            properties,
 containerTypeDescription);
 final ID adapterID =
IDFactory.getDefault().createStringID(IRemoteServiceContainerAdapter.class.getName());
 final ISharedObjectManager manager =
            container.getSharedObjectManager();
 ISharedObject so =
            manager.getSharedObject(adapterID);
 if (so == null) {
 so = new P4RegistrySharedObject();
 try {
 manager.addSharedObject(adapterID, so,
            null);
 } catch (final SharedObjectAddException e) {
 throw new P4ServerException(e);
 }
 }
 return new RemoteServiceContainer(container,
            (IRemoteServiceContainerAdapter) so);
 }
 
 
 P4RegistrySharedObject extends RegistrySharedObject and just
            implements a custom getSerializableException method - since
            the original one is private, it's a copy of the 
            executeRequest method.
 
 _______________________________________________
 ecf-dev mailing list
 ecf-dev@xxxxxxxxxxx
 To change your delivery options, retrieve your password, or
            unsubscribe from this list, visit
 https://dev.eclipse.org/mailman/listinfo/ecf-dev
 
 ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev 
 
 
 _______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev 
 |