just adding a println :
public List<Movie> foo() {
Query query = entityManager.createQuery("SELECT m from Movie
m");
List<Movie> movies = query.getResultList();
System.out.println("movies.size() = " + movies.size());
return movies;
}
giving :
movies.size() = 2
movies.size() = 0
amber wrote
>
> sure here the code :
>
> public void testWSCreateDelete() throws Exception {
> Service movieService = Service.create(new
> URL("http://127.0.0.1:4204/Movies?wsdl"), new
> QName("http://superbiz.org/wsdl", "MoviesWebService"));
> assertNotNull(movieService);
>
> IMoviesWS mv = movieService.getPort(IMoviesWS.class);
>
> mv.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs",
> 1992));
> mv.addMovie(new Movie("Joel Coen", "Fargo", 1996));
>
> List<Movie> list = mv.foo();
> assertEquals("List.size()", 2, list.size());
>
> for (Movie movie : list) {
> mv.deleteMovie(movie);
> }
>
> List<Movie> list2 = mv.foo();
>
> *// return null*
> assertEquals("List2.size()", 0, list2.size());
> }
>
>
>
> the movies bean :
> public List<Movie> foo() {
> Query query = entityManager.createQuery("SELECT m from Movie
> m");
> List<Movie> movies = query.getResultList();
> movies.size();
> return movies;
> }
>
> the trace :
>
>
>
> java.lang.NullPointerException
> at org.superbiz.altdd.MoviesTest.testWSCreateDelete(MoviesTest.java:128)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at junit.framework.TestCase.runTest(TestCase.java:168)
> at junit.framework.TestCase.runBare(TestCase.java:134)
> at junit.framework.TestResult$1.protect(TestResult.java:110)
> at junit.framework.TestResult.runProtected(TestResult.java:128)
> at junit.framework.TestResult.run(TestResult.java:113)
> at junit.framework.TestCase.run(TestCase.java:124)
> at junit.framework.TestSuite.runTest(TestSuite.java:232)
> at junit.framework.TestSuite.run(TestSuite.java:227)
> at
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>
>
> I added too the foo() to the Ws interface and the MovieLocal interface
>
>
> Romain Manni-Bucau wrote
>>
>> can you try doing something like this please?
>>
>> List foo() {
>> List movies = ...;
>> movies.size();
>> return movies;
>> }
>>
>> - Romain
>>
>>
>> 2012/2/23 amber <amber63@>
>>
>>> ok for the "as" keyword )
>>>
>>> the difference is on the Web Service that failed on the "select m from
>>> Movie
>>> m" after a delete operation, works fine when I pass through the @EJB
>>> injection (like your code)
>>>
>>> the getMovies() return an empty List (debugger mark the return value as
>>> [])
>>> as expected (we deleted content just before) but from the caller the
>>> pointer
>>> is set to null. I don't understand why.
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://openejb.979440.n4.nabble.com/openEJB-fail-on-second-test-tp4401889p4414214.html
>>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>>
>>
>
--
View this message in context:
http://openejb.979440.n4.nabble.com/openEJB-fail-on-second-test-tp4401889p4414347.html
Sent from the OpenEJB User mailing list archive at Nabble.com.