You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Kathey Marsden <km...@sbcglobal.net> on 2009/01/14 18:22:47 UTC
Re: svn commit: r733725 - /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java
kristwaa@apache.org wrote:
> Author: kristwaa
> Date: Mon Jan 12 05:13:15 2009
> New Revision: 733725
>
> URL: http://svn.apache.org/viewvc?rev=733725&view=rev
> Log:
> Whitespace changes, JavaDoc changes and formatting changes only.
>
>
This commit caused a new javadoc warning in ClobTest:
[javadoc]
C:\nightlies\main\src\opensource\java\testing\org\apache\derbyTesting\functionTests\tests\jdbc4\ClobTest.java:333:
warning - @param argument "parameterTypes" is not a parameter name.
Thanks
Kathey
> Modified:
> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java
>
> Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java?rev=733725&r1=733724&r2=733725&view=diff
> ==============================================================================
> --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java (original)
> +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java Mon Jan 12 05:13:15 2009
> @@ -1,23 +1,22 @@
> -
> /*
> -
> - Derby - Class ClobTest
> -
> +
> + Derby - Class org.apache.derbyTesting.functionTests.tests.jdbc4.ClobTest
> +
> 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.derbyTesting.functionTests.tests.jdbc4;
> @@ -47,31 +46,30 @@
> import org.apache.derbyTesting.functionTests.util.streams.LoopingAlphabetReader;
> import org.apache.derbyTesting.junit.DatabasePropertyTestSetup;
> class ExemptClobMD {
> - // The Name of the method
> + /** The Name of the method. */
> private String methodName_;
> -
> - // The parameters of the method
> +
> + /** The parameters of the method. */
> private Class [] params_;
> -
> - //Whether it is exempted in the
> - //Client or the Embedded framework
> +
> + /** Tells if exempted in the client framework. */
> private boolean isClientFramework_;
> + /** Tells if exempted in the embedded framework. */
> private boolean isEmbeddedFramework_;
> -
> +
> /**
> * The Constructor for the ExemptClobMD class that
> - * initialized the object with the details of the
> + * initialized the object with the details of the
> * methods that have been exempted
> *
> * @param methodName A String that contains the name of the method
> * that has been exempted.
> - * @param params A array of Class that contains the parameters
> + * @param params A array of Class that contains the parameters
> * of the methods.
> - * @param isClientFramework true if the method is exempted in the
> + * @param isClientFramework true if the method is exempted in the
> * Client framework.
> - * @param isEmbeddedFramework true if the method is exempted in the
> + * @param isEmbeddedFramework true if the method is exempted in the
> * Embedded framework.
> - *
> */
> public ExemptClobMD(String methodName,Class [] params,
> boolean isClientFramework,
> @@ -81,7 +79,7 @@
> isClientFramework_ = isClientFramework;
> isEmbeddedFramework_ = isEmbeddedFramework;
> }
> -
> +
> /**
> *
> * Returns the name of the method.
> @@ -90,23 +88,23 @@
> *
> */
> public String getMethodName() { return methodName_; }
> -
> +
> /**
> * Returns a array of Class containing the type of the parameters
> - * of this method.
> + * of this method.
> *
> - * @return A array of Class containing the type of the parameters
> + * @return A array of Class containing the type of the parameters
> * of the method.
> */
> public Class [] getParams() { return params_; }
> -
> +
> /**
> * Returns if the method is exempted from the Client Framework.
> *
> * @return true if the method is exempted from the Client Framework.
> */
> public boolean getIfClientFramework() { return isClientFramework_; }
> -
> +
> /**
> * Returns if the method is exempted from the Embedded Framework.
> *
> @@ -123,25 +121,29 @@
>
> /** Default Clob object used by the tests. */
> private Clob clob = null;
> -
> - // Initialize with the details of the method that are exempted from
> +
> + // Initialize with the details of the method that are exempted from
> //throwing a SQLException when they are called after calling free()
> //on a LOB.
> -
> +
> private static final ExemptClobMD [] emd = new ExemptClobMD [] {
> - new ExemptClobMD( "getCharacterStream", new Class[] { long.class, long.class } ,true,true),
> - new ExemptClobMD( "setString", new Class[] { long.class, String.class } ,false,true),
> - new ExemptClobMD( "truncate", new Class[] { long.class },false,true),
> - new ExemptClobMD( "free", null,true,true)
> + new ExemptClobMD( "getCharacterStream",
> + new Class[] { long.class, long.class } ,true,true),
> + new ExemptClobMD( "setString",
> + new Class[] { long.class, String.class } ,false,true),
> + new ExemptClobMD( "truncate",
> + new Class[] { long.class },false,true),
> + new ExemptClobMD( "free",
> + null,true,true)
> };
> -
> +
> // An HashMap that is indexed by the Method which facilitated easy
> //search for whether the given method has been exempted from the
> //LOB interface.
> -
> - private HashMap<Method,ExemptClobMD> excludedMethodSet =
> +
> + private HashMap<Method,ExemptClobMD> excludedMethodSet =
> new HashMap<Method,ExemptClobMD>();
> -
> +
> /**
> * Create the test with the given name.
> *
> @@ -150,8 +152,8 @@
> public ClobTest(String name) {
> super(name);
> }
> -
> - public void setUp()
> +
> + public void setUp()
> throws SQLException {
> // Life span of Clob objects are limited by the transaction. Need
> // autocommit off so Clob objects survive closing of result set.
> @@ -166,7 +168,7 @@
> excludedMethodSet = null;
> super.tearDown();
> }
> -
> +
> /**
> * Builds the HashSet which will be used to test whether the given methods
> * can be exempted or not
> @@ -184,26 +186,26 @@
> }
> }
> }
> -
> +
> /**
> * Tests the implementation for the free() method in the
> * Clob interface.
> - *
> + *
> * @throws SQLException if an error occurs during releasing
> * the Clob resources
> *
> */
> public void testFreeandMethodsAfterCallingFree()
> - throws IllegalAccessException, InvocationTargetException, SQLException
> + throws IllegalAccessException, InvocationTargetException, SQLException
> {
> clob = BlobClobTestSetup.getSampleClob(getConnection());
> -
> - //call the buildHashSetMethod to initialize the
> - //HashSet with the method signatures that are exempted
> +
> + //call the buildHashSetMethod to initialize the
> + //HashSet with the method signatures that are exempted
> //from throwing a SQLException after free has been called
> //on the Clob object.
> buildHashSet();
> -
> +
> InputStream asciiStream = clob.getAsciiStream();
> Reader charStream = clob.getCharacterStream();
> clob.free();
> @@ -219,51 +221,50 @@
> //an SQLException
> buildMethodList(clob);
> }
> -
> - /*
> - *
> - * Enumerate the methods of the Clob interface and
> +
> + /**
> + * Enumerate the methods of the Clob interface and
> * get the list of methods present in the interface
> * @param LOB an instance of the Clob interface implementation
> */
> void buildMethodList(Object LOB)
> throws IllegalAccessException, InvocationTargetException {
> //If the given method throws the correct exception
> - //set this to true and add it to the
> + //set this to true and add it to the
> boolean valid = true;
> -
> +
> //create a list of the methods that fail the test
> Vector<Method> methodList = new Vector<Method>();
> -
> +
> //The class whose methods are to be verified
> Class clazz = Clob.class;
> -
> +
> //The list of the methods in the class that need to be invoked
> //and verified
> Method [] methods = clazz.getMethods();
> -
> +
> //Check each of the methods to ensure that
> //they throw the required exception
> for(int i=0;i<methods.length;i++) {
> if(!checkIfExempted(methods[i])) {
> valid = checkIfMethodThrowsSQLException(LOB,methods[i]);
> -
> +
> //add the method to the list if the method does
> //not throw the required exception
> if(valid == false) methodList.add(methods[i]);
> -
> +
> //reset valid
> valid = true;
> }
> }
> -
> +
> if(!methodList.isEmpty()) {
> int c=0;
> String failureMessage = "The Following methods don't throw " +
> "required exception - ";
> for (Method m : methodList) {
> c = c + 1;
> - if(c == methodList.size() && c != 1)
> + if(c == methodList.size() && c != 1)
> failureMessage += " & ";
> else if(c != 1)
> failureMessage += " , ";
> @@ -272,7 +273,7 @@
> fail(failureMessage);
> }
> }
> -
> +
> /**
> * Checks if the method is to be exempted from testing or not.
> *
> @@ -295,7 +296,7 @@
> return isExempted;
> }
>
> - /*
> + /**
> * Checks if the invocation of the method throws a SQLExceptio
> * as expected.
> * @param LOB the Object that implements the Blob interface
> @@ -304,7 +305,6 @@
> * @return true If the method throws the SQLException required
> * after the free method has been called on the
> * LOB object
> - *
> */
> boolean checkIfMethodThrowsSQLException(Object LOB,Method method)
> throws IllegalAccessException, InvocationTargetException {
> @@ -320,16 +320,16 @@
> return false;
> }
>
> - /*
> + /**
> * Return a array of objects containing the default values for
> * the objects passed in as parameters
> - *
> - * @param parameterTypes an array containing the types of the parameter
> + *
> + * @param parameterTypes an array containing the types of the parameter
> * to the method
> - * @return an array of Objects containing the null values for the
> + * @return an array of Objects containing the null values for the
> * parameter inputs
> */
> -
> +
> Object[] getNullValues(Class<?> [] params) {
> Object[] args = new Object[params.length];
> for (int i = 0; i < params.length; i++) {
> @@ -337,17 +337,15 @@
> }
> return args;
> }
> -
> - /*
> +
> + /**
> * Returns the null value for the specific type
> - *
> + *
> * @param type the type of the parameter for which the null
> * value is required
> * @return the null value for the specific type
> - *
> */
> - Object getNullValueForType(Class type)
> - {
> + Object getNullValueForType(Class type) {
> if (!type.isPrimitive()) {
> return null;
> }
> @@ -378,10 +376,10 @@
> fail("Don't know how to handle type " + type);
> return null; // unreachable statement
> }
> -
> +
> /**
> * Tests the implementation of getCharacterStream(long pos, long length).
> - *
> + *
> * @throws Exception
> */
> public void testGetCharacterStreamLong()
> @@ -539,7 +537,7 @@
> assertSQLState("XJ087", sqle);
> }
> }
> -
> +
> /**
> * Tests that the InputStream got from
> * a empty Clob reflects new data in the
> @@ -552,29 +550,29 @@
> //to do the inserts into the
> //Clob.
> String str = "Hi I am the insert String";
> -
> +
> //Create the InputStream that will
> //be used for comparing the Stream
> //that is obtained from the Blob after
> //the update.
> ByteArrayInputStream str_is = new ByteArrayInputStream
> (str.getBytes("US-ASCII"));
> -
> +
> //create the empty Clob.
> Clob clob = getConnection().createClob();
> -
> +
> //Get the InputStream from this
> //Clob
> InputStream is = clob.getAsciiStream();
> -
> +
> //set the String into the clob.
> clob.setString(1, str);
> -
> +
> //Ensure that the Stream obtained from
> //the clob contains the expected bytes
> assertEquals(str_is, is);
> }
> -
> +
> /**
> * Tests that the Reader got from
> * a empty Clob reflects new data in the
> @@ -591,23 +589,23 @@
> //The string reader corresponding to this
> //string that will be used in the comparison.
> StringReader r_string = new StringReader(str);
> -
> +
> //create the empty Clob.
> Clob clob = getConnection().createClob();
> -
> +
> //Get the Reader from this
> //Clob
> Reader r_clob = clob.getCharacterStream();
> -
> +
> //set the String into the clob.
> clob.setString(1, str);
> -
> +
> //Now compare the reader corresponding
> //to the string and the reader obtained
> //form the clob to see if they match.
> assertEquals(r_string, r_clob);
> }
> -
> +
> /**
> * Tests that the data updated in a Clob
> * is always reflected in the InputStream
> @@ -622,41 +620,41 @@
> //to do the inserts into the
> //Clob.
> String str1 = "Hi I am the insert string";
> -
> - //Stores the byte array representation of
> +
> + //Stores the byte array representation of
> //the insert string.
> byte[] str1_bytes = str1.getBytes();
> -
> +
> //The String that will be used in the
> //second series of updates
> String str2 = "Hi I am the update string";
> -
> +
> //create the empty Clob.
> Clob clob = getConnection().createClob();
> -
> +
> //Get the InputStream from this
> //Clob before any writes happen.
> InputStream is_BeforeWrite = clob.getAsciiStream();
> -
> +
> //Get an OutputStream from this Clob
> //into which the data can be written
> OutputStream os = clob.setAsciiStream(1);
> os.write(str1_bytes);
> -
> +
> //Doing a setString now on the Clob
> //should reflect the same extension
> //in the InputStream also.
> clob.setString((str1_bytes.length)+1, str2);
> -
> +
> //Get the input stream from the
> //Clob after the update
> InputStream is_AfterWrite = clob.getAsciiStream();
> -
> +
> //Now check if the two InputStreams
> //match
> assertEquals(is_BeforeWrite, is_AfterWrite);
> }
> -
> +
> /**
> * Tests that the data updated in a Clob
> * is always reflected in the Reader
> @@ -671,34 +669,34 @@
> //to do the inserts into the
> //Clob.
> String str1 = "Hi I am the insert string";
> -
> +
> //The String that will be used in the
> //second series of updates
> String str2 = "Hi I am the update string";
> -
> +
> //create the empty Clob.
> Clob clob = getConnection().createClob();
> -
> +
> //Get the Reader from this
> //Clob
> Reader r_BeforeWrite = clob.getCharacterStream();
> -
> +
> //Get a writer from this Clob
> //into which the data can be written
> Writer w = clob.setCharacterStream(1);
> char [] chars_str1 = new char[str1.length()];
> str2.getChars(0, str1.length(), chars_str1, 0);
> w.write(chars_str1);
> -
> +
> //Doing a setString now on the Clob
> //should reflect the same extension
> //in the InputStream also.
> clob.setString((str1.length())+1, str2);
> -
> +
> //Now get the reader from the Clob after
> //the update has been done.
> Reader r_AfterWrite = clob.getCharacterStream();
> -
> +
> //Now compare the two readers to see that they
> //contain the same data.
> assertEquals(r_BeforeWrite, r_AfterWrite);
> @@ -708,21 +706,20 @@
> /**
> * Test that a lock held on the corresponding row is released when free() is
> * called on the Clob object.
> - * @throws java.sql.SQLException
> + * @throws java.sql.SQLException
> */
> public void testLockingAfterFree() throws SQLException
> {
> int id = initializeLongClob(); // Opens clob object
> executeParallelUpdate(id, true); // Test that timeout occurs
> -
> +
> // Test that update goes through after the clob is closed
> clob.free();
> executeParallelUpdate(id, false);
> -
> +
> commit();
> }
> -
> -
> +
> /**
> * Test that a lock held on the corresponding row is NOT released when
> * free() is called on the Clob object if the isolation level is
> @@ -735,17 +732,17 @@
> setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
> int id = initializeLongClob(); // Opens clob object
> executeParallelUpdate(id, true); // Test that timeout occurs
> -
> +
> // Test that update still times out after the clob is closed
> clob.free();
> executeParallelUpdate(id, true);
> -
> +
> // Test that the update goes through after the transaction has committed
> commit();
> executeParallelUpdate(id, false);
> }
>
> -
> +
> /**
> * Test that a lock held on the corresponding row is released when
> * free() is called on the Clob object if the isolation level is
> @@ -758,26 +755,26 @@
> setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
> int id = initializeLongClob(); // Opens clob object
> executeParallelUpdate(id, true); // Test that timeout occurs
> -
> +
> // Test that update goes through after the clob is closed
> clob.free();
> executeParallelUpdate(id, false);
> -
> +
> commit();
> }
>
>
> /**
> - * Insert a row with a large clob into the test table. Read the row from
> + * Insert a row with a large clob into the test table. Read the row from
> * the database and assign the clob value to <code>clob</code>.
> * @return The id of the row that was inserted
> - * @throws java.sql.SQLException
> + * @throws java.sql.SQLException
> */
> private int initializeLongClob() throws SQLException
> {
> - // Clob needs to be larger than one page for locking to occur
> + // Clob needs to be larger than one page for locking to occur
> final int lobLength = 40000;
> -
> +
> // Insert a long Clob
> PreparedStatement ps = prepareStatement(
> "insert into BLOBCLOB(ID, CLOBDATA) values(?,?)");
> @@ -787,28 +784,28 @@
> ps.execute();
> ps.close();
> commit();
> -
> +
> // Fetch the Clob object from the database
> Statement st = createStatement();
> - ResultSet rs =
> + ResultSet rs =
> st.executeQuery("select CLOBDATA from BLOBCLOB where ID=" + id);
> rs.next();
> clob = rs.getClob(1);
> rs.close();
> st.close();
> -
> +
> return id;
> }
> -
> +
>
> /**
> - * Try to update the row with the given error. Flag a failure if a
> + * Try to update the row with the given error. Flag a failure if a
> * timeout occurs when not expected, and vice versa.
> * @param id The id of the row to be updated
> * @param timeoutExpected true if it is expected that the update times out
> - * @throws java.sql.SQLException
> + * @throws java.sql.SQLException
> */
> - private void executeParallelUpdate(int id, boolean timeoutExpected)
> + private void executeParallelUpdate(int id, boolean timeoutExpected)
> throws SQLException
> {
> Connection conn2 = openDefaultConnection();
> @@ -829,13 +826,12 @@
> conn2.close();
> if (timeoutExpected) {
> assertSQLState(LOCK_TIMEOUT, se);
> - } else {
> + } else {
> throw se;
> }
> }
> }
>
> -
> /**
> * Create test suite for this test.
> */
> @@ -844,10 +840,10 @@
> return new BlobClobTestSetup(
> // Reduce lock timeouts so lock test case does not take too long
> DatabasePropertyTestSetup.setLockTimeouts(
> - TestConfiguration.defaultSuite(ClobTest.class, false),
> - 2,
> + TestConfiguration.defaultSuite(ClobTest.class, false),
> + 2,
> 4));
> }
> -
> +
> private static final String LOCK_TIMEOUT = "40XL1";
> } // End class ClobTest
>
>
>
>
Re: svn commit: r733725 -
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java
Posted by Kristian Waagan <Kr...@Sun.COM>.
Kathey Marsden wrote:
> kristwaa@apache.org wrote:
>> Author: kristwaa
>> Date: Mon Jan 12 05:13:15 2009
>> New Revision: 733725
>>
>> URL: http://svn.apache.org/viewvc?rev=733725&view=rev
>> Log:
>> Whitespace changes, JavaDoc changes and formatting changes only.
>>
>>
> This commit caused a new javadoc warning in ClobTest:
> [javadoc]
> C:\nightlies\main\src\opensource\java\testing\org\apache\derbyTesting\functionTests\tests\jdbc4\ClobTest.java:333:
> warning - @param argument "parameterTypes" is not a parameter name.
Thanks, Kathey.
I made this error surface when I converted the Java comment to a JavaDoc
comment.
As a side note, I'm unable to generate the JavaDoc if I delete my
ant.properties file. The property setter is able to detected all three
versions of the JDK, but the JavaDoc target fails when processing the
testing directory.
I haven't looked more into this.
--
Kristian
>
> Thanks
>
> Kathey
>
>> Modified:
>>
>> db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java
>>
[ snip ]