Package: c3p0 Version: 0.9.1.2-5 Severity: normal Tags: patch User: [email protected] Usertags: origin-ubuntu natty ubuntu-patch
*** /tmp/tmpdkx862 In Ubuntu, the attached patch was applied to achieve the following: 1) Tuning of gcj javac warning to be like openjdk javac. The source code for c3p0 is not Java 1.6 compatible so we can't use OpenJDK6 for compilation; gcj is used instead which is very verbose with warnings. The first part of this patch makes gcj behave more like openjdk with regards to generation of warning messages during the build process. 2) Unit Test suite enablement Uses the Java based hsqldb database against a temporary file based database; one test failed due to a missing feature in the driver (test disabled) and another failed becauce gcj is quite good at dealing with weak object references (also disabled). * Patched ant build files to make gcj behave more like openjdk (LP: #452926). * Enabled junit test suite for operation using gcj and hsqldb (LP: #452919). * Updated Standards-Version: 3.9.1, no changes. Thanks for considering the patch. -- System Information: Debian Release: squeeze/sid APT prefers natty-updates APT policy: (500, 'natty-updates'), (500, 'natty-security'), (500, 'natty') Architecture: amd64 (x86_64) Kernel: Linux 2.6.35-25-generic (SMP w/8 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/dash
=== modified file 'debian/ant.properties' --- debian/ant.properties 2007-07-10 23:27:20 +0000 +++ debian/ant.properties 2011-02-28 14:02:20 +0000 @@ -1,4 +1,4 @@ -# >> BASICS << + # # You'll need to supply at least one of j2ee.classpath @@ -55,17 +55,22 @@ # the various tests. very optional # -#test.jdbc.driver.jar.file= -#test.jdbc.drivers= -#test.jdbc.url= -#test.jdbc.user= -#test.jdbc.password= +test.jdbc.driver.jar.file=/usr/share/java/hsqldb.jar +test.jdbc.drivers=org.hsqldb.jdbcDriver +test.jdbc.url=jdbc:hsqldb:file:/tmp/testdb +test.jdbc.user=SA +test.jdbc.password= + +c3p0.jdbcUrl=jdbc:hsqldb:file:/tmp/testdb +c3p0.driverClass=org.hsqldb.jdbcDriver +c3p0.user=SA +c3p0.password= # # required if you want to run junit tests # -#junit.jar.file +junit.jar.file=/usr/share/java/junit.jar # >> VERY VERY OPTIONAL DOCS-TO-WEB SUPPORT === modified file 'debian/changelog' === modified file 'debian/control' --- debian/control 2010-05-21 22:56:13 +0000 +++ debian/control 2011-02-28 14:02:36 +0000 @@ -4,8 +4,9 @@ Maintainer: Debian Java Maintainers <[email protected]> Uploaders: Michael Koch <[email protected]>, Varun Hiremath <[email protected]> Build-Depends: debhelper (>= 7), cdbs, maven-repo-helper -Build-Depends-Indep: ant, gcj-jdk, liblog4j1.2-java, libmx4j-java -Standards-Version: 3.8.4 +Build-Depends-Indep: ant, gcj-jdk, liblog4j1.2-java, libmx4j-java, ant-optional, + junit, libhsqldb-java +Standards-Version: 3.9.1 Vcs-Svn: svn://svn.debian.org/svn/pkg-java/trunk/c3p0 Vcs-Browser: http://svn.debian.org/wsvn/pkg-java/trunk/c3p0 Homepage: http://sourceforge.net/projects/c3p0 === added directory 'debian/patches' === added file 'debian/patches/build.patch' --- debian/patches/build.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/build.patch 2011-02-28 14:02:20 +0000 @@ -0,0 +1,66 @@ +Description: Configures build (using gcj) to behave more like sun-jdk-5 + in terms of error messages. +Author: [email protected] +Forwarded: not-required +Index: c3p0/build.xml +=================================================================== +--- c3p0.orig/build.xml 2011-02-25 11:52:44.775376257 +0000 ++++ c3p0/build.xml 2011-02-25 12:02:54.804996643 +0000 +@@ -208,7 +208,7 @@ + source="${c3p0.target.version}" + target="${c3p0.target.version}" + classpathref="codegen-classpath" +- debug="true"> ++ debug="true" nowarn="on" deprecation="off"> + <src> + <pathelement location="${build.codegen.dir}" /> + <pathelement location="${java.src.dir}" /> +@@ -253,7 +253,7 @@ + source="${c3p0.target.version}" + target="${c3p0.target.version}" + classpathref="build-classpath" +- debug="on"> ++ debug="on" nowarn="on" deprecation="off"> + <sourcepath> + <pathelement location="${build.codegen.dir}" /> + <pathelement location="${java.src.dir}" /> +@@ -275,7 +275,7 @@ + source="${c3p0.target.version}" + target="${c3p0.target.version}" + classpathref="build-classpath" +- debug="on"> ++ debug="on" nowarn="on" deprecation="off"> + <sourcepath> + <pathelement location="${build.codegen.dir}" /> + </sourcepath> +@@ -290,7 +290,7 @@ + <javac destdir="${build.classes.dir}" + source="${c3p0.target.version}" + target="${c3p0.target.version}" +- debug="on"> ++ debug="on" nowarn="on" deprecation="off"> + <classpath> + <path refid="build-classpath" /> + <pathelement location="${log4j.jar.file}" /> +@@ -311,7 +311,7 @@ + <javac destdir="${build.classes.dir}" + source="${c3p0.target.version}" + target="${c3p0.target.version}" +- debug="on"> ++ debug="on" nowarn="on" deprecation="off"> + <classpath> + <path refid="build-classpath" /> + <pathelement path="${junit.jar.file}" /> +Index: c3p0/relproj/debuggen/build.xml +=================================================================== +--- c3p0.orig/relproj/debuggen/build.xml 2011-02-25 12:04:02.992661915 +0000 ++++ c3p0/relproj/debuggen/build.xml 2011-02-25 12:04:30.047767796 +0000 +@@ -32,7 +32,7 @@ + <mkdir dir="${build.classes.dir}" /> + <javac srcdir="${java.src.dir}" + destdir="${build.classes.dir}" +- debug="on" /> ++ debug="on" nowarn="on" deprecation="off"/> + </target> + + <target name="jar" depends="compile"> === added file 'debian/patches/series' --- debian/patches/series 1970-01-01 00:00:00 +0000 +++ debian/patches/series 2011-02-28 14:02:20 +0000 @@ -0,0 +1,2 @@ +build.patch +testing.patch === added file 'debian/patches/testing.patch' --- debian/patches/testing.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/testing.patch 2011-02-28 14:02:20 +0000 @@ -0,0 +1,73 @@ +Description: Patch to enable testing in build process using hsqldb & gcj + Functions that are either not supported by hsqldb and tests that behave + differently under gcj are disabled. +Author: [email protected] +Forwarded: not-required +Index: c3p0/src/classes/com/mchange/v2/c3p0/test/junit/ConnectionPropertiesResetJUnitTestCase.java +=================================================================== +--- c3p0.orig/src/classes/com/mchange/v2/c3p0/test/junit/ConnectionPropertiesResetJUnitTestCase.java 2011-02-28 11:20:48.137932772 +0000 ++++ c3p0/src/classes/com/mchange/v2/c3p0/test/junit/ConnectionPropertiesResetJUnitTestCase.java 2011-02-28 11:23:12.471753607 +0000 +@@ -88,10 +88,6 @@ + cons[i] = cpds.getConnection(); + assertFalse( "Connection from pool should not be readOnly!", cons[i].isReadOnly() ); + +- // some drivers return null rather than an empty type map +- Map typeMap = cons[i].getTypeMap(); +- assertTrue( "Connection from pool should have an empty type map!", (typeMap == null ? true : typeMap.isEmpty() ) ); +- + assertEquals( "Connection from pool should have default catalog set!", dfltCat, cons[i].getCatalog() ); + assertEquals( "Connection from pool should have default txn isolation set!", dflt_txn_isolation, cons[i].getTransactionIsolation() ); + cons[i].close(); +@@ -103,4 +99,4 @@ + fail( e.getMessage() ); + } + } +-} +\ No newline at end of file ++} +Index: c3p0/src/classes/com/mchange/v2/util/junit/DoubleWeakHashMapJUnitTestCase.java +=================================================================== +--- c3p0.orig/src/classes/com/mchange/v2/util/junit/DoubleWeakHashMapJUnitTestCase.java 2011-02-28 11:20:48.167927333 +0000 ++++ c3p0/src/classes/com/mchange/v2/util/junit/DoubleWeakHashMapJUnitTestCase.java 2011-02-28 11:22:55.204885364 +0000 +@@ -68,41 +68,4 @@ + m.values().remove(poop); + assertEquals("After removing a doubled value, size should be 2", m.size(), 2); + } +- +- public void testWeakness() +- { +- Integer a = new Integer(1); +- Integer b = new Integer(2); +- Integer c = new Integer(3); +- +- String poop = new String("poop"); +- +- Map m = new DoubleWeakHashMap(); +- m.put(a, poop); +- m.put(b, new Object()); +- m.put(c, new Object()); +- +- //race condition... b & c might already have been removed... but i doubt it +- assertEquals("1) Weak values should not yet have been removed (but not guaranteed! sometimes fails without a defect!)", m.size(), 3); +- +- // we are relying that a full, synchronous GC occurs, +- // which is not guaranteed in all VMs +- System.gc(); +- +- // let's see if we can force a deeper gc via a big array creation +- byte[] bArray = new byte[1024 * 1024]; +- +- assertEquals("2) Weak values should have been automatically removed (but not guaranteed! sometimes fails without a defect!)", m.size(), 1); +- +- m.put( new Object(), b); +- +- //race condition... b & c might already have been removed... but i doubt it +- assertEquals("3) Weak key should not yet have been removed (but not guaranteed! sometimes fails without a defect!)", m.size(), 2); +- +- System.gc(); +- // let's see if we can force a deeper gc via a big array creation +- bArray = new byte[1024 * 1024]; +- +- assertEquals("4) Weak key should have been automatically removed (but not guaranteed! sometimes fails without a defect!)", m.size(), 1); +- } + } === modified file 'debian/rules' --- debian/rules 2010-05-21 22:56:13 +0000 +++ debian/rules 2011-02-28 14:02:20 +0000 @@ -6,8 +6,8 @@ JAVA_HOME := /usr/lib/jvm/java-gcj ANT_HOME := /usr/share/ant -DEB_JARS := log4j1.2 mx4j -DEB_ANT_BUILD_TARGET := jar javadocs +DEB_JARS := log4j1.2 mx4j junit ant-junit hsql +DEB_ANT_BUILD_TARGET := jar javadocs junit-tests clean:: ( cd relproj ; ant clean )

