[ 
https://issues.apache.org/jira/browse/HBASE-5720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13249415#comment-13249415
 ] 

Matt Corgan commented on HBASE-5720:
------------------------------------

The ideal way to split code in my opinion would be to put it in multiple source 
directories in the same project, and then configure the build path to set up 
one-way visibility between source directories.  For example, the src/test/java 
folder would be able to see the src/main/java folder but not vice versa.  
Unfortunately, eclipse does not support that.  It has a global classpath per 
project.  Can't find the exact discussion, but similar to: 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=224708.  

I can think of two alternatives:

1) Put multiple src directories in the main project, so everything is in that 
project's classpath.  Periodically have a human or something else remove 
non-core src directories from the classpath and see if that causes compilation 
errors in the main src.  I just tried removing the src/main/test directory from 
the classpath and was happy to see that the src/main/java folder still compiles.

2) A more heavy handed approach would be to create separate projects so you can 
actually enforce unidirectional classpath visibility.  That's how I've been 
developing HBASE-4676 which can be added to the main project as a separate jar. 
 Main project still compiles without it.  The downside of this is that having 
multiple projects is more configuration overhead, like you would probably need 
multiple svn repos.

I think moving towards #1 is a good start for core stuff while more exotic 
contributions could be made by submitting jars.  I'll try to nudge us in this 
direction with HBASE-4676, just wanted to make sure people agree that it's 
important =)
                
> HFileDataBlockEncoderImpl uses wrong header size when reading HFiles with no 
> checksums
> --------------------------------------------------------------------------------------
>
>                 Key: HBASE-5720
>                 URL: https://issues.apache.org/jira/browse/HBASE-5720
>             Project: HBase
>          Issue Type: Bug
>          Components: io, regionserver
>    Affects Versions: 0.94.0
>            Reporter: Matt Corgan
>            Priority: Blocker
>             Fix For: 0.94.0
>
>         Attachments: 5720-trunk-v2.txt, 5720-trunk.txt, 5720v4.txt, 
> 5720v4.txt, 5720v4.txt, HBASE-5720-v1.patch, HBASE-5720-v2.patch, 
> HBASE-5720-v3.patch
>
>
> When reading a .92 HFile without checksums, encoding it, and storing in the 
> block cache, the HFileDataBlockEncoderImpl always allocates a dummy header 
> appropriate for checksums even though there are none.  This corrupts the 
> byte[].
> Attaching a patch that allocates a DUMMY_HEADER_NO_CHECKSUM in that case 
> which I think is the desired behavior.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to