Ticket #625 (closed Defect: fixed)

Opened 6 years ago

Last modified 6 years ago

Installation error - java.lang.RuntimeException: Jersey response filtering failed

Reported by: PatriciaW Owned by: jri
Priority: Major Milestone:
Component: DeepaMehta Standard Distribution Version: 4.2
Keywords: Cc:
Complexity: 3 Area: Runtime Environment
Module: deepamehta-core

Description

I'm attempting to install DeepaMehta on OS X 10.9 (Mavericks)

When the browser started it had no login option and the window was essentially empty.
The terminal log showed that the installation was Ok until the following messages:

[INFO] Started Jetty 7.6.13.v20130916 at port(s) HTTP:8080 on context path /
Feb 25, 2014 10:50:09 AM de.deepamehta.plugins.webservice.provider.CatchAllExceptionMapper toResponse
SEVERE: A DeepaMehta resource method or event listener threw an exception resp. an error occurred. Mapping exception/error to response: 500 (Internal Server Error).
java.lang.RuntimeException: Jersey response filtering failed
	at de.deepamehta.core.impl.JerseyResponseFilter.filter(JerseyResponseFilter.java:67)

I'm attaching the complete log

Attachments

deephamehta-log.txt (108.6 KB) - added by PatriciaW 6 years ago.
deephamehta-log2.txt (97.2 KB) - added by PatriciaW 6 years ago.

Change History

Changed 6 years ago by PatriciaW

comment:1 Changed 6 years ago by jri

  • Status changed from new to accepted
  • Owner set to jri
  • Module set to deepamehta-core

Try deleting your browser's cookies for "localhost" and then reload the DM webclient page.

I guess you have/had some other web application run at localhost which set a cookie with an empty value.
We will make DM more robust in the next release to deal with that case.

Thank you very much for detailed reporting!

Changed 6 years ago by PatriciaW

comment:2 Changed 6 years ago by PatriciaW

I cleared cookies and retried. I am installing under MAMP and using a subdirectory (deepamehta). When I attempt to install again (I delete the entire folder first) I am getting a 404 error - The requested URL /de.deepamehta.webclient/ was not found on this server.

I'm using port 8888 so I changed the config file to use 8888.
I wasn't sure if I should use the subdirectory in dm4.database.path=deepamehta-db - I tried both ways - no difference that I could see.

The config file is below and I am attaching the complete terminal output.

### Webserver ###

org.osgi.service.http.port=8888
org.osgi.service.http.port.secure=4433
org.apache.felix.http.enable=true
org.apache.felix.https.enable=false
org.apache.felix.https.keystore.password=
org.apache.felix.https.keystore.key.password=

### Request Filter ###

dm4.security.read_requires_login=false
dm4.security.write_requires_login=true

# Requests are allowed from this subnet only.
# An address range denoted by network number and netmask.
# To allow local access only specify "127.0.0.1/32". This is the default.
# To allow global access specify "0.0.0.0/0".
dm4.security.subnet_filter=127.0.0.1/32

### Host ###

dm4.host.url=http://localhost:8888/

### Database ###

dm4.database.path=deepamehta-db

### File Repository ###

# The file repository's root directory.
# Mac OS X/Linux: An absolute path with *no* slash at the end.
# To enable the entire file system specify an empty string (instead of "/"). This is the default.
# Windows: An absolute path, including the drive letter followed by colon, with *no* backslash at the end.
# Important: Backslashes must be written as "
" (double backslash).
# To enable an entire drive specify the drive letter followed by colon, e.g. "C:".
# To enable the entire C: drive, you can specify an empty string as a shortcut. This is the default.
dm4.filerepo.path=

### Misc ###

org.osgi.framework.storage=bundle-cache
felix.log.level=1
felix.auto.deploy.action=install,start

java.util.logging.config.file=conf/logging.properties
file.encoding=UTF-8

There are various error messages in the attached log ...

comment:3 Changed 6 years ago by jri

DM brings its own web server (Jetty) and thus needs its own network port. DM does not use the Apache provided by MAMP and must not interfere with the Apache port. Your current error message says that you tried to start DM at port 8888 and that this port is already in use (possibly by your MAMP/Apache I guess):

2014-02-27 16:28:55.732:WARN:oejuc.AbstractLifeCycle:FAILED SelectChannelConnector@0.0.0.0:8888: java.net.BindException: Address already in use
java.net.BindException: Address already in use

=> Set another port in your DM config and restart DM.

When you start DM it starts its own Jetty web server at the port configured in org.osgi.service.http.port. No other application must occupy this port. Otherwise the error above occurs.

If you've already another DM instance running you must stop it before starting DM. To stop DM type Ctrl-C in the terminal window that appears while starting DM. Only when you stop DM it shuts down its Jetty web server and frees its port.

A side note: DM is not related to MAMP in any way, so I would not install DM inside the MAMP folder, but e.g. in /Applications directly.

comment:4 Changed 6 years ago by PatriciaW

Clearly I did not RTFM. Many thanks for clarifying this. It is now working correctly using the default port.

comment:5 Changed 6 years ago by jri

Good to hear. You're welcome.

I leave this ticket open for the original cookie issue (comment:1)

comment:6 Changed 6 years ago by Jörg Richter

  • Status changed from accepted to closed
  • Resolution set to fixed

Core: fix empty cookie values (#625).

If the browser sends a (non-DM) cookie with an empty value a proper ClientState? object is created. No exception is thrown.

Thanks, Patricia, for reporting!

Close #625

Note: See TracTickets for help on using tickets.