commit | 202f3fe023146aacedf75e9525eaff386faf4445 | [log] [tgz] |
---|---|---|
author | Carsten Ziegeler <cziegeler@apache.org> | Sun Jul 12 09:30:36 2015 +0000 |
committer | Carsten Ziegeler <cziegeler@apache.org> | Sun Jul 12 09:30:36 2015 +0000 |
tree | 7bae1d9ea86aead0508449df06abe59f100ab42e | |
parent | a8b8fe72e53ffd928233a99c84c8e999ac7f3966 [diff] |
FELIX-4957 : [DS][RFC-212] Various issues with field references git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1690437 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java b/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java index 1b55ff0..eac2f18 100644 --- a/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java +++ b/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java
@@ -498,6 +498,12 @@ } } } + + // null the field if optional and unary + if ( !metadata.isMultiple() && metadata.isOptional() ) + { + this.setFieldValue(componentInstance, null); + } } catch ( final InvocationTargetException ite) {
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java b/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java index eb8967a..72c8676 100644 --- a/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java +++ b/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java
@@ -16,16 +16,14 @@ * specific language governing permissions and limitations * under the License. */ - - package org.apache.felix.scr.impl.helper; - import org.apache.felix.scr.impl.metadata.DSVersion; import org.apache.felix.scr.impl.metadata.ReferenceMetadata; /** - * @version $Rev$ $Date$ + * FieldMethods provides implementations for bind/unbind/updated + * which handle manipulation of fields. */ public class FieldMethods implements ReferenceMethods {
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java index fa781e5..14858e6 100644 --- a/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java +++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
@@ -897,7 +897,7 @@ } } - void ungetService( ) + private void ungetService( ) { deleteComponent( ComponentConstants.DEACTIVATION_REASON_UNSPECIFIED ); }