Andy If you can commit your changes that would be great, then I can go over them and see which if any we can implement properly.
The part of the build that was messy explicitly is testing that configuring logging via driver parameters works, I have modified that portion of the tests to redirect stdout to a ByteArrayOutputStream so I can verify that the logging output gets enabled without polluting the mvn build output. Some of the tests are explicit negative tests looking for error conditions being properly propagated hence why all the logging noise on that part of the test run. This should however now be hidden from the build. The remote endpoint results tests seem to be the prime culprits for hangs, those are the tests that do the most bringing up and tearing down of Fuseki instances with associated HTTP traffic and seems to be the ones that most often hang on Jenkins. They should maintain a single Fuseki instance for each class so the problem may lie more in the volume of HTTP traffic involved, that's why there is the Thread.sleep() in those tests which mitigates the problem some of the time. Which version of Java 6 causes hangs for you? We run 1.6.0_51 (Oracle standard Hotspot JVM) Rob On 8/28/13 3:34 PM, "Andy Seaborne" <[email protected]> wrote: >Rob - > >I have had a go at fixing them so jena-jdbc compiles on Java7. This is >done by adding missing operations, with no @Override, to the highest >abstract class I could find, usually JenaXYZ.java > >All call SQLFeatureNotSupportedException > >I've compiled with java6 and java7 compilers and runtimes, running "mvn >clean install". > >I encountered problems running the tests - >with java6, the tests hang at: >org.apache.jena.jdbc.remote.results.TestRemoteEndpointResults > >It completes on Java7. > >Total time: Java7: 11:10.239s >Apache Jena - JDBC Parent ................[2.371s] >Apache Jena - JDBC Core API ..............[18.622s] >Apache Jena - JDBC Remote Endpoint Driver [4:32.039s] >Apache Jena - JDBC In-Memory Driver ......[11.076s] >Apache Jena - JDBC TDB Driver ............[5:52.688s] >Apache Jena - JDBC Driver Bundle .........[13.157s] > > >The build (mvn clean install in jena-jdbc having rebuild jena) is messy; > >It's not finding a log4j setup which might be related to the output that >is Exceptions printed e.g. > >22:35:01 ERROR JenaStatement :: Invalid SPARQL update >com.hp.hpl.jena.query.QueryParseException: Encountered " "select" >"SELECT "" at line 1, column 1. >and a long trace. > >There are enough of these that my terminal buffer lost the top of the >output so I don't know how many there were. > >and many like: > >5602 [main] ERROR org.apache.jena.jdbc.JenaDriver - Invalid value for >post-processor parameter, references a class that did not exist >java.lang.ClassNotFoundException: NoSuchClass > > >5601 [main] ERROR org.apache.jena.jdbc.JenaDriver - Invalid value for >pre-processor parameter, references a class that exists but does not >have an appropriate constructor >java.lang.InstantiationException: com.hp.hpl.jena.graph.Node > > Andy > >On 26/08/13 18:21, Rob Vesse wrote: >> Yeah we use JDK6 exclusively here at YarcData >> >> The fix is either to make the change or I think we can use the compiler >> plugin to restrict these modules to JDK 6 for the time being? >> >> Rob >> >> >> On 8/26/13 3:04 AM, "Andy Seaborne" <[email protected]> wrote: >> >>> I'm getting the following compile time error when building with maven. >>> >>> [ERROR] Failed to execute goal >>> org.apache.maven.plugins:maven-compiler-plugin:3.1:compile >>> (default-compile) on project jena-jdbc-core: Compilation failure: >>> Compilation failure: >>> [ERROR] >>> >>>/home/afs/Jena/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jd >>>bc >>> /metadata/results/MetaResultSet.java:[51,8] >>> org.apache.jena.jdbc.metadata.results.MetaResultSet is not abstract and >>> does not override abstract method >>> <T>getObject(java.lang.String,java.lang.Class<T>) in java.sql.ResultSet >>> >>> and then some others. >>> >>> Maybe it's this: >>> >>> >>>http://stackoverflow.com/questions/7692320/is-there-really-resultset-get >>>ob >>> jectstring-classt-in-jdk7 >>> >>> I'm using a Java7 compiler in Java6 mode so it's the JDK7 runtime. >>> >>> If so, the fix is to add, without @Override but with suppressed >>>warnings: >>> >>> <T> T getObject(int columnIndex, Class<T> type) throws SQLException >>> <T> T getObject(String columnLabel, Class<T> type) throws SQLException >>> >>> Andy >> >
