Author: markt
Date: Mon Nov 20 11:53:20 2017
New Revision: 1815793

URL: http://svn.apache.org/viewvc?rev=1815793&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=61777
Avoid a NullPointerException when detaching a JASPIC RegistrationListener.
Patch provided by Lazar.
This closes #85

Modified:
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
    
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestAuthConfigFactoryImpl.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java?rev=1815793&r1=1815792&r2=1815793&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
 Mon Nov 20 11:53:20 2017
@@ -243,7 +243,7 @@ public class AuthConfigFactoryImpl exten
     public String[] detachListener(RegistrationListener listener, String 
layer, String appContext) {
         String registrationID = getRegistrationID(layer, appContext);
         RegistrationContextImpl registrationContext = 
findRegistrationContextImpl(layer, appContext);
-        if (registrationContext.removeListener(listener)) {
+        if (registrationContext != null && 
registrationContext.removeListener(listener)) {
             return new String[] { registrationID };
         }
         return EMPTY_STRING_ARRAY;

Modified: 
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestAuthConfigFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestAuthConfigFactoryImpl.java?rev=1815793&r1=1815792&r2=1815793&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestAuthConfigFactoryImpl.java
 (original)
+++ 
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestAuthConfigFactoryImpl.java
 Mon Nov 20 11:53:20 2017
@@ -244,6 +244,21 @@ public class TestAuthConfigFactoryImpl {
     }
 
 
+    @Test
+    public void testDetachListenerNonexistingRegistration() {
+        AuthConfigFactory factory = new AuthConfigFactoryImpl();
+        AuthConfigProvider acp1 = new SimpleAuthConfigProvider(null, null);
+        String registrationId = factory.registerConfigProvider(acp1, "L_1", 
"AC_1", null);
+
+        SimpleRegistrationListener listener1 = new 
SimpleRegistrationListener("L_1", "AC_1");
+        factory.getConfigProvider("L_1", "AC_1", listener1);
+
+        factory.removeRegistration(registrationId);
+        String[] registrationIds = factory.detachListener(listener1, "L_1", 
"AC_1");
+        Assert.assertTrue(registrationIds.length == 0);
+    }
+
+
     private static class SimpleRegistrationListener implements 
RegistrationListener {
 
         private final String layer;

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1815793&r1=1815792&r2=1815793&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Nov 20 11:53:20 2017
@@ -82,6 +82,11 @@
         Avoid a possible <code>NullPointerException</code> when timing out
         <code>AsyncContext</code> instances during shut down. (markt)
       </fix>
+      <fix>
+        <bug>61777</bug>: Avoid a <code>NullPointerException</code> when
+        detaching a JASPIC <code>RegistrationListener</code>. Patch provided by
+        Lazar. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to