Hello Gavin,
I had to change only one thing: java:/DefaultDS to java:/MSSQLDS.
I get the same output for both methods. The difference is only in id
values:
****************************************
Bar id through foo: 4
Bar id through bars foos:
Number of foos associated with bar: 1
Foo id: 4
Bar id: 4
****************************************
alex
Wednesday, July 30, 2003, 3:20:26 AM, Gavin Matthews wrote:
GM> Alex,
GM> Attached is the standalone case - it exhibits the same behaviour (i.e. the
GM> cmr problem).
GM> It's hacked out of our inhouse environment so the build scripts could be
GM> cleaner, however they should work fine for you. I believe all you will need
GM> to modify some of the paths in cmrtest-config.xml:
GM> <property name="build.root" location="y:/CmrTest/build" />
GM> <property name="xdoclet.lib"
GM> value="y:/External/Java/XDocLet/xdoclet-1.2.0-beta3/lib" />
GM> <property name="jboss3.home"
GM> value="y:/External/Java/JBoss/jboss-3.2.2RC2_jetty-4.2.11"/>
GM> <property name="commons-logging.home"
GM> value="y:/External/Java/commons-logging/commons-logging-1.0.2"/>
GM> Just run ant to build it, the build files should go into CmrTest/build. It
GM> generates 2 files to deploy:
GM> CmrTest/build/ejb/target/cmrtest-ejb.jar - which contains the entities &
GM> session.
GM> CmrTest/build/service/jboss3/target/cmrtest-service-jboss3.sar - This is a
GM> mbean service (it was faster than writing a cactus testcase) used to run the
GM> test case.
GM> Deploy the ejb jar and then the service. Open up the service in the JMX
GM> console and start it. You'll see the service has two relevant methods,
GM> testWithFinder & testWithoutFinder. They both execute the same code the only
GM> difference is that in the middle of testWithFinder a finder is called which
GM> causes a db sync. testWithFinder behaves as expected testWithoutFinder is
GM> the bug I'm seeing.
GM> Let me know if I can provide anything other info or if you've problems with
GM> the test case.
GM> gavin
>> -----Original Message-----
>> From: Alexey Loubyansky [mailto:[EMAIL PROTECTED]
>> Sent: Tuesday, July 29, 2003 12:23 AM
>> To: '[EMAIL PROTECTED]'
>> Subject: Re[2]: [JBoss-user] CMR Problem in 3.2.2RC2
>>
>>
>> Hello Gavin,
>>
>> can you provide a testcase? Previously, you posted the source files
>> and I integrated them into a testcase. Can you send me a ready-to-run
>> testcase so I need just issue 'build run' or like that?
>> I'll correct it and send it back to you fixed.
>>
>> alex
>>
>> Tuesday, July 29, 2003, 12:20:04 AM, Gavin Matthews wrote:
>>
>>
>> GM> Alex,
>> GM> I've double checked everything and it definitely does
>> not work for me. I'm
>> GM> not sure what the cause could be unless there's some
>> weird config issue (I
>> GM> fixed the known/unknown config - but that didn't affect
>> the behaviour I'm
>> GM> seeing). I'm using the JBoss-3.2.2RC2_Jetty-4.2.11
>> release bundle, commit
>> GM> option C (tried with B also).
>>
>> GM> The fact that this is working for you is a bit
>> perplexing and I'm not
>> GM> really sure where to go from here. Any suggestions on
>> what I should look
>> GM> for? Where in the code should I focus my efforts to
>> figure out what's
>> GM> happening - at a rough high-level guess it looks like
>> something is wrong
>> GM> with the caching of objects at a transaction level, any
>> way I can easily
>> GM> prove/disprove this?
>>
>> GM> thanks,
>> GM> gavin
>>
>>
>>
>>
>> >> -----Original Message-----
>> >> From: Alexey Loubyansky [mailto:[EMAIL PROTECTED]
>> >> Sent: Friday, July 25, 2003 4:30 AM
>> >> To: Gavin Matthews
>> >> Subject: Re: [JBoss-user] CMR Problem in 3.2.2RC2
>> >>
>> >>
>> >> Hello Gavin,
>> >>
>> >> I am sorry, it works for me! I used your source files, MS
>> SQL Server
>> >> 2000 and your testSchema.sql.
>> >>
>> >> Anyway, I have some remarks. You are using unknown pk with name id,
>> >> while there is a CMP field id. You should not do it.
>> >> If you want a "known" pk and use a pk generation command, then just
>> >> mark the pk field as @jboss.persistence auto-increment="true".
>> >>
>> >> alex
>> >>
>> >> Thursday, July 24, 2003, 11:48:19 PM, Gavin Matthews wrote:
>> >>
>> >> GM> Hi,
>> >> GM> I posted this to the group a couple of weeks ago when
>> >> trying to get
>> >> GM> 3.2.2RC1 working. Alex had a look at it and figured it
>> >> was fixed for RC2. As
>> >> GM> RC2 was only a couple of weeks away I decided it'd be
>> >> easier for me to wait
>> >> GM> for RC2 than build it, my mistake, I've just grabbed RC2
>> >> - it's still there.
>> >> GM> (I'll log a bug this time).
>> >>
>> >> GM> gavin
>> >>
>> >> >> -----Original Message-----
>> >> >> From: Gavin Matthews
>> >> >> Sent: Thursday, July 03, 2003 7:05 PM
>> >> >> To: [EMAIL PROTECTED]
>> >> >> Cc: '[EMAIL PROTECTED]'
>> >> >> Subject: CMR Problem in 3.2.2?
>> >> >>
>> >> >>
>> >> >> Hi,
>> >> >> I posted yesterday and last week about a problem I was
>> >> >> having with CMR when I upgraded from 3.2.0 to 3.2.2. I've
>> >> >> done more investigation and I don't think my previous mails
>> >> >> were entirely accurate (or very clear) so let me start over.
>> >> >>
>> >> >> The Problem:
>> >> >> I'm experiencing NPE in our app because the CMR
>> >> >> relationships are (apparently) not being created. This didn't
>> >> >> occur with our app in 3.2.0.
>> >> >>
>> >> >> I have a sample case which I believe is representitive of
>> >> >> the problem I'm seeing in our app. The beans are Foo & Bar
>> >> >> (sorry about the naming). The relationship is N-Foo-1-Bar.
>> >> >> The relation is being set in post create:
>> >> >>
>> >> >> public abstract class FooEJB extends AbstractEntityBean {
>> >> >> ...
>> >> >> public void ejbPostCreate(BarLocal bar, String fooValue)
>> >> >> throws CreateException {
>> >> >> sLog.debug("ejbPostCreate(" + getId() + ")");
>> >> >>
>> >> >> this.setBar(bar);
>> >> >> }
>> >> >> ...
>> >> >> }
>> >> >>
>> >> >> And I have a test session which does the following:
>> >> >>
>> >> >> ...
>> >> >> BarLocal bar = createBar("This is a bar");
>> >> >> FooLocal foo = createFoo(bar, "This is a foo");
>> >> >>
>> >> >>
>> sLog.info("****************************************");
>> >> >> sLog.info("Bar id through foo: " +
>> >> foo.getBar().getId());
>> >> >> sLog.info("Bar id through bars foos: ");
>> >> >>
>> >> >> Collection foos = bar.getFoos();
>> >> >> sLog.info("Number of foos associated with bar: "
>> >> >> + foos.size());
>> >> >>
>> >> >> Iterator fooIter = bar.getFoos().iterator();
>> >> >> while (fooIter.hasNext()) {
>> >> >> FooLocal tmpFoo = (FooLocal) fooIter.next();
>> >> >> sLog.info("Foo id: " + tmpFoo.getId());
>> >> >> sLog.info("Bar id: " + tmpFoo.getBar().getId());
>> >> >> }
>> >> >>
>> sLog.info("****************************************");
>> >> >> ...
>> >> >>
>> >> >> I'd expect the output of this test case to be:
>> >> >>
>> >> >> 18:58:38,875 INFO [FooBarSessionEJB]
>> >> >> ****************************************
>> >> >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through foo: 1011
>> >> >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through bars foos:
>> >> >> 18:58:38,890 INFO [FooBarSessionEJB] Number of foos
>> >> >> associated with bar: 1
>> >> >> 18:58:38,906 INFO [FooBarSessionEJB] Foo id: 1017
>> >> >> 18:58:38,906 INFO [FooBarSessionEJB] Bar id: 1011
>> >> >> 18:58:38,906 INFO [FooBarSessionEJB]
>> >> >> ****************************************
>> >> >>
>> >> >> What I'm actually seeing is:
>> >> >>
>> >> >> 18:58:38,875 INFO [FooBarSessionEJB]
>> >> >> ****************************************
>> >> >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through foo: 1011
>> >> >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through bars foos:
>> >> >> 18:58:38,890 INFO [FooBarSessionEJB] Number of foos
>> >> >> associated with bar: 0
>> >> >> 18:58:38,906 INFO [FooBarSessionEJB]
>> >> >> *******************************************
>> >> >>
>> >> >> If I add a finder call after the beans are created (which
>> >> >> forces the beans to be synchronized to the database) then I
>> >> >> get the results I expect. This makes me think that there's a
>> >> >> problem with the caching - the "bar" returned by the
>> >> >> create() call is not the same Bar instance as returned by
>> >> >> foo.getBar(). Which means that I have 2 instances of the same
>> >> >> bean within the same transaction which have different state -
>> >> >> seems like a bug to me, I'd have expected the foo.getBar()
>> >> >> call to return the same "bar" as was passed to the
>> create() call.
>> >> >>
>> >> >> I've attached the source. For the sample, let me know what
>> >> you think,
>> >> >>
>> >> >> thanks,
>> >> >> gavin
>> >>
>> >>
>> >>
>> >> -------------------------------------------------------
>> >> This SF.Net email sponsored by: Free pre-built ASP.NET
>> sites including
>> >> Data Reports, E-commerce, Portals, and Forums are available now.
>> >> Download today and enter to win an XBOX or Visual Studio .NET.
>> >> http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet
>> GM> _072303_01/01
>> GM> _______________________________________________
>> GM> JBoss-user mailing list
>> GM> [EMAIL PROTECTED]
>> GM> https://lists.sourceforge.net/lists/listinfo/jboss-user
>>
>>
>>
>> -------------------------------------------------------
>> This SF.Net email sponsored by: Free pre-built ASP.NET sites including
>> Data Reports, E-commerce, Portals, and Forums are available now.
>> Download today and enter to win an XBOX or Visual Studio .NET.
>> http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet
GM> _072303_01/01
GM> _______________________________________________
GM> JBoss-user mailing list
GM> [EMAIL PROTECTED]
GM> https://lists.sourceforge.net/lists/listinfo/jboss-user
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user