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 [email protected] for discussions and questions.

