[ https://issues.apache.org/jira/browse/DERBY-2247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anurag Shekhar updated DERBY-2247: ---------------------------------- Attachment: derby-2247-followupv3.diff >No, I didn't notice the difference in signatures. It should still >return StorageFile, so the method would look something like this: > public StorageFile createTemporaryFile(String prefix, String suffix) throws IOException > { > return newStorageFile(File.createTempFile( > prefix, suffix, new File(getTempDir().getPath())).getPath()); > } updated with a minor change passing directory in newStorageFile (without this its tries to make absulute path starting from db direcotry) >>5) LOBInputStream.read(byte[]) and read(byte[],int,int) contain this >> piece of code: >>+ int ret = control.read(b, off, len, pos); >>+ if (ret > 0) { >>+ pos += ret; >>+ return ret; >>+ } >>+ return -1; >>Since a call to InputStream.read(byte[]...) theoretically can return >>0, I think (ret > 0) should be changed to (ret >= 0) or perhaps (ret >>!= -1). > >this was taken care by one of the privious patch >The previous patch removed read(byte[]), but read(byte[],int,int) is >still there with the same code. fixed >>11) LOBStreamControl.init() might ignore some exceptions. > >Added all skipped exception in unexpected exception. >I'm not sure unexpectedUserException() is the correct method to use to >wrap the exception in this case. I thought it was supposed to be used >to wrap exceptions thrown by user code (like stored procedures and >VTIs). Perhaps Util.javaException() would be better? It was wrong. I am now throw IOException (assuming most of the time it will be a i/o error apart form RuntimeException and StandardException) with cause set to original exception. >>1) Can control be final? > >ClobStreamControl extends from LOBStreamControl. ClobStreamControl is >already final. >I think Kristian was referring to the variable control in >LOBOutputStream. It is not final. changed control in LOBInputStrea and LOBOutputStream to final >>10) I think it would be good to split the testSetBytes into one test >>method for in-memory operation, and one for on disk operation. > >fixed >It would also be good if these test cases called close() on >rs. Another thing I noticed is that the test cases contain clean-up >code in a finally block. If an exception is thrown in the finally >block, it will hide the original error, so I think it's better to >remove the finally block. added close and removed fianlly block >>15) Comment why the test is currently only run in embedded in suite(). > >these tests, the way they are written, are specific to embedded >(testing with memory and then file system) and the client already has >similar tests in jdbcapi/LobStreamsTest. >Could you add this comment in the source file as well? Would it run in >client/server mode? If so, I think it would be valuable to run it >under the client too. updated comment in suite method Some other comments to LobStreamTest: - tearDown() doesn't call super.tearDown() (if it did, calling rollback() and close() on conn wouldn't be necessary) - the instance variables dbName, useLOBStreamControl and f are not used and should be removed - the instance variable conn is not needed since the connection is also stored in the super class - blob should be set to null in tearDown() called super.tearDown and set blob to null and removed rollback and close call. >Follow up comments from knuth > >>- long finalLen = (dataBytes != null) ? dataBytes.length + b.length >>- : b.length; >>- if (finalLen < MAX_BUF_SIZE) >>+ if (pos + b.length < MAX_BUF_SIZE) >> return updateData(b, off, len, pos); >> else { >> init(dataBytes, pos); >> } > >>Shouldn't b.length have been len, in case we don't write the entire byte >>array? >>And shouldn't the comparison use <= instead of <? > >changed I noticed that you didn't change the comparison operator. Do you think that comment was wrong? i had missed it changed it in the current patch. > provide set methods for blob in embeded driver > ---------------------------------------------- > > Key: DERBY-2247 > URL: https://issues.apache.org/jira/browse/DERBY-2247 > Project: Derby > Issue Type: Sub-task > Components: JDBC > Environment: all > Reporter: Anurag Shekhar > Assigned To: Anurag Shekhar > Priority: Minor > Attachments: derby-2247-followup.diff, derby-2247-followup2.diff, > derby-2247-followup2.diff, derby-2247-followupv3.diff, > derby-2247-v3-usingStoreFactory.diff, derby-2247-v4-usingStoreFactory.diff, > derby-2247.diff, derby-2247v2-using_StoreFactory.diff > > -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.