[java-opensaml COMMIT] in /trunk: opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ChildC...

noreply at shibboleth.net noreply at shibboleth.net
Fri Feb 14 20:45:29 EST 2014


Author: scantor
Date: Fri Feb 14 20:45:29 2014
New Revision: 3624

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3624&view=rev
Log:
OSJ-62 - relax type casting in message navigation, to avoid class cast errors

Modified:
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ChildContextLookup.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/MessageLookup.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ParentContextLookup.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/RootContextLookup.java
    trunk/opensaml-profile-api/src/main/java/org/opensaml/profile/context/navigate/InboundMessageContextLookup.java
    trunk/opensaml-profile-api/src/main/java/org/opensaml/profile/context/navigate/OutboundMessageContextLookup.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java

Modified: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ChildContextLookup.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ChildContextLookup.java?rev=3624&r1=3623&r2=3624&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ChildContextLookup.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ChildContextLookup.java Fri Feb 14 20:45:29 2014
@@ -64,6 +64,7 @@
     }
 
     /** {@inheritDoc} */
+    @Override
     @Nullable public ChildContext apply(@Nullable final ParentContext input) {
         if (input == null) {
             return null;

Modified: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/MessageLookup.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/MessageLookup.java?rev=3624&r1=3623&r2=3624&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/MessageLookup.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/MessageLookup.java Fri Feb 14 20:45:29 2014
@@ -17,7 +17,10 @@
 
 package org.opensaml.messaging.context.navigate;
 
+import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+
+import net.shibboleth.utilities.java.support.logic.Constraint;
 
 import org.opensaml.messaging.context.MessageContext;
 
@@ -26,13 +29,25 @@
  * 
  * @param <T> type of message
  */
-public class MessageLookup<T> implements ContextDataLookupFunction<MessageContext<T>, T> {
+public class MessageLookup<T> implements ContextDataLookupFunction<MessageContext, T> {
 
+    /** Child context type to look up. */
+    private final Class<T> messageType;
+    
+    /**
+     * Constructor.
+     * 
+     * @param type message type to look up
+     */
+    public MessageLookup(@Nonnull final Class<T> type) {
+        messageType = Constraint.isNotNull(type, "Message type cannot be null");
+    }
+    
     /** {@inheritDoc} */
     @Override
-    @Nullable public T apply(@Nullable final MessageContext<T> input) {
-        if (input != null) {
-            return input.getMessage();
+    @Nullable public T apply(@Nullable final MessageContext input) {
+        if (input != null && messageType.isInstance(input.getMessage())) {
+            return (T) input.getMessage();
         }
         return null;
     }

Modified: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ParentContextLookup.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ParentContextLookup.java?rev=3624&r1=3623&r2=3624&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ParentContextLookup.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/navigate/ParentContextLookup.java Fri Feb 14 20:45:29 2014
@@ -30,6 +30,7 @@
         ContextDataLookupFunction<BaseContext, ParentContext> {
 
     /** {@inheritDoc} */
+    @Override
     @Nullable public ParentContext apply(@Nullable final BaseContext input) {
         if (input == null) {
             return null;


[... 373 lines stripped ...]


More information about the commits mailing list