[
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