Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
-------- Original Message -------- Subject: Re: Problems w NetcdfFile.openInMemory Date: Mon, 27 Jun 2005 18:02:34 -0600 From: John Caron <caron@xxxxxxxxxxxxxxxx> To: Stuart Maclean <stuart@xxxxxxxxxxxxxxxxxx> References: <Pine.LNX.4.58.0506271544590.3313@xxxxxxxxxxxxxxxxxxxxxxxx> Stuart Maclean wrote:
I'm trying to load netcdf data in an app with no local 'filesystem', such as a jnlp (web start) environment. Looks like the best bet, given the Java Netcdf API, is to locate the data as as resource (Class.getResourceAsStream). I can thus get the data into a byte[]. But passing that byte[] to NetcdfFile.openInMemory fails with a NPE. Looking at the latest (2.2.09) sources, it seems that the InMemoryRandomAccessFile is broken. The 'buffer' attribute is attached to the incoming data buf only after a call to 'init(1)' occurs. The superclass RandomAccessFile is thus is a bad state, causing an eventual NPE. Any help gratefully apprteciated, Stuart
Ok, if you are compiling from source, just move the buffer assignment up: public InMemoryRandomAccessFile(String location, byte[] data) { super(1); this.location = location; this.file = null; if (data == null) throw new IllegalArgumentException("data array is null"); buffer = data; bufferStart = 0; dataSize = buffer.length; dataEnd = buffer.length; filePosition = 0; endOfFile = false; } otherwise, i will have a new release (2.2.10) in an hour or so thanks for finding that bug!
netcdf-java
archives: