Hi Bob,
Thanks for some feedback, I don't think a lot of people are developing on
windows.  Some answers in line:

* Build does require Java 8, not "8 or later" as stated in java/README.md
>   There's a reference to sun.misc.Unsafe
> in 
> memory/memory-core/src/main/java/org/apache/arrow/memory/util/MemoryUtil.java
> which of course went away in JDK 9.

Is this the case even using "-Dio.netty.tryReflectionSetAccessible=true" as
mentioned in the README?


* The build won't work on Windows because the java/format POM downloads a
> binary flatc executable, but there's no artifact for Windows, just Linux
> and OSX. I wound up downloading Visual Studio and building the flatbuffers
> project.

This unfortunately sounds familiar, I think this indicate the popularity on
windows.  I also think the hosting of the mac and linux are not exactly
official (they are hosted by a former contributor).  Updating the Readme
might be a good first step with instructions on how to do this.

I see in the pom.xml that user.timezone is set to UTC. I have seen these
> types of errors in tests before; I know there are ways to insulate the test
> from the user's current timezone but maybe someone knows what's going on

This is somewhat surprising.  I would thought we had the user.timezone set
for exactly this reason.  There might have been a regression, this might
make a good second contribution if you wanted to look into fixing it.

* I bumped into what looks like a spurious checkstyle error: it reports
> memory/src/test/java/io/netty/buffer/TestExpandableByteBuf.java having no
> linefeed at the end when it definitely does. I set up Git not to do Windows
> conversions, and I checked with various editors and binary dump utilities.
> One source says that this because I'm running on Windows, checkstyle
> actually expects a CR-LF and throws an error if it doesn't find it! I've
> worked around this by disabling the check.

It looks like we can force the checker to assume linux line feeds:
https://stackoverflow.com/questions/997021/how-to-get-rid-of-checkstyle-message-file-does-not-end-with-a-newline
(second answer).  This would also make a good contribution for someone new.

Cheers,
Micah










On Thu, Mar 11, 2021 at 7:14 PM bobtins <bobti...@gmail.com> wrote:

> My mail client took out all the linefeeds, so let me reformat; sorry about
> that!
>
>
> In the process of slogging through the build, I've bumped into various
> issues. I'm happy to document them in java/README.md or make any other
> changes that might be helpful to others.
>
> I'm pretty experienced with Java and Maven, so I think these are not
> beginner's mistakes, but let me know if I'm missing something.
>
> A lot of these may be Windows-specific. I normally prefer Linux but just
> got a new laptop and haven't set it up, but this experience is giving me a
> lot of incentive to run screaming back to Linux ;-)
>
> Environment details:
> * Windows 10
> * Java 8
> here's the output of java -version:
> openjdk version "1.8.0_282"
> OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_282-b08)
> OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.282-b08, mixed mode)
>
> * Cygwin environment
> * Maven 3.6.2
>
>
> Issues encountered thus far:
>
> * Build does require Java 8, not "8 or later" as stated in java/README.md
>   There's a reference to sun.misc.Unsafe
> in 
> memory/memory-core/src/main/java/org/apache/arrow/memory/util/MemoryUtil.java
> which of course went away in JDK 9.
> * The build won't work on Windows because the java/format POM downloads a
> binary flatc executable, but there's no artifact for Windows, just Linux
> and OSX. I wound up downloading Visual Studio and building the flatbuffers
> project.
>
> * I bumped into what looks like a spurious checkstyle error: it reports
> memory/src/test/java/io/netty/buffer/TestExpandableByteBuf.java having no
> linefeed at the end when it definitely does. I set up Git not to do Windows
> conversions, and I checked with various editors and binary dump utilities.
> One source says that this because I'm running on Windows, checkstyle
> actually expects a CR-LF and throws an error if it doesn't find it! I've
> worked around this by disabling the check.
>
> * The one thing that I'm stuck on now is failures on the jdbc module:
> [INFO]
> [INFO] Results:
> [INFO]
> [ERROR] Failures:
> [ERROR]
>  JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:209
> expected:<45935000> but was:<74735000>
> [ERROR]
>  JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:213
> expected:<1518439535000> but was:<1518468335000>
> [ERROR]
>  JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:205
> expected:<-365> but was:<-364>
> [ERROR]
>  
> JdbcToArrowNullTest.testJdbcToArrowValues:123->testDataSets:165->testAllVectorValues:209
> expected:<17574> but was:<17573>
> [ERROR]   JdbcToArrowTest.testJdbcToArrowValues:138->testDataSets:206
> expected:<17574> but was:<17573>
> [ERROR]
>  
> JdbcToArrowVectorIteratorTest.testJdbcToArrowValuesNoLimit:107->validate:199->assertDateDayVectorValues:277
> expected:<17574> but was:<17573>
> [ERROR]
>  
> JdbcToArrowVectorIteratorTest.testJdbcToArrowValues:95->validate:199->assertDateDayVectorValues:277
> expected:<17574> but was:<17573>
> [INFO]
> [ERROR] Tests run: 93, Failures: 7, Errors: 0, Skipped: 0
>
> I attached the full build output.
> Looking more closely at these errors, they seem to be due to the timezone
> difference; for example, the difference between 74735000 (actual value) and
> 45935000 (expected) is 2880000, or 8 hours in milliseconds, which is the
> PST timezone offset.
>
> I see in the pom.xml that user.timezone is set to UTC. I have seen these
> types of errors in tests before; I know there are ways to insulate the test
> from the user's current timezone but maybe someone knows what's going on.
>
> Thanks for any input!
>
>
> On 2021/03/11 23:49:37, Bob Tinsman <bobt...@pacbell.net> wrote:
> > I've been mostly lurking for awhile, but I would like to start picking
> off some bugs in the Java implementation.In the process of slogging through
> the build, I've bumped into various issues. I'm happy to document them in
> java/README.md or make any other changes that might be helpful to others.
> I'm pretty experienced with Java and Maven, so I think these are not
> super-obvious, but let me know if I'm missing something.A lot of these may
> be Windows-specific. I normally prefer Linux but just got a new laptop and
> haven't set it up, but this experience is giving me a lot of incentive to
> run screaming back to Linux ;-)
> > Environment details:- Windows 10- Java 8:openjdk version
> "1.8.0_282"OpenJDK Runtime Environment (AdoptOpenJDK)(build
> 1.8.0_282-b08)OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.282-b08,
> mixed mode)- Cygwin environment- Maven 3.6.2
> > Issues encountered thus far:- Build does require Java 8, not "8 or
> later" as stated in java/README.md    There's a reference to
> sun.misc.Unsafe
> in 
> memory/memory-core/src/main/java/org/apache/arrow/memory/util/MemoryUtil.java
> which of course went away in JDK 9.    I can update the build
> instructions.- The build won't work on Windows because the java/format POM
> downloads a binary flatc executables; when I looked, there was no version
> for Windows, just Linux and OSX. I wound up downloading Visual Studio and
> building the flatbuffers project.- I bumped into what looks like a spurious
> checkstyle error: it
> reports memory/src/test/java/io/netty/buffer/TestExpandableByteBuf.java
> having no linefeed at the end when it definitely does. I set up Git not to
> do Windows conversions, and I checked with various editors and binary dump
> utilities. One source says that this because I'm running on Windows,
> checkstyle actually expects a CR-LF and throws an error if it doesn't find
> it! I've worked
>   around this by disabling the check.- The one thing that I'm stuck on now
> is failures on jdbc:
> > [INFO] Results:[INFO][ERROR] Failures:[ERROR]
>  JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:209
> expected:<45935000> but was:<74735000>[ERROR]
>  JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:213
> expected:<1518439535000> but was:<1518468335000>[ERROR]
>  JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:205
> expected:<-365> but was:<-364>[ERROR]
>  
> JdbcToArrowNullTest.testJdbcToArrowValues:123->testDataSets:165->testAllVectorValues:209
> expected:<17574> but was:<17573>[ERROR]
>  JdbcToArrowTest.testJdbcToArrowValues:138->testDataSets:206
> expected:<17574> but was:<17573>[ERROR]
>  
> JdbcToArrowVectorIteratorTest.testJdbcToArrowValuesNoLimit:107->validate:199->assertDateDayVectorValues:277
> expected:<17574> but was:<17573>[ERROR]
>  
> JdbcToArrowVectorIteratorTest.testJdbcToArrowValues:95->validate:199->assertDateDayVectorValues:277
> expected:<17574> but was:<17573>[INFO][ERROR] Tests run: 93, Failures: 7,
> Errors: 0, Skipped: 0
> > I attached the full build output.Looking more closely at these errors,
> they seem to be due to the timezone difference; for example, the difference
> between 74735000 (actual value) and 45935000 (expected) is 2880000, or 8
> hours in milliseconds, which is the PST timezone offset. I see in the
> pom.xml that user.timezone is set to UTC. I have seen these types of errors
> in tests before; I know there are ways to insulate the test from the user's
> current timezone but maybe someone knows what's going on.
> > Thanks for any input!
> >
>

Reply via email to