[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building Ozone from the source distribution, strange NullPointerExceptions reported by several people

On Mon, 24 Apr 2000, Michael Nowotny wrote:
> >%_Hi folks!
> I think I have figured out what this NullPointerException in WizardStore is all about:

> When I take the binary distribution along with jdk 1.3 rc1 I receive this
> exception. As someone else reported, this doesn't happen with jdk1.2.2. > 

> Now, when I rebuild the database from the source using javac the exception
> goes away. But then again if I compile it using jikes, it reappears. > So I
> think, it has to do with the fact that JDK1.3 bytecode is not compatible with
> bytecode that was considered standard before jdk1.3 came along. > 

Yeahahhh!!!! Michael Nowotny, many thanks for your help with ozone on windows!
The win problem has been on the to.do list for a long time but I wasn't able to
figure something out because I'm totally unfamiliar with windows.

> As a Windows user I had some trouble building the source distribution
> because it relies on make - a unix command. Make might be alright as long as
> you have it on your pc. But in fact most Windows users like me don't. So I
> spent some time figuring out how I could make it work on my windows machine
> and finally came accross cygwin, which seemed to have the commandset necesarry
> for this operation.  > But once again it didn't work, because the buld script
> relied on a command that was unknown to me - jikes. Only by chance I found out
> what jikes actually was, downloaded it from alphaworks and installed it only
> to see that the build script still didn't work because of unix path-separators
> '/' mixed with windows path-separators '\'. > 

> After that, I was fed up with make and tried a different approach: compiling
> each source directory individually using 'javac *.java'. > As I plodded
> along I was convinced that I would very soon end up with a working build of an
> open source odbms. But I should have known better...  > Some sources didn't
> even compile because they relied on packages and classes that I could not find
> among the jar files that were included with the distribution. > 

> After some time I found out that the classes that didn't compile and even
> whole packages around these classes do not make part of the current binary
> distribution (anymore). They must have remained in the source tree from some
> earlier build until now. > So I removed them and ... to my surprise it worked.
> Even this annoying NullPointerException simply vanished. > 

> So now I'm able to use this real cool kind of software.

> Since I don't want anybody else to go through all that again I included my
> Windows build script: (put it into the ozone root directory, attention: it
> does not generate the jar file)

I've put it in the CVS.

Michael, can you please try to add some lines to your script that build the
javadoc docs. Should be now problem for you. Have a look on teh top level
Makefile for details. Thanks in advance!

> In summary I would suggest the following improvements:

> 1. Simplify the build process for windows users
> Yes, I know there is a build.bat included with the distribution but it
> should be in the root directory and it refers to openxml.jar which is not
> included with the distribution. Moreover, it doesn't build all the classes
> that make part of the binary distribution (OPP is not included for instance).
Ant, the Jakarta build tool, seems to be a good solution. I had no time to look
at it yet and Johann, a guy that is more familiar with it, started to make an
Ant build environment for ozone. Unfortunately right now he is probably busy
with his OpenSpaces project or other things. Johann, are you out there???


> 2. throw out java sources that are no longer needed and do not compile
> org.ozoneDB.xml.DOMFactory.java
> org.ozoneDB.xml.OOXMLDOMFactory.java
> org.ozoneDB.xml.util.OpenXMLParser.java
> org.ozoneDB.xml.util.OpenXMLWriter.java
> org.ozoneDB.xml.test (I removed the whole package but I it might be possible
that only a few files do not compile any more) > org.ozoneDB.core.classicMM
(whole package) > org.ozoneDB.core.classicStore (whole package)
> org.ozoneDB.core.monitor (whole package)

Most of the XML related files are actually no longer needed so they will be
removed from CVS. Others, like the classisStore, can't be removed from CVS
because they will be used in they future. They are temporarly broken because
the Store interface is relativly new and has changed again and again in the
past. Sine I build distribution packages from CVS it's not easy to keep some
files out of the package.

> 3. rely on standard tools that everybody has on his/her machine when JDK is
> installed > Don't use jikes by default. 

For Linux this is probably no problem and for win your build script has fixed
this problem. 

> 4. Make two binary releases available for download. One for JDK1.3 and one
> for earlier versions. > 

I will build the release byte code with javac no matter what so we only need one
binary package.

> 5. include the complete javadoc in the source distribution or include a
> batch file for generating this javadoc > 
see above ;)

> I hope this will avoid users getting frustrated with ozone. 
> So for now I'm quite happy with ozone although the odmg examples don't work on my pc.
What's the problem?

Thanks again,

Falko Braeutigam                         mailto:falko@softwarebuero.de
softwarebuero m&b (SMB)                    http://www.softwarebuero.de