My favorites | Sign in
Logo
                
New issue | Search
for
| Advanced search | Search tips
Issue 118: Ontopia on GAE - URLStreamHandler is a restricted class
2 people starred this issue and may be notified of changes. Back to list
Status:  Fixed
Owner:  stig.lau
Closed:  Aug 18
Type-Defect
Priority-Medium
Component-Engine
Release5.0.1


Sign in to add a comment
 
Reported by stig.lau, Aug 18, 2009
I'm testing out a simple Ontopia webapp, https://ontopia.googlecode.com/
svn/trunk/sandbox/ontopia-stormberg-demowebapp, on Google App engine.
The app uses a standard in-memory topic map, but tries to read the topic 
map from file submitted with the source code. 
I am informed that the reading of the resource file is in conflict with 
the GAE way of doing things.
This can be worked around by not having the file with the source code. But 
the problem with the file loader should be looked into.
Comment 1 by stig.lau, Aug 18, 2009
Stack trace
stacktrace.txt
14.6 KB Download
Comment 2 by larsga, Aug 18, 2009
This is the relevant part of the stack trace:

[ontopia-stormberg/1.335703334203193331].<stdout>: ERROR [Runtime Network Thread] 
(TopicMapSourceManager.java:157) - Could not refresh topic map source 
net.ontopia.topicmaps.xml.XTMPathTopicMapSource@c707c1. Ignoring.
java.lang.NoClassDefFoundError: java.net.URLStreamHandler is a restricted class. 
Please see the Google App Engine developer's guide for more details.
	at 
com.google.apphosting.runtime.security.shared.stub.java.net.URLStreamHandler.<clinit>
(URLStreamHandler.java)
	at net.ontopia.infoset.impl.basic.URILocator.<clinit>(URILocator.java:28)
	at net.ontopia.topicmaps.entry.AbstractURLTopicMapReference.<init>
(AbstractURLTopicMapReference.java:47)
	at net.ontopia.topicmaps.entry.AbstractOntopolyURLReference.<init>
(AbstractOntopolyURLReference.java:41)
	at net.ontopia.topicmaps.xml.XTMTopicMapReference.<init>
(XTMTopicMapReference.java:35)
	at net.ontopia.topicmaps.xml.XTMPathTopicMapSource.createReference
(XTMPathTopicMapSource.java:54)
	at net.ontopia.topicmaps.entry.AbstractPathTopicMapSource.createReference
(AbstractPathTopicMapSource.java:246)
	at 
net.ontopia.topicmaps.entry.AbstractPathTopicMapSource.refreshFromFilesystem
(AbstractPathTopicMapSource.java:225)
	at net.ontopia.topicmaps.entry.AbstractPathTopicMapSource.refresh
(AbstractPathTopicMapSource.java:200)
	at net.ontopia.topicmaps.entry.TopicMapSourceManager.refresh
(TopicMapSourceManager.java:146)
	at net.ontopia.topicmaps.entry.TopicMapSourceManager.getReferenceByKey
(TopicMapSourceManager.java:80)
	at net.ontopia.topicmaps.entry.TopicMaps.createStore(TopicMaps.java:44)
	at net.ontopia.topicmaps.entry.TopicMaps.createStore(TopicMaps.java:34)
	at net.ontopia.topicmaps.nav2.impl.basic.NavigatorApplication.getTopicMapById
(NavigatorApplication.java:192)
	at net.ontopia.topicmaps.nav2.impl.basic.NavigatorApplication.getTopicMapById
(NavigatorApplication.java:181)
	at net.ontopia.topicmaps.nav2.taglibs.logic.ContextTag.doStartTag
(ContextTag.java:147)
	at org.apache.jsp.klesplaggListe_jsp._jspService(klesplaggListe_jsp.java:78

This is actually in the static initialization of the URILocator class, where we 
register a completely different class as the URL handler for the data: URLs. There 
is already a catch clause there to ensure that SecurityExceptions just cause silent 
failure to install, and we could do the same with java.lang.NoClassDefFoundError.

I can't think of any arguments against it, really, except that the alternative would 
be to move the installation of the handler to the data URL handler class. Not sure 
why we have this at all, to be honest.
Labels: Component-Engine
Comment 3 by larsga, Aug 18, 2009
Fixed in revision 419, I think. Please verify that the fix works and set the issue 
to Verified.
Status: Fixed
Comment 6 by stig.lau, Aug 18, 2009
Revision 419 works successfully. Now need a place to store snapshot build. Propose 
to use svn/maven-snapshot-repository
Comment 7 by larsga, Sep 01, 2009
(No comment was entered for this change.)
Labels: Release5.0.1
Sign in to add a comment

Hosted by Google Code