Package: libcglib-java Version: 2.2.2+dfsg-5 Severity: important Tags: patch
Dear Maintainer, The current version of libcglib in debian breaks the libmockito-java package. I've put together a test class (With code taken from http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#13 ) |List list = new LinkedList(); |List spy = spy(list); | |// using the spy calls real methods |spy.add("one"); |spy.add("two"); Trying to run this yields : |java.lang.RuntimeException: Unable to set MockitoNamingPolicy on cglib generator which creates FastClasses |at org.mockito.internal.creation.cglib.CGLIBHacker.setMockitoNamingPolicy(CGLIBHacker.java:29) |at org.mockito.internal.creation.MethodInterceptorFilter.intercept(MethodInterceptorFilter.java:42) |at $java.util.LinkedList$$EnhancerByMockitoWithCGLIB$$440d9615.add(<generated>) |at testSpy.spying(testSpy.java:17) |Caused by: java.lang.NullPointerException |at org.mockito.internal.creation.cglib.CGLIBHacker.setMockitoNamingPolicy(CGLIBHacker.java:23) Downgrading libcglib to 2.2+dfsg-2 (squeeze) fixes this. Browsing the changes in cglib, I traced this down to the MethodProxy.java class, particularly this change: http://cglib.cvs.sourceforge.net/viewvc/cglib/cglib/src/proxy/net/sf/cglib/proxy/MethodProxy.java?r1=1.14&r2=1.15 I believe the change was accidental, so the attached patch restores the old behaviour. Applying it to libcglib-java makes my test run. This is just a workaround, but it is the minimal change to get Mockito working again in Debian. -- System Information: Debian Release: 7.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libcglib-java depends on: ii libasm3-java 3.3.2-1 libcglib-java recommends no packages. libcglib-java suggests no packages. -- no debconf information -- Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
--- a/src/proxy/net/sf/cglib/proxy/MethodProxy.java +++ b/src/proxy/net/sf/cglib/proxy/MethodProxy.java @@ -76,7 +76,6 @@ fci.i1 = fci.f1.getIndex(sig1); fci.i2 = fci.f2.getIndex(sig2); fastClassInfo = fci; - createInfo = null; } } }
import static org.mockito.Mockito.spy; import java.util.LinkedList; import java.util.List; import org.junit.Test; public class testSpy { @Test public void spying() { List list = new LinkedList(); List spy = spy(list); // using the spy calls real methods spy.add("one"); spy.add("two"); } }
signature.asc
Description: Digital signature
__ This is the maintainer address of Debian's Java team <http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-maintainers>. Please use debian-j...@lists.debian.org for discussions and questions.