[ 
http://issues.ops4j.org/jira/browse/QI-41?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_11286
 ] 

Sonny Gill commented on QI-41:
------------------------------

A related problem is behaviour of equals when passed an object of a different 
type.
For example -
System.out.println( aComposite.equals( "Hello" ));
 
The current implementation throws a ClassCastException.

> EntityComposite.equals(null) throws NPE
> ---------------------------------------
>
>                 Key: QI-41
>                 URL: http://issues.ops4j.org/jira/browse/QI-41
>             Project: Qi4j
>          Issue Type: Bug
>          Components: Core Runtime
>    Affects Versions: 0.2
>            Reporter: Sonny Gill
>            Assignee: Rickard Öberg
>
> EntityComposite.equals(null) i.e. EntityCompositeInstance.onEquals throws NPE 
> when passed null as argument.
> It should return false.
> Test -
> ________________________________________________________________________
> import org.qi4j.bootstrap.ApplicationFactory;
> import org.qi4j.bootstrap.AssemblyException;
> import org.qi4j.bootstrap.ModuleAssembly;
> import org.qi4j.bootstrap.SingletonAssembler;
> import org.qi4j.composite.ObjectBuilderFactory;
> import org.qi4j.composite.scope.Structure;
> import org.qi4j.entity.EntityComposite;
> import org.qi4j.entity.UnitOfWork;
> import org.qi4j.entity.UnitOfWorkFactory;
> import org.qi4j.entity.memory.MemoryEntityStoreService;
> import org.qi4j.property.Property;
> import org.qi4j.runtime.structure.ApplicationInstance;
> import org.qi4j.spi.entity.UuidIdentityGeneratorService;
> import org.qi4j.structure.Module;
> import org.qi4j.structure.Visibility;
> public class TestCase
> {
>     public static class Main
>     {
>         @Structure UnitOfWorkFactory uowf;
>         @Structure Module module;
>         public Main() throws Exception
>         {
>             SingletonAssembler assembler = new SingletonAssembler()
>             {
>                 public void assemble( ModuleAssembly module ) throws 
> AssemblyException
>                 {
>                     module.addServices( UuidIdentityGeneratorService.class, 
> MemoryEntityStoreService.class ).
>                         visibleIn( Visibility.layer );
>                     module.addObjects( Main.class );
>                     module.addComposites( AComposite.class );
>                 }
>             };
>             final ApplicationInstance application = new 
> ApplicationFactory().newApplication(assembler).
>                 newApplicationInstance( "Test" );
>             application.activate();
>             ObjectBuilderFactory obf = application.getLayerInstances().get( 0 
> ).getModuleInstances().
>                 get( 0 ).getStructureContext().getObjectBuilderFactory();
>             obf.newObjectBuilder( Main.class ).injectTo( this );
>             UnitOfWork unitOfWork = uowf.newUnitOfWork();
>             AComposite aComposite = unitOfWork.newEntityBuilder( 
> AComposite.class ).newInstance();
>             System.out.println( aComposite.equals( null ));
>         }
>         public static void main( String[] args ) throws Exception
>         {
>             new Main();
>         }
>     }
>     interface AComposite extends EntityComposite
>     {
>         Property<String> name();
>     }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.ops4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to