svn commit: r832391 - /commons/trunks-proper/KEYS
Author: henrib Date: Tue Nov 3 10:59:58 2009 New Revision: 832391 URL: http://svn.apache.org/viewvc?rev=832391&view=rev Log: Added henrib key Modified: commons/trunks-proper/KEYS Modified: commons/trunks-proper/KEYS URL: http://svn.apache.org/viewvc/commons/trunks-proper/KEYS?rev=832391&r1=832390&r2=832391&view=diff == --- commons/trunks-proper/KEYS (original) +++ commons/trunks-proper/KEYS Tue Nov 3 10:59:58 2009 @@ -1540,3 +1540,61 @@ VgUAoL1bX0lIWF44l1wm2/d0FeLEU0Qx =eW64 -END PGP PUBLIC KEY BLOCK- +pub 4096R/59CD109B 2009-11-02 +uid Henri Biestro (CODE SIGNING KEY) +sig 359CD109B 2009-11-02 Henri Biestro (CODE SIGNING KEY) +sub 4096R/CCBC1F4E 2009-11-02 +sig 59CD109B 2009-11-02 Henri Biestro (CODE SIGNING KEY) + +-BEGIN PGP PUBLIC KEY BLOCK- +Version: GnuPG/MacGPG2 v2.0.12 (Darwin) + +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 +J1WX0nDaK3RU/fdGNKZG0eXt +=QEw1 +-END PGP PUBLIC KEY BLOCK-
svn commit: r832466 - in /commons/proper/jexl/trunk/src: main/java/org/apache/commons/jexl/scripting/JexlScriptEngineFactory.java test/java/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java
Author: henrib Date: Tue Nov 3 16:12:50 2009 New Revision: 832466 URL: http://svn.apache.org/viewvc?rev=832466&view=rev Log: Added a test on JexlScriptEngineFactory; fixed small issue on getParameter() Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngineFactory.java commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngineFactory.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngineFactory.java?rev=832466&r1=832465&r2=832466&view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngineFactory.java (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngineFactory.java Tue Nov 3 16:12:50 2009 @@ -108,7 +108,7 @@ return getNames(); } else if (key.equals(ScriptEngine.LANGUAGE)) { return getLanguageName(); -} else if(key.equals(ScriptEngine.ENGINE_VERSION)) { +} else if(key.equals(ScriptEngine.LANGUAGE_VERSION)) { return getLanguageVersion(); } else if (key.equals("THREADING")) { return null;//"MULTITHREADED"; // TODO what is the correct value here? Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java?rev=832466&r1=832465&r2=832466&view=diff == --- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java (original) +++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java Tue Nov 3 16:12:50 2009 @@ -19,6 +19,7 @@ package org.apache.commons.jexl.scripting; import java.io.Reader; +import java.util.Arrays; import java.util.Map; import javax.script.ScriptEngine; @@ -26,7 +27,27 @@ import junit.framework.TestCase; public class JexlScriptEngineTest extends TestCase { - + +public void testScriptEngineFactory() throws Exception { +JexlScriptEngineFactory factory = new JexlScriptEngineFactory(); +assertEquals("JEXL Engine", factory.getParameter(ScriptEngine.ENGINE)); +assertEquals("1.0", factory.getParameter(ScriptEngine.ENGINE_VERSION)); +assertEquals("JEXL", factory.getParameter(ScriptEngine.LANGUAGE)); +assertEquals("2.0", factory.getParameter(ScriptEngine.LANGUAGE_VERSION)); +assertEquals(Arrays.asList("JEXL", "Jexl", "jexl"), factory.getParameter(ScriptEngine.NAME)); +assertNull(factory.getParameter("THREADING")); + +assertEquals(Arrays.asList("jexl"), factory.getExtensions()); +assertEquals(Arrays.asList("application/x-jexl"), factory.getMimeTypes()); + +assertEquals("42;", factory.getProgram(new String[]{"42"})); +assertEquals("str.substring(3,4)", factory.getMethodCallSyntax("str", "substring", new String[]{"3", "4"})); +try { +factory.getOutputStatement("foo"); +fail("getOutputStatement() should have thrown"); +} catch(Exception xignore) {} +} + public void testScripting() throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); assertNotNull("Manager should not be null", manager);
svn commit: r832467 - /commons/proper/jexl/trunk/RELEASE-NOTES.txt
Author: henrib Date: Tue Nov 3 16:13:40 2009 New Revision: 832467 URL: http://svn.apache.org/viewvc?rev=832467&view=rev Log: Documented removal of Expression.add{Pre,Post}Resolver methods Modified: commons/proper/jexl/trunk/RELEASE-NOTES.txt Modified: commons/proper/jexl/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/RELEASE-NOTES.txt?rev=832467&r1=832466&r2=832467&view=diff == --- commons/proper/jexl/trunk/RELEASE-NOTES.txt (original) +++ commons/proper/jexl/trunk/RELEASE-NOTES.txt Tue Nov 3 16:13:40 2009 @@ -55,6 +55,8 @@ The following methods have been removed: * Info.getTemplateName() - use Info.getName() instead + * Expression.addPostResolver() / Expression.addPreResolver() - set ant-like variables in JexlContext, implement +a specific JexlContext or derive JexlcontextInterpreter/JexlEngine instead Division (/ operator) behavior change: * Division between integers no longer casts its operands to double; integer division
svn commit: r832481 - in /commons/proper/vfs/trunk: core/src/main/java/org/apache/commons/vfs/provider/ftp/FtpFileObject.java xdocs/changes.xml
Author: rgoers Date: Tue Nov 3 17:36:07 2009 New Revision: 832481 URL: http://svn.apache.org/viewvc?rev=832481&view=rev Log: Apply patch for VFS-289 provided by Kirill Safonov Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ftp/FtpFileObject.java commons/proper/vfs/trunk/xdocs/changes.xml Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ftp/FtpFileObject.java URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ftp/FtpFileObject.java?rev=832481&r1=832480&r2=832481&view=diff == --- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ftp/FtpFileObject.java (original) +++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ftp/FtpFileObject.java Tue Nov 3 17:36:07 2009 @@ -585,13 +585,19 @@ protected InputStream doGetInputStream() throws Exception { final FtpClient client = ftpFs.getClient(); -final InputStream instr = client.retrieveFileStream(relPath); -// VFS-210 -if (instr == null) -{ -throw new FileNotFoundException(getName().toString()); +try { +final InputStream instr = client.retrieveFileStream(relPath); +// VFS-210 +if (instr == null) +{ +throw new FileNotFoundException(getName().toString()); +} +return new FtpInputStream(client, instr); +} +catch (Exception e) { +ftpFs.putClient(client); +throw e; } -return new FtpInputStream(client, instr); } protected RandomAccessContent doGetRandomAccessContent(final RandomAccessMode mode) throws Exception @@ -606,26 +612,32 @@ throws Exception { final FtpClient client = ftpFs.getClient(); -OutputStream out = null; -if (bAppend) -{ -out = client.appendFileStream(relPath); -} -else -{ -out = client.storeFileStream(relPath); -} +try { +OutputStream out = null; +if (bAppend) +{ +out = client.appendFileStream(relPath); +} +else +{ +out = client.storeFileStream(relPath); +} -if (out == null) -{ -throw new FileSystemException("vfs.provider.ftp/output-error.debug", new Object[] -{ -this.getName(), -client.getReplyString() -}); -} +if (out == null) +{ +throw new FileSystemException("vfs.provider.ftp/output-error.debug", new Object[] +{ +this.getName(), +client.getReplyString() +}); +} -return new FtpOutputStream(client, out); +return new FtpOutputStream(client, out); +} +catch (Exception e) { +ftpFs.putClient(client); +throw e; +} } String getRelPath() @@ -636,16 +648,22 @@ FtpInputStream getInputStream(long filePointer) throws IOException { final FtpClient client = ftpFs.getClient(); -final InputStream instr = client.retrieveFileStream(relPath, filePointer); -if (instr == null) -{ -throw new FileSystemException("vfs.provider.ftp/input-error.debug", new Object[] -{ -this.getName(), -client.getReplyString() -}); +try { +final InputStream instr = client.retrieveFileStream(relPath, filePointer); +if (instr == null) +{ +throw new FileSystemException("vfs.provider.ftp/input-error.debug", new Object[] +{ +this.getName(), +client.getReplyString() +}); +} +return new FtpInputStream(client, instr); +} +catch (IOException e) { +ftpFs.putClient(client); +throw e; } -return new FtpInputStream(client, instr); } /** Modified: commons/proper/vfs/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/xdocs/changes.xml?rev=832481&r1=832480&r2=832481&view=diff == --- commons/proper/vfs/trunk/xdocs/changes.xml (original) +++ commons/proper/vfs/trunk/xdocs/changes.xml Tue Nov 3 17:36:07 2009 @@ -23,6 +23,9 @@ + +FTP connection is not released If exception is thrown out of FtpFileObject.doGetOutputStream(). + SftpFileObject.doL
svn commit: r832480 - /commons/proper/dbutils/trunk/pom.xml
Author: dfabulich Date: Tue Nov 3 17:32:57 2009 New Revision: 832480 URL: http://svn.apache.org/viewvc?rev=832480&view=rev Log: Updating compiler plugin separately (why did this ever work before?) Modified: commons/proper/dbutils/trunk/pom.xml Modified: commons/proper/dbutils/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/pom.xml?rev=832480&r1=832479&r2=832480&view=diff == --- commons/proper/dbutils/trunk/pom.xml [utf-8] (original) +++ commons/proper/dbutils/trunk/pom.xml [utf-8] Tue Nov 3 17:32:57 2009 @@ -206,8 +206,8 @@ org.apache.maven.plugins maven-compiler-plugin -1.4 -1.4 +1.5 +1.5
svn commit: r832577 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java site/xdoc/changes.xml test/java/org/apache/commons/math/linear/EigenDecomp
Author: luc Date: Tue Nov 3 22:04:08 2009 New Revision: 832577 URL: http://svn.apache.org/viewvc?rev=832577&view=rev Log: fixed an ArrayIndexOutOfBoundsException Kudos to Dimitri who debugged this mess of fortran/java array indices translation JIRA: MATH-308 Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java commons/proper/math/trunk/src/site/xdoc/changes.xml commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/EigenDecompositionImplTest.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java?rev=832577&r1=832576&r2=832577&view=diff == --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java Tue Nov 3 22:04:08 2009 @@ -595,8 +595,12 @@ } final double dCurrent = main[m - 1]; -work[lowerStart + m - 1] = dCurrent - eCurrent; -work[upperStart + m - 1] = dCurrent + eCurrent; +final double lower = dCurrent - eCurrent; +work[lowerStart + m - 1] = lower; +lowerSpectra = Math.min(lowerSpectra, lower); +final double upper = dCurrent + eCurrent; +work[upperStart + m - 1] = upper; +upperSpectra = Math.max(upperSpectra, upper); minPivot = MathUtils.SAFE_MIN * Math.max(1.0, eMax * eMax); } @@ -647,7 +651,7 @@ tau = (range[1] - range[0]) * MathUtils.EPSILON * n + 2 * minPivot; -// decompose TλI as LDLT +// decompose T-λI as LDLT ldlTDecomposition(lambda, begin, n); // apply general dqd/dqds method @@ -899,8 +903,8 @@ diagMax= work[4 * i0]; offDiagMin = work[4 * i0 + 2]; double previousEMin = work[4 * i0 + 3]; -for (int i = 4 * i0; i < 4 * n0 - 11; i += 4) { -if ((work[i + 3] <= TOLERANCE_2 * work[i]) && +for (int i = 4 * i0; i < 4 * n0 - 16; i += 4) { +if ((work[i + 3] <= TOLERANCE_2 * work[i]) || (work[i + 2] <= TOLERANCE_2 * sigma)) { // insert a split work[i + 2] = -sigma; @@ -1537,7 +1541,7 @@ double a2 = (work[np - 8] / b2) * (1 + work[np - 4] / b1); // approximate contribution to norm squared from i < nn-2. -if (end - start > 2) { +if (end - start > 3) { b2 = work[nn - 13] / work[nn - 15]; a2 = a2 + b2; for (int i4 = nn - 17; i4 >= 4 * start + 2 + pingPong; i4 -= 4) { Modified: commons/proper/math/trunk/src/site/xdoc/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/changes.xml?rev=832577&r1=832576&r2=832577&view=diff == --- commons/proper/math/trunk/src/site/xdoc/changes.xml (original) +++ commons/proper/math/trunk/src/site/xdoc/changes.xml Tue Nov 3 22:04:08 2009 @@ -39,6 +39,10 @@ + +Fixed an ArrayIndexOutOfBoundsException in eigen decomposition. Kudos to Dimitri +for debugging this, it was really difficult. + Fixed parameter test in RandomDataImpl#nextExponential. The method now throws IllegalArgumentException for mean = 0. Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/EigenDecompositionImplTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/EigenDecompositionImplTest.java?rev=832577&r1=832576&r2=832577&view=diff == --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/EigenDecompositionImplTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/EigenDecompositionImplTest.java Tue Nov 3 22:04:08 2009 @@ -108,6 +108,40 @@ assertEquals(0.1, ed.getRealEigenvalue(3), 1.0e-15); } +// the following test triggered an ArrayIndexOutOfBoundsException in commons-math 2.0 +public void testMath308() { + +double[] mainTridiagonal = { +22.330154644539597, 46.65485522478641, 17.393672330044705, 54.46687435351116, 80.17800767709437 +}; +double[] secondaryTridiagonal = { +13.04450406501361, -5.977590941539671, 2.9040909856707517, 7.1570352792841225 +}; +
svn commit: r832503 - in /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl: JexlArithmetic.java scripting/JexlScriptEngine.java
Author: sebb Date: Tue Nov 3 18:45:54 2009 New Revision: 832503 URL: http://svn.apache.org/viewvc?rev=832503&view=rev Log: Reduce scope of @SuppressWarnings as much as possible Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/JexlArithmetic.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/JexlArithmetic.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/JexlArithmetic.java?rev=832503&r1=832502&r2=832503&view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/JexlArithmetic.java (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/JexlArithmetic.java Tue Nov 3 18:45:54 2009 @@ -439,7 +439,6 @@ * @param right second value * @return test result. */ -@SuppressWarnings("unchecked") public boolean lessThan(Object left, Object right) { if ((left == right) || (left == null) || (right == null)) { return false; @@ -460,9 +459,11 @@ String rightString = right.toString(); return leftString.compareTo(rightString) < 0; } else if (left instanceof Comparable) { +@SuppressWarnings("unchecked") final Comparable comparable = (Comparable) left; return comparable.compareTo(right) < 0; } else if (right instanceof Comparable) { +@SuppressWarnings("unchecked") final Comparable comparable = (Comparable) right; return comparable.compareTo(left) > 0; } Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java?rev=832503&r1=832502&r2=832503&view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java Tue Nov 3 18:45:54 2009 @@ -130,7 +130,6 @@ } /** {...@inheritdoc} */ -@SuppressWarnings("unchecked") public Object eval(String scriptText, final ScriptContext context) throws ScriptException { // This is mandated by JSR-223 (see SCR.5.5.2 Methods) if (scriptText == null || context == null) { @@ -142,6 +141,7 @@ try { Script script = jexlEngine.createScript(scriptText); JexlContext ctxt = new JexlContext(){ +@SuppressWarnings("unchecked") public void setVars(Map vars) { context.setBindings(new SimpleBindings(vars), ScriptContext.ENGINE_SCOPE); }
svn commit: r832504 - in /commons/proper/jexl/trunk/src: main/java/org/apache/commons/jexl/util/ test/java/org/apache/commons/jexl/ test/java/org/apache/commons/jexl/util/introspection/
Author: sebb Date: Tue Nov 3 18:46:37 2009 New Revision: 832504 URL: http://svn.apache.org/viewvc?rev=832504&view=rev Log: Remove autoboxing Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListGetExecutor.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListSetExecutor.java commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/BitwiseOperatorTest.java commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/util/introspection/DiscoveryTest.java Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListGetExecutor.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListGetExecutor.java?rev=832504&r1=832503&r2=832504&view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListGetExecutor.java (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListGetExecutor.java Tue Nov 3 18:46:37 2009 @@ -70,9 +70,9 @@ && objectClass.equals(obj.getClass()) && key instanceof Integer) { if (method == ARRAY_GET) { -return java.lang.reflect.Array.get(obj, (Integer) key); +return java.lang.reflect.Array.get(obj, ((Integer) key).intValue()); } else { -return ((List) obj).get((Integer) key); +return ((List) obj).get(((Integer) key).intValue()); } } return TRY_FAILED; Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListSetExecutor.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListSetExecutor.java?rev=832504&r1=832503&r2=832504&view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListSetExecutor.java (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl/util/ListSetExecutor.java Tue Nov 3 18:46:37 2009 @@ -71,10 +71,10 @@ && objectClass.equals(obj.getClass()) && key instanceof Integer) { if (method == ARRAY_SET) { -Array.set(obj, (Integer) key, value); +Array.set(obj, ((Integer) key).intValue(), value); } else { final List list = (List) obj; -list.set((Integer) key, value); +list.set(((Integer) key).intValue(), value); } return value; } Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/BitwiseOperatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/BitwiseOperatorTest.java?rev=832504&r1=832503&r2=832504&view=diff == --- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/BitwiseOperatorTest.java (original) +++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/BitwiseOperatorTest.java Tue Nov 3 18:46:37 2009 @@ -142,8 +142,8 @@ } public void testParenthesized() throws Exception { -asserter.assertExpression("(2 | 1) & 3", 3L); -asserter.assertExpression("(2 & 1) | 3", 3L); +asserter.assertExpression("(2 | 1) & 3", Long.valueOf(3L)); +asserter.assertExpression("(2 & 1) | 3", Long.valueOf(3L)); asserter.assertExpression("~(120 | 42)", new Long( ~(120 | 42) )); } Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/util/introspection/DiscoveryTest.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/util/introspection/DiscoveryTest.java?rev=832504&r1=832503&r2=832504&view=diff == --- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/util/introspection/DiscoveryTest.java (original) +++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/util/introspection/DiscoveryTest.java Tue Nov 3 18:46:37 2009 @@ -135,7 +135,7 @@ assertTrue("duck property getter", get instanceof DuckGetExecutor); assertTrue("duck property setter", set instanceof DuckSetExecutor); // introspector and uberspect should return same result -assertEquals(get, (AbstractExecutor) uber.getPropertyGet(duck, "value", null)); +assertEquals(get, uber.getPropertyGet(duck, "value", null)); assertEquals(set, uber.getPropertySet(duck, "value", "foo", null)); // different property should return different setter/getter assertFalse(get.equals(intro.getGetExecutor(duck, "eulav"))); @@ -160,23 +160,23 @@ list.add("LIST");
svn commit: r832548 - /commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/QueryRunner.java
Author: dfabulich Date: Tue Nov 3 20:49:18 2009 New Revision: 832548 URL: http://svn.apache.org/viewvc?rev=832548&view=rev Log: [DBUTILS-60] Enhance message in QueryRunner#rethrow for Batch Modified: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/QueryRunner.java Modified: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/QueryRunner.java URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/QueryRunner.java?rev=832548&r1=832547&r2=832548&view=diff == --- commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/QueryRunner.java (original) +++ commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/QueryRunner.java Tue Nov 3 20:49:18 2009 @@ -536,7 +536,7 @@ if (params == null) { msg.append("[]"); } else { -msg.append(Arrays.asList(params)); +msg.append(Arrays.deepToString(params)); } SQLException e = new SQLException(msg.toString(), cause.getSQLState(),
svn commit: r832529 - in /commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers: AbstractKeyedHandler.java KeyedHandler.java
Author: dfabulich Date: Tue Nov 3 19:53:33 2009 New Revision: 832529 URL: http://svn.apache.org/viewvc?rev=832529&view=rev Log: [DBUTILS-61] Backwards binary compatibility broken in KeyedHandler Added: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/AbstractKeyedHandler.java Modified: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/KeyedHandler.java Added: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/AbstractKeyedHandler.java URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/AbstractKeyedHandler.java?rev=832529&view=auto == --- commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/AbstractKeyedHandler.java (added) +++ commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/AbstractKeyedHandler.java Tue Nov 3 19:53:33 2009 @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.dbutils.handlers; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.dbutils.ResultSetHandler; + +/** + * + * ResultSetHandler implementation that returns a Map. + * ResultSet rows are converted into objects (Vs) which are then stored + * in a Map under the given keys (Ks). + * + * + * @see org.apache.commons.dbutils.ResultSetHandler + * @since DbUtils 1.3 + */ +public abstract class AbstractKeyedHandler implements ResultSetHandler> { + + +/** + * Convert each row's columns into a Map and store then + * in a Map under ResultSet.getObject(key) key. + * + * @return A Map, never null. + * @throws SQLException if a database access error occurs + * @see org.apache.commons.dbutils.ResultSetHandler#handle(java.sql.ResultSet) + */ +public Map handle(ResultSet rs) throws SQLException { +Map result = createMap(); +while (rs.next()) { +result.put(createKey(rs), createRow(rs)); +} +return result; +} + +/** + * This factory method is called by handle() to create the Map + * to store records in. This implementation returns a HashMap + * instance. + * + * @return Map to store records in + */ +protected Map createMap() { +return new HashMap(); +} + +/** + * This factory method is called by handle() to retrieve the + * key value from the current ResultSet row. + * @param rs ResultSet to create a key from + * @return K from the configured key column name/index + * @throws SQLException if a database access error occurs + */ +protected abstract K createKey(ResultSet rs) throws SQLException; + +/** + * This factory method is called by handle() to store the + * current ResultSet row in some object. + * @param rs ResultSet to create a row from + * @return V object created from the current row + * @throws SQLException if a database access error occurs + */ +protected abstract V createRow(ResultSet rs) throws SQLException; + +} Modified: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/KeyedHandler.java URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/KeyedHandler.java?rev=832529&r1=832528&r2=832529&view=diff == --- commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/KeyedHandler.java (original) +++ commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/handlers/KeyedHandler.java Tue Nov 3 19:53:33 2009 @@ -18,19 +18,15 @@ import java.sql.ResultSet; import java.sql.SQLException; -import java.util.HashMap; import java.util.Map; -import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.RowProcessor; /** * * ResultSetHandler implementation that returns a Map of Maps. * ResultSet rows are converted into Maps which are then stored - * in a Map under the given key. Although
svn commit: r832634 - /commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingDriver.java
Author: psteitz Date: Wed Nov 4 00:31:50 2009 New Revision: 832634 URL: http://svn.apache.org/viewvc?rev=832634&view=rev Log: Made PoolGuardConnectionWrapper static, eliminated possible NPE in toString. Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingDriver.java Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingDriver.java URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingDriver.java?rev=832634&r1=832633&r2=832634&view=diff == --- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingDriver.java (original) +++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingDriver.java Wed Nov 4 00:31:50 2009 @@ -251,7 +251,7 @@ * PoolGuardConnectionWrapper is a Connection wrapper that makes sure a * closed connection cannot be used anymore. */ -private class PoolGuardConnectionWrapper extends DelegatingConnection { +static private class PoolGuardConnectionWrapper extends DelegatingConnection { private ObjectPool pool; private Connection delegate; @@ -409,7 +409,7 @@ public String toString() { if (delegate == null){ -return null; +return "NULL"; } return delegate.toString(); }
svn commit: r832535 - in /commons/proper/dbutils/trunk/src: java/org/apache/commons/dbutils/BeanProcessor.java test/org/apache/commons/dbutils/BeanProcessorTest.java test/org/apache/commons/dbutils/Mo
Author: dfabulich Date: Tue Nov 3 20:21:17 2009 New Revision: 832535 URL: http://svn.apache.org/viewvc?rev=832535&view=rev Log: [DBUTILS-57] BeanProcessor not able to map an alias column from a HSQLDB query to the any bean properties Submitted by: Julien Aymé Modified: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/BeanProcessor.java commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/BeanProcessorTest.java commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/MockResultSetMetaData.java Modified: commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/BeanProcessor.java URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/BeanProcessor.java?rev=832535&r1=832534&r2=832535&view=diff == --- commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/BeanProcessor.java (original) +++ commons/proper/dbutils/trunk/src/java/org/apache/commons/dbutils/BeanProcessor.java Tue Nov 3 20:21:17 2009 @@ -390,7 +390,10 @@ Arrays.fill(columnToProperty, PROPERTY_NOT_FOUND); for (int col = 1; col <= cols; col++) { -String columnName = rsmd.getColumnName(col); +String columnName = rsmd.getColumnLabel(col); +if (null == columnName || 0 == columnName.length()) { + columnName = rsmd.getColumnName(col); +} for (int i = 0; i < props.length; i++) { if (columnName.equalsIgnoreCase(props[i].getName())) { Modified: commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/BeanProcessorTest.java URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/BeanProcessorTest.java?rev=832535&r1=832534&r2=832535&view=diff == --- commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/BeanProcessorTest.java (original) +++ commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/BeanProcessorTest.java Tue Nov 3 20:21:17 2009 @@ -16,6 +16,9 @@ */ package org.apache.commons.dbutils; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.sql.ResultSetMetaData; import java.sql.SQLException; public class BeanProcessorTest extends BaseTestCase { @@ -25,14 +28,58 @@ public void testProcess() throws SQLException { TestBean b = null; assertTrue(this.rs.next()); -b = (TestBean) beanProc.toBean(this.rs, TestBean.class); +b = beanProc.toBean(this.rs, TestBean.class); assertEquals(13.0, b.getColumnProcessorDoubleTest(), 0); - + assertTrue(this.rs.next()); -b = (TestBean) beanProc.toBean(this.rs, TestBean.class); +b = beanProc.toBean(this.rs, TestBean.class); assertEquals(13.0, b.getColumnProcessorDoubleTest(), 0); assertFalse(this.rs.next()); } +public static class MapColumnToPropertiesBean { +private String one; + +private String two; + +private String three; + +public String getOne() { +return one; +} + +public void setOne(String one) { +this.one = one; +} + +public String getTwo() { +return two; +} + +public void setTwo(String two) { +this.two = two; +} + +public String getThree() { +return three; +} + +public void setThree(String three) { +this.three = three; +} +} + +public void testMapColumnToProperties() throws Exception { +String[] columnNames = { "test", "test", "three" }; +String[] columnLabels = { "one", "two", null }; +ResultSetMetaData rsmd = ProxyFactory.instance().createResultSetMetaData( +new MockResultSetMetaData(columnNames, columnLabels)); +PropertyDescriptor[] props = Introspector.getBeanInfo(MapColumnToPropertiesBean.class).getPropertyDescriptors(); + +int[] columns = beanProc.mapColumnsToProperties(rsmd, props); +for (int i = 1; i < columns.length; i++) { +assertTrue(columns[i] != BeanProcessor.PROPERTY_NOT_FOUND); +} +} } Modified: commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/MockResultSetMetaData.java URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/MockResultSetMetaData.java?rev=832535&r1=832534&r2=832535&view=diff == --- commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/MockResultSetMetaData.java (original) +++ commons/proper/dbutils/trunk/src/test/org/apache/commons/dbutils/MockResultSetMetaData.java Tue Nov 3 20:21:17 2009 @@ -27,6 +27,7 @@ public class MockResultSetMetaD