Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3F4CF200B6A for ; Mon, 22 Aug 2016 14:17:03 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3DA56160AB3; Mon, 22 Aug 2016 12:17:03 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 830FE160A91 for ; Mon, 22 Aug 2016 14:17:02 +0200 (CEST) Received: (qmail 81963 invoked by uid 500); 22 Aug 2016 12:17:01 -0000 Mailing-List: contact commits-help@sling.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sling.apache.org Delivered-To: mailing list commits@sling.apache.org Received: (qmail 81954 invoked by uid 99); 22 Aug 2016 12:17:01 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Aug 2016 12:17:01 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 4EE43C0372 for ; Mon, 22 Aug 2016 12:17:01 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.374 X-Spam-Level: X-Spam-Status: No, score=0.374 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id 5ypMlIxniKEt for ; Mon, 22 Aug 2016 12:17:00 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 5651C5FBD8 for ; Mon, 22 Aug 2016 12:16:59 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 680C6E0069 for ; Mon, 22 Aug 2016 12:16:58 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id E939B3A0398 for ; Mon, 22 Aug 2016 12:16:57 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1757154 - in /sling/trunk/bundles/resourceresolver/src: main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java Date: Mon, 22 Aug 2016 12:16:57 -0000 To: commits@sling.apache.org From: cziegeler@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20160822121657.E939B3A0398@svn01-us-west.apache.org> archived-at: Mon, 22 Aug 2016 12:17:03 -0000 Author: cziegeler Date: Mon Aug 22 12:16:57 2016 New Revision: 1757154 URL: http://svn.apache.org/viewvc?rev=1757154&view=rev Log: SLING-5986 : Improve shutdown time when system is stopping Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java?rev=1757154&r1=1757153&r2=1757154&view=diff ============================================================================== --- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java (original) +++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java Mon Aug 22 12:16:57 2016 @@ -711,16 +711,20 @@ public class ResourceResolverFactoryActi if ( localContext != null ) { final boolean result = this.preconds.checkPreconditions(unavailableName, unavailableServicePid); if ( result && this.factoryRegistration == null ) { - boolean create = true; - synchronized ( this ) { - if ( this.factoryRegistration == null ) { - this.factoryRegistration = new FactoryRegistration(); - } else { - create = false; + // check system bundle state - if stopping, don't register new factory + final Bundle systemBundle = localContext.getBundleContext().getBundle(Constants.SYSTEM_BUNDLE_LOCATION); + if ( systemBundle != null && systemBundle.getState() != Bundle.STOPPING ) { + boolean create = true; + synchronized ( this ) { + if ( this.factoryRegistration == null ) { + this.factoryRegistration = new FactoryRegistration(); + } else { + create = false; + } + } + if ( create ) { + this.registerFactory(localContext); } - } - if ( create ) { - this.registerFactory(localContext); } } else if ( !result && this.factoryRegistration != null ) { this.unregisterFactory(); Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java?rev=1757154&r1=1757153&r2=1757154&view=diff ============================================================================== --- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java (original) +++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/MockedResourceResolverImplTest.java Mon Aug 22 12:16:57 2016 @@ -148,6 +148,10 @@ public class MockedResourceResolverImplT Mockito.when(componentContext.getBundleContext()).thenReturn( bundleContext); + // system bundle access + final Bundle systemBundle = Mockito.mock(Bundle.class); + Mockito.when(systemBundle.getState()).thenReturn(Bundle.ACTIVE); + Mockito.when(bundleContext.getBundle(Constants.SYSTEM_BUNDLE_LOCATION)).thenReturn(systemBundle); activator.resourceAccessSecurityTracker = new ResourceAccessSecurityTracker(); activator.resourceProviderTracker = resourceProviderTracker; activator.changeListenerWhiteboard = resourceChangeListenerWhiteboard;