Closed zachkinstner closed 11 years ago
I have forked Titan and I'm working on building 0.3.1 from source to test the fix.
Relevant code changes:
When trying to perform a Maven install on the Titan code, I receive several errors during the testing phase. They all look similar to this:
Running com.thinkaurelius.titan.blueprints.BerkeleyJEBlueprintsTest
Testing testVertexEquality...
Opening graph in: /var/folders/f2/km_d4prn53q7_xdcv1jw7yvr0000gn/T//titan-test/standard
Encountered error in testVertexEquality
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.thinkaurelius.titan.blueprints.TitanBlueprintsTest.doTestSuite(TitanBlueprintsTest.java:117)
at com.thinkaurelius.titan.blueprints.TitanBlueprintsTest.doTestSuite(TitanBlueprintsTest.java:105)
at com.thinkaurelius.titan.blueprints.TitanBlueprintsTest.testVertexTestSuite(TitanBlueprintsTest.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:249)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:142)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:104)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.Error: Unresolved compilation problems:
ByteSerializer cannot be resolved to a type
ShortSerializer cannot be resolved to a type
CharacterSerializer cannot be resolved to a type
BooleanSerializer cannot be resolved to a type
The method registerClass(Class<FullFloat>, int) from the type Serializer refers to the missing type FullFloat
FullFloat cannot be resolved to a type
The method registerClass(Class<FullDouble>, int) from the type Serializer refers to the missing type FullDouble
FullDouble cannot be resolved to a type
at com.thinkaurelius.titan.graphdb.database.serialize.SerializerInitialization.initialize(SerializerInitialization.java:41)
at com.thinkaurelius.titan.graphdb.database.serialize.kryo.KryoSerializer.<init>(KryoSerializer.java:52)
at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getSerializer(GraphDatabaseConfiguration.java:413)
at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.<init>(StandardTitanGraph.java:70)
at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40)
at com.thinkaurelius.titan.blueprints.BerkeleyJEBlueprintsTest.generateGraph(BerkeleyJEBlueprintsTest.java:39)
at com.thinkaurelius.titan.blueprints.BerkeleyJEBlueprintsTest.generateGraph(BerkeleyJEBlueprintsTest.java:27)
at com.tinkerpop.blueprints.VertexTestSuite.testVertexEquality(VertexTestSuite.java:27)
... 32 more
I'm not sure why "ByteSerializer cannot be resolved to a type". I may have something configured incorrectly in Eclipse. Did I mention I'm new to Java development? ;) In the meantime, perhaps someone (@mbroecheler?) knows how to resolve this.
Skipping the Maven test step allowed the build to finish successfully. When I added the new Titan files to Rexster 2.3.0 and ran it, I got the same error:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
ByteSerializer cannot be resolved to a type
ShortSerializer cannot be resolved to a type
CharacterSerializer cannot be resolved to a type
BooleanSerializer cannot be resolved to a type
The method registerClass(Class<FullFloat>, int) from the type Serializer refers to the missing type FullFloat
FullFloat cannot be resolved to a type
The method registerClass(Class<FullDouble>, int) from the type Serializer refers to the missing type FullDouble
FullDouble cannot be resolved to a type
at com.thinkaurelius.titan.graphdb.database.serialize.SerializerInitialization.initialize(SerializerInitialization.java:41)
at com.thinkaurelius.titan.graphdb.database.serialize.kryo.KryoSerializer.<init>(KryoSerializer.java:52)
at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getSerializer(GraphDatabaseConfiguration.java:413)
at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.<init>(StandardTitanGraph.java:70)
at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40)
at com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration.configureGraphInstance(TitanGraphConfiguration.java:27)
at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFromConfiguration(GraphConfigurationContainer.java:128)
at com.tinkerpop.rexster.config.GraphConfigurationContainer.<init>(GraphConfigurationContainer.java:54)
at com.tinkerpop.rexster.server.XmlRexsterApplication.<init>(XmlRexsterApplication.java:26)
at com.tinkerpop.rexster.Application.<init>(Application.java:72)
at com.tinkerpop.rexster.Application.main(Application.java:156)
I have resolved the "Unresolved compilation problems" issue. In Eclipse, I had imported only the top "titan" Maven project. I (incorrectly) assumed that Eclipse would handle the sub-projects (like "titan-core") automatically. The Maven install was successful (skipping tests) once I imported all the sub-projects individually into Eclipse.
I have created a new "titan-0.3.1" branch for Fabric, due to the issues found in thinkaurelius/titan#235. Fabric integration tests depend on saveGraphSON producing the correct output data -- each integration test reloads the database using that output data.
This task is dependent upon issue https://github.com/tinkerpop/blueprints/issues/395. In the meantime (for "master" branch"), use Integer for Byte, and Object for Boolean.
There is an issue in Titan with byte.class and Byte.class (likewise for some other primitives). This has been fixed and will be released with 0.3.1.
On Wed, Apr 24, 2013 at 12:15 PM, Zach Kinstner notifications@github.comwrote:
This task is dependent upon issue tinkerpop/blueprints#395https://github.com/tinkerpop/blueprints/issues/395. In the meantime (for "master" branch"), use Integer for Byte, and Object for Boolean.
— Reply to this email directly or view it on GitHubhttps://github.com/inthefabric/Fabric/issues/4#issuecomment-16958222 .
Matthias Broecheler http://www.matthiasb.com
The recent Titan 0.3.1 fix (from https://github.com/thinkaurelius/titan/issues/222) should now allow typed properties and indexes for Byte, Boolean, and others. Update Fabric to support changes from this fix.