Hi,
> I think i had H2 DB running in osgi a few years ago
I'm quite sure you are not the only person who ever used H2 in OSGi :-)
FilePath is old.
> > Well, is there a stack trace? Could you post it?
> No error or stack trace... it just stops..
In my experience Java threads don't "just stop" :-) I'm quite sure it's a
runtime exception you didn't catch. (In theory the thread might be blocked
or wait, but I doubt it)
What I would do is add "try { .. } catch (Throwable e) {
e.printStackTrace(); }". If that doesn't help, I would debug it.
Regards,
Thomas
On Thu, Sep 12, 2013 at 2:01 AM, Paul F Fraser <[email protected]> wrote:
> On 12/09/13 04:08, Thomas Mueller wrote:
>
> Hi,
>
> Which version of H2 did you try?
>
> 1.3.173
>
>
> > It bombs out
>
> Well, is there a stack trace? Could you post it?
>
> No error or stack trace... it just stops..
>
> As far as I know, H2 works in an OSGi environment. The regular database
> also uses FilePath...
>
> I think i had H2 DB running in osgi a few years ago. How long has FilePath
> been used?
>
> The ClassForName problem is covered here
> http://njbartlett.name/2010/08/30/osgi-readiness-loading-classes.html
>
> The h2 code where it stops :-
>
> void open() {
> meta = new MVMapConcurrent<String,
> String>(StringDataType.INSTANCE, StringDataType.INSTANCE);
> HashMap<String, String> c = New.hashMap();
> c.put("id", "0");
> c.put("createVersion", Long.toString(currentVersion));
> meta.init(this, c);
> if (fileName == null) {
> return;
> }
> FilePath parent = FilePath.get(fileName).getParent(); <<<< stops
> here
> if (!parent.exists()) {
> throw DataUtils.newIllegalArgumentException("Directory does
> not exist: {0}", parent);
> }
>
>
> private static void registerDefaultProviders() {
> if (providers == null || defaultProvider == null) {
> Map<String, FilePath> map =
> Collections.synchronizedMap(New.<String, FilePath>hashMap());
> for (String c : new String[] {
> "org.h2.store.fs.FilePathDisk",
> "org.h2.store.fs.FilePathMem",
> "org.h2.store.fs.FilePathMemLZF",
> "org.h2.store.fs.FilePathNioMem",
> "org.h2.store.fs.FilePathNioMemLZF",
> "org.h2.store.fs.FilePathSplit",
> "org.h2.store.fs.FilePathNio",
> "org.h2.store.fs.FilePathNioMapped",
> "org.h2.store.fs.FilePathZip"
> }) {
> try {
> FilePath p = (FilePath)
> Class.forName(c).newInstance(); <<<<<probably because of this
> map.put(p.getScheme(), p);
> if (defaultProvider == null) {
> defaultProvider = p;
> }
> } catch (Exception e) {
> // ignore - the files may be excluded in purpose
> }
> }
> providers = map;
>
> Regards
>
> Paul
>
> --
> You received this message because you are subscribed to the Google Groups
> "H2 Database" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/h2-database.
> For more options, visit https://groups.google.com/groups/opt_out.
>
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/groups/opt_out.