On 23/12/10 15:20, Goldsack, Patrick wrote:
> I agree that the code is a bit odd. The code makes the assumption that if the 
> prim has been exported you are comparing exported objects (RMI obj refs) and 
> not local objects. And clearly the code fails if the parameter (o) is a local 
> object which has indeed been exported - I presume that at the time we thought 
> that this would never be the case.
>
> This would be trivial to fix if the assumption is indeed incorrect, but what 
> surprises me is that this core code is being exercised in every single 
> deployment... and has been for years (I checked and at least 2 years ago this 
> was the definition)! So either there is some untested and unexpected state in 
> your configuration, or there is an interesting and unusual issue with your sf 
> example that is not trapped and reported properly.
>
> Could you please send me your example (if you can) and I will take a look and 
> we can go from there.
>
> Patrick
>
> -----Original Message-----
> From: Ming Fang [mailto:[email protected]]
> Sent: 23 December 2010 06:59
> To: [email protected]
> Subject: [Smartfrog-users] infinite loop trying to deploy
>
> Hi,
>
> I'm getting an infinite loop when trying to deploy a sample file.
> I'm following the instructions from the IDE_develop.pdf document using 
> Intellij.
> The command Iine looks like this.
>
> java -Dorg.smartfrog.logger.logStackTrace=true 
> -Dorg.smartfrog.iniFile=smartfrog/bin/default.ini org.smartfrog.SFSystem -a 
> Test1:DEPLOY:org/smartfrog/examples/tutorial/MyPrimTest.sf::: -e
>
> I get the output below
>
> 2010/12/23 01:47:13:617 EST [WARN ][main] SFCORE_LOG - SmartFrog security is 
> NOT active
> 2010/12/23 01:47:13:623 EST [DEBUG][main] SFCORE_LOG - No security manager 
> loaded by SmartFrog
> 2010/12/23 01:47:13:627 EST [DEBUG][main] SFCORE_LOG - Network test 
> localhost: hostname '192.168.1.152', ip '192.168.1.152',  [Successful], 0ms
> 2010/12/23 01:47:13:629 EST [DEBUG][main] SFCORE_LOG - Command Line args: 
> [-a, Test1:DEPLOY:org/smartfrog/examples/tutorial/MyPrimTest.sf:::, -e]
> 2010/12/23 01:47:13:635 EST [DEBUG][main] SFCORE_LOG - Parsing SFACT: 
> [Test1:DEPLOY:org/smartfrog/examples/tutorial/MyPrimTest.sf:::]
> 2010/12/23 01:47:13:638 EST [DEBUG][main] SFCORE_LOG - Parsing SFACT results: 
> [ name:Test1,  type:DEPLOY,  
> url:org/smartfrog/examples/tutorial/MyPrimTest.sf,  resultType:UNDEFINED]
> 2010/12/23 01:47:14:100 EST [DEBUG][main] HOST "192.168.1.152":sfRunProcess - 
> ProcessCompound 'null' started.
>
> But then it goes into an infinite loop.
> After debugging for a while I think I found the reason.
>
> The problem is in 
> org.smartfrog.sfcore.processcompound.PrimHostDeployerImpl.java line 135
> if (pc.equals(local)) {
>
> Even though pc and local both point to the exact same object, the equals() 
> returns false.
> The reason is in org.smartfrog.sfcore.prim.PrimImpl.java equals() looks like 
> this
>      public boolean equals(Object o) {
>          if (sfExportRef == null) {
>              return super.equals(o);
>          } else {
>              return sfExportRef.equals(o);
>          }
>      }
>
> Therefore the same object will not equal to itself when sfExportRef != null.
>

I was looking at the toString() stuff and there's a bit of wierdness 
there too -if you aren't exported you get super.toString(); if you are 
exported you get the sfExportRef.toString(), which isn't so handy for 
diagnosing problems, as the exported reference's toString operation is 
usually some low level data.

------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
Smartfrog-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/smartfrog-users

Reply via email to