[GLASSFISH-21140] send-error_n doesn't work if ${com.sun.aas.instanceRoot} contains whitespaces Created: 22/Jul/14  Updated: 23/Apr/15

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.0_b89_RC5
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: xuno Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 7
Install Dir: C:\Program Files\glassfish4\glassfish\domains\domain1


Tags: javaee_ri_target

 Description   

If the path component in the send-error_n property contains whitespaces it fails. Also if used with $

{com.sun.aas.instanceRoot}.

<property name="send-error_1"
value="code=404 path=${com.sun.aas.instanceRoot}

\docroot\404.html reason=Resource_not_found" />

Results in:
---------------------------------------------------------------------------
Warning: The error-page C:\Users\dev\Documents\workspace-ja\myApplication\build\web\C:\Program does not exist
Warning: org.apache.catalina.core.StandardHostValve@3327d04b: Exception processing ErrorPage[errorCode=404, location=C:\Program]
java.io.FileNotFoundException: C:\Program (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:131)
at java.io.FileInputStream.<init>(FileInputStream.java:87)
at org.apache.catalina.core.StandardHostValve.handleHostErrorPage(StandardHostValve.java:594)
at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:395)
at org.apache.catalina.core.StandardHostValve.postInvoke(StandardHostValve.java:234)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:359)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:745)






[GLASSFISH-5634] notify the user of a config write failure Created: 25/Aug/08  Updated: 19/Sep/14

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: V3
Fix Version/s: 4.1

Type: Bug Priority: Major
Reporter: sankarpn Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 5,634
Status Whiteboard:

gfv3-prelude-included

Tags: 3_1-exclude, 3_1-next, 3_1_1-scrubbed

 Description   

V3-Prelude 8/25

When the user runs out of disk space the config write operation fails to add the
config changes in domain.xml. But the cli interface doesn't let user know
anything about the failure and prints it as a success.

But we should fail the config operation in such situations and let the user know
about this.

-Sankar



 Comments   
Comment by km [ 25/Aug/08 ]

Thanks for filing the bug.

Comment by kumara [ 28/Aug/08 ]

Change to status whiteboard for v3 bug tracking

Comment by km [ 27/May/09 ]

...

Comment by Tom Mueller [ 23/Jun/10 ]

Nandini no longer on project.

Comment by Tom Mueller [ 12/Feb/11 ]

This problem still exists in GlassFish 3.1.

To simulate this problem, I changed the permissions of the config directory to make it not writable and then ran the "asadmin create-cluster" command. The command completed successfully with no warning message. However, the following exception was printed to the server.log file:

[#|2011-02-12T15:20:13.131-0800|SEVERE|glassfish3.2|null|_ThreadID=19;_ThreadName=Thread-1;|IOException while saving the configuration, changes not persisted
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1704)
at java.io.File.createTempFile(File.java:1792)

If the disk was actually full, this message couldn't have been recorded in the log file either.

Upping the priority. We should look at this for 3.2.

Comment by Tom Mueller [ 03/Mar/11 ]

The admin iteam meeting on March 1, 2011 confirmed that we should indeed fix this.

Comment by Tom Mueller [ 05/Jul/11 ]

Excluding for 3.1.1 as this is too late in the release cycle. This will require a change to hk2 to fix.

Comment by Tom Mueller [ 20/Dec/11 ]

Design idea:

Make DomainXmlPersistence be a Transactor rather than a ConfigurationPersistence.

This way DomainXmlPersistence could create the new domain.xml file as part of the canCommit method, and if rollback is called, it would delete the domain.xml just written and rename domain.xml.bak back to domain.xml.

I don't see how the DomainXMLPersistence object would be joined to the Transaction. Transaction.addParticipant is package private, so something within HK2 would need to add it. Maybe Transactions could have an alternative to addTransactionListener, i.e., addTransactionParticipant, which would allow an object to add itself to a list of objects that are made participants in every transaction?





[GLASSFISH-1063] Ability to removed unused services Created: 01/Sep/06  Updated: 17/Oct/12

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 9.1pe
Fix Version/s: future release

Type: New Feature Priority: Major
Reporter: cowwoc Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 1,063
Tags: ee7ri_cleanup_deferred

 Description   

I am expecting to be able to install Glassfish and disable (uninstall?) all
unused services such as ORB and JMX which I don't plan on using anytime in the
forseeable future. I guess I am a little biased having migrated from Tomcat, I
simply don't see a need for this for my personal uses.

I managed to manually disable all ports except HTTP, ADMIN and JMX. I am a bit
surprised I can't disable JMX, though I am fine with keeping the two services
alive. Again, coming from a Tomcat background, I am wondering why ADMIN is
deployed on a completely different port instead of making it a webapp on the
main HTTP port. You could still deny access to the webapp if the remote-address
is not localhost or any other rules that makes sense to you but dedicating an
entire port to it seems a bit excessive in my view. Alternatively, maybe you
might want to consider dedicating a single port to admin all domains from a
single GUI (you can see as many domains as you have access to with your login).



 Comments   
Comment by km105526 [ 01/Sep/06 ]

This is certainly a feature that relates to the modularization of application
server.

I think yours is a good suggestion to make the admin applications available on
8080 (http) and 1043 (https) for developers. I have to think hard, but don't see
any immediate problems with this suggestion. Let me see what I can do about this ...

Comment by km105526 [ 25/Sep/06 ]

Feature, not possible to do for this release.

Comment by Tom Mueller [ 17/Oct/12 ]

Marking the fix version field as "future-release". This is based on an evaluation by John, Michael, and Tom WRT to the PRD for the Java EE 7 RI/SDK. This issues was deemed to not be a P1 for that release. If this is in error or there are other reasons why this RFE should be targeted for the Java EE 7 RI/SDK release, then change the fix version field back to an appropriate build.





[GLASSFISH-20873] Password alias are not working done in application scope Created: 25/Oct/13  Updated: 19/Dec/13

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Mephysto Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 7, 64bit



 Description   

Recently I migrate from Glassfish 3.1 to Glassfish 4, but I have an issue with password alias in a jdbc Connection Pool configuration. I defined pool in an application scope and I create password alias as I did in glassfish 3.

In password attribute of pool I set $

{ALIAS=my_pwd_alias}

as I did in glassfish 3.

When I try to ping JDBC connection pool, I receive an authentication error, so I tried to set clear password (the same encrypted in password alias) in pool and in this manner ping work done.

I deduce that password alias is not resolved in connection pool, defined in application scope.

Obviously, in glassfish 3 this configuration did work correctly.



 Comments   
Comment by Mephysto [ 25/Oct/13 ]

In server.log i found this error:

[2013-10-25T22:55:25.563+0200] [glassfish 4.0] [WARNING] [unable_to_get_password_from_alias] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.service] [tid: _ThreadID=202 _ThreadName=admin-listener(16)] [timeMillis: 1382734525563] [levelValue: 900] [[
RAR7107: Unable to retrieve password from alias
java.lang.IllegalArgumentException: There is no such alias [aptredevo_pwd] from token [$

{ALIAS=aptredevo_pwd}

] defined in the default store for this domain. An admin interface like "asadmin create-password-alias" should be used to create the alias first.
at org.glassfish.internal.api.RelativePathResolver.getRealPasswordFromAlias(RelativePathResolver.java:373)
at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.getDefaultResourcePrincipal(ConnectorConnectionPoolAdminServiceImpl.java:793)
at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.getDefaultResourcePrincipal(ConnectorConnectionPoolAdminServiceImpl.java:763)
at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.getUnpooledConnection(ConnectorConnectionPoolAdminServiceImpl.java:677)
at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.testConnectionPool(ConnectorConnectionPoolAdminServiceImpl.java:425)
at com.sun.enterprise.connectors.ConnectorRuntime.pingConnectionPool(ConnectorRuntime.java:1162)
at org.glassfish.connectors.admin.cli.PingConnectionPool.execute(PingConnectionPool.java:143)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:235)
at org.glassfish.admin.rest.resources.TemplateExecCommand.executeCommandLegacyFormat(TemplateExecCommand.java:161)
at org.glassfish.admin.rest.resources.TemplateCommandGetResource.processGetLegacyFormat(TemplateCommandGetResource.java:75)

So I tried to list my password aliases:

root@ks368619:/opt/glassfish/glassfish/domains/redevoserver_test/logs# asadmin list-password-aliases -p 9048
Enter admin user name> admin
Enter admin password for user "admin">
postgres_pwd
aptredevo_pwd
Command list-password-aliases executed successfully.

aptredevo_pwd seems to be defined correctly, but is not recognized for value resolution.

Best regards.

Alessio

Comment by Mephysto [ 06/Nov/13 ]

Hello,
is there update about this Issue?

Thanks in advance.

Alessio

Comment by the_lak [ 12/Dec/13 ]

I am facing the same issue. Can someone help with this?

Comment by Kevin Dean [ 19/Dec/13 ]

See https://java.net/jira/browse/GLASSFISH-20938 for an explanation of the problem.





[GLASSFISH-20687] Config: implement listing defaults from unloaded extensions. Created: 08/Jul/13  Updated: 08/Jul/13

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Chris Kasso Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

According to Masoud: Listing the unloaded extensions (not merged with the dom document) is not implemented yet.






[GLASSFISH-20630] Two "url" properties in JDBC Connections pools (admin gui) with mysql connector jdbc 5.1.25 Created: 13/Jun/13  Updated: 13/Jun/13

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: majulvez Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 12.04.2 LTS
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)



 Description   

When you add a new JDBC Connection pools with connecto mysql 5.1.25 with resource Type: javax.sql.DataSource and datasource Classname: com.mysql.jdbc.jdbc2.optional.MysqlDataSource, there are two "url" properities: "Url" and "URL" for same "jdbc:mysql://" and it's confusing






[GLASSFISH-20417] ability to have asadmin emit output that can then be scripted back as create statements Created: 26/Apr/13  Updated: 29/Apr/13

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: None
Fix Version/s: future release

Type: New Feature Priority: Major
Reporter: pbelbin Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

as much as asadmin's export-sync-bundle will snapshot an entire domain's configuration, and allow that entire config to be used elsewhere, this is not so good if you only need to move bits and pieces of a config, as might be the case when you want to update an existing production config with the new jdbc resources from the development platform.

it would be great if the list or export commands could be told what to list, and have them effectively generate the asadmin commands one would then use on the other system for those resources to create them.



 Comments   
Comment by Tom Mueller [ 29/Apr/13 ]

Request for clarification - are you looking for the ability to record commands that have been run as they are run, so that they can be replayed later? Or are you looking for a backup/restore type capability that can be used for test-to-production except that it only transfers a part of the configuration, no matter now the configuration was modified?

The former is available to a certain extent using the AS_LOGFILE environment variable. When set, this produces a file like the following:

04/29/2013 09:00:17 EXIT: 0 asadmin start-domain
04/29/2013 09:00:22 EXIT: 0 asadmin deploy apps/helloworld.war
04/29/2013 09:00:26 EXIT: 0 asadmin create-jvm-options -Da=b
04/29/2013 09:00:34 EXIT: 0 asadmin create-cluster c1

The timestamp and exit code have to be removed, but this provides a list of commands that were executed.
However, this does not reproduce configuration that was accomplished via the GUI interface or any other means.

Another alternative would be something like the backup-domain and restore-domain commands. The backup-domain command allows the complete configuration of a domain to be saved into a backup file, and then the restore-domain command can use that file to recreate the domain. The restore-command creates a brand new domain; it does not apply configuration changes that were made to the domain to an existing domain. If the restore capability were modified to allow only parts of the configuration to be restored, then that might meet this need.

Comment by Tom Mueller [ 29/Apr/13 ]

If any change is going to be done for this, it will be in a future release (not 4.0), so marking the fix version as future-release. Still waiting for feedback as to determine what is actually desired here.

Comment by pbelbin [ 29/Apr/13 ]

I'm looking for something that we can use to 'extract' a portion of the config in a way that can then be used to push that portion to another instance.

eg: code on lab server requires a new JMS config, or JDBC connection & pool be defined.

it would be very useful to allow the existing lab config to be pulled, then modified where/if needed, in text form, then, use that information via asadmin to create the same resource on the production platform.

I don't want to move the entire glassfish config from lab to production. just a portion, with the ability to edit the details to account for differences between lab and production server names etc.

seems odd that we can push config commands, but we can't get something out, that we can then use to push against another instance.

Comment by Tom Mueller [ 29/Apr/13 ]

So it looks like this is more than just using asadmin log file output. It might be related to the backup worked, but with the requirement to edit the configuration in between, it is different than that. This might be related to get-active-module-config, however, there is no way to use the output from that command to input the configuration into another service.

Comment by pbelbin [ 29/Apr/13 ]

another good example of what I'm looking for is this:

I manually created a JNDI Custom Resource using java.util.properties.

I have created it with perhaps a dozen distinct properties.

Now, I want to do 2 things:

1. create a copy of this, but with some minor tweaks, as a new custom resource.
2. save this, from my development environment, and then install it in a different environment altogether.

using the existing asadmin command, I believe (with some difficulty perhaps) I can create the resource, but there's no way to extract the current values, allow me to change them, and then push them back into the glassfish instance (or another instance).

it's not symmetrical. I can push, but I can not pull.





[GLASSFISH-19408] GlassFish services and components to conform with configuration modularity Created: 06/Dec/12  Updated: 19/Sep/14

Status: Open
Project: glassfish
Component/s: admin
Affects Version/s: None
Fix Version/s: 4.1

Type: Task Priority: Major
Reporter: Masoud Kalali Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-19409 Transaction service configuration to ... Sub-task Open marina vatkina  
GLASSFISH-19410 Ejb container configuration to confor... Sub-task Open marina vatkina  
GLASSFISH-19411 Admin Service configuration to confor... Sub-task Open shreedhar_ganapathy  
GLASSFISH-19412 Web container configuration to confor... Sub-task Open Amy Roh  
GLASSFISH-19413 IIOP Service configuration to conform... Sub-task Open Harshad Vilekar  
GLASSFISH-19414 Web Services related configuration in... Sub-task Open Lukas Jungmann  
GLASSFISH-19517 Security services module should confo... Sub-task Open spei  
GLASSFISH-19522 Diagnostic service configuration to c... Sub-task Reopened tvlatas  
GLASSFISH-19603 Connector service to become compatibl... Sub-task Open Jagadish  
Tags: configuration

 Description   

Different modules requires to conform with configuration modularity. This is a parent task for all the issue being filed for this project. More details at the internal wiki page: http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Config+Modularity+One+Pager






[GLASSFISH-21243] Glassfish ignores variables in asenv.conf that begin with the letter "S" Created: 26/Oct/14  Updated: 26/Oct/14

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.1
Fix Version/s: None

Type: Bug Priority: Major
Reporter: camertron Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Mac OS 10.9.5
Linux version 2.6.32-431.29.2.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Tue Sep 9 21:36:05 UTC 2014



 Description   

Any variables I set in asenv.conf that begin with a capital letter "S" are ignored and not accessible to web applications. All other variables are set and can be retrieved as expected. The problem may also happen with a lowercase letter "s", but I didn't specifically test that case.






[GLASSFISH-21107] When uploading a large file using an async servlet, after 30 seconds it throws an InterruptedByTimeoutException Created: 26/Jun/14  Updated: 10/Dec/14

Status: Open
Project: glassfish
Component/s: configuration, grizzly-kernel, web_container
Affects Version/s: 4.1_b07
Fix Version/s: None

Type: Bug Priority: Major
Reporter: raulgd Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 7 64 bit, Java JDK 1.7.0u60 64 bit Glassfish 4.0.1b7 nightly build downloaded on 2014-06-25



 Description   

I created an async servlet for users to upload files, that way the inputstream is buffered without having to load the whole file in memory, as there can be very big files uploaded.

When trying out to upload a 4.6GB file, after 30 seconds, the servlet enters the onError(Throwable t) method with the exception:

Severe:   java.nio.channels.InterruptedByTimeoutException
	at org.apache.catalina.connector.InputBuffer.disableReadHandler(InputBuffer.java:324)
	at org.apache.catalina.connector.Request.asyncTimeout(Request.java:4418)
	at org.apache.catalina.connector.Request.processTimeout(Request.java:4469)
	at org.apache.catalina.connector.Request.access$000(Request.java:156)
	at org.apache.catalina.connector.Request$6.onTimeout(Request.java:4300)
	at org.glassfish.grizzly.http.server.Response$SuspendTimeout.onTimeout(Response.java:2131)
	at org.glassfish.grizzly.http.server.Response$DelayQueueWorker.doWork(Response.java:2180)
	at org.glassfish.grizzly.http.server.Response$DelayQueueWorker.doWork(Response.java:2175)
	at org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.run(DelayedExecutor.java:158)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)

Warning:   Context path from ServletContext:  differs from path from bundle: /
WARN:   WELD-000715: HttpContextLifecycle guard not set. The Servlet container is not fully compliant.

Now, I already configured Glassfish for longer timeouts on both Configurations-> server-config -> Network Config -> Network Listeners -> http-listener-1 -> HTTP So that timeout: -1, Connection upload timeout: 3600000 (1 hour), Request Timeout: -1, Max Post Size: -1

And on Configurations-> server-config -> Network Config -> Transports -> tcp so that Read Timeout: 3600000 (1 hour), Write Timeout: 3600000 (1 hour)

Now, AFAIK, because it's an NIO timeout exception, just by changing the tcp read and write timeout to 1 hour should avoid the issue, but still, the exception happens exactly 30 seconds later, as if the timeout configurations are being ignored.

I saw previous issues on grizzly ignoring the read and write timeouts, but they where closed as fixed in mid. 2013 so it shouldn't be an issue now.

For reference, here's my domain.xml:

<domain log-root="${com.sun.aas.instanceRoot}/logs" application-root="${com.sun.aas.instanceRoot}/applications" version="7">
  <security-configurations>
    <authentication-service default="true" name="adminAuth" use-password-credential="true">
      <security-provider name="spcrealm" type="LoginModule" provider-name="adminSpc">
        <login-module-config name="adminSpecialLM" control-flag="sufficient" module-class="com.sun.enterprise.admin.util.AdminLoginModule">
          <property name="config" value="server-config"></property>
          <property name="auth-realm" value="admin-realm"></property>
        </login-module-config>
      </security-provider>
      <security-provider name="filerealm" type="LoginModule" provider-name="adminFile">
        <login-module-config name="adminFileLM" control-flag="sufficient" module-class="com.sun.enterprise.security.auth.login.FileLoginModule">
          <property name="config" value="server-config"></property>
          <property name="auth-realm" value="admin-realm"></property>
        </login-module-config>
      </security-provider>
    </authentication-service>
    <authorization-service default="true" name="authorizationService">
      <security-provider name="simpleAuthorization" type="Simple" provider-name="simpleAuthorizationProvider">
        <authorization-provider-config support-policy-deploy="false" name="simpleAuthorizationProviderConfig"></authorization-provider-config>
      </security-provider>
    </authorization-service>
  </security-configurations>
  <managed-job-config></managed-job-config>
  <system-applications>
    <application context-root="" location="${com.sun.aas.installRootURI}/lib/install/applications/__admingui" directory-deployed="true" name="__admingui" object-type="system-admin">
      <module name="__admingui">
        <engine sniffer="web"></engine>
        <engine sniffer="security"></engine>
      </module>
    </application>
  </system-applications>
  <resources>
    <jdbc-resource pool-name="SamplePool" jndi-name="jdbc/sample"></jdbc-resource>
    <jdbc-resource pool-name="__TimerPool" jndi-name="jdbc/__TimerPool" object-type="system-admin"></jdbc-resource>
    <jdbc-resource pool-name="DerbyPool" jndi-name="jdbc/__default" object-type="system-all"></jdbc-resource>
    <jdbc-connection-pool datasource-classname="org.apache.derby.jdbc.EmbeddedXADataSource" res-type="javax.sql.XADataSource" name="__TimerPool">
      <property name="databaseName" value="${com.sun.aas.instanceRoot}/lib/databases/ejbtimer"></property>
      <property name="connectionAttributes" value=";create=true"></property>
    </jdbc-connection-pool>
    <jdbc-connection-pool datasource-classname="org.apache.derby.jdbc.ClientDataSource" is-isolation-level-guaranteed="false" res-type="javax.sql.DataSource" name="DerbyPool">
      <property name="PortNumber" value="1527"></property>
      <property name="Password" value="APP"></property>
      <property name="User" value="APP"></property>
      <property name="serverName" value="localhost"></property>
      <property name="DatabaseName" value="sun-appserv-samples"></property>
      <property name="connectionAttributes" value=";create=true"></property>
    </jdbc-connection-pool>
    <connector-connection-pool max-pool-size="250" steady-pool-size="1" name="jms/__defaultConnectionFactory-Connection-Pool" resource-adapter-name="jmsra" connection-definition-name="javax.jms.ConnectionFactory"></connector-connection-pool>
    <connector-resource pool-name="jms/__defaultConnectionFactory-Connection-Pool" jndi-name="jms/__defaultConnectionFactory" object-type="system-all-req"></connector-resource>
    <context-service jndi-name="concurrent/__defaultContextService" object-type="system-all"></context-service>
    <managed-executor-service jndi-name="concurrent/__defaultManagedExecutorService" object-type="system-all"></managed-executor-service>
    <managed-scheduled-executor-service jndi-name="concurrent/__defaultManagedScheduledExecutorService" object-type="system-all"></managed-scheduled-executor-service>
    <managed-thread-factory jndi-name="concurrent/__defaultManagedThreadFactory" object-type="system-all"></managed-thread-factory>
    <jdbc-connection-pool datasource-classname="org.apache.derby.jdbc.ClientDataSource" res-type="javax.sql.DataSource" name="SamplePool">
      <property name="DatabaseName" value="sample"></property>
      <property name="User" value="app"></property>
      <property name="Password" value="app"></property>
      <property name="URL" value="jdbc:derby://localhost:1527/sample"></property>
      <property name="PortNumber" value="1527"></property>
      <property name="serverName" value="localhost"></property>
    </jdbc-connection-pool>
  </resources>
  <servers>
    <server name="server" config-ref="server-config">
      <application-ref ref="__admingui" virtual-servers="__asadmin"></application-ref>
      <application-ref ref="VegosPortal" virtual-servers="server"></application-ref>
      <resource-ref ref="jdbc/__TimerPool"></resource-ref>
      <resource-ref ref="jdbc/__default"></resource-ref>
      <resource-ref ref="jms/__defaultConnectionFactory"></resource-ref>
      <resource-ref ref="concurrent/__defaultContextService"></resource-ref>
      <resource-ref ref="concurrent/__defaultManagedExecutorService"></resource-ref>
      <resource-ref ref="concurrent/__defaultManagedScheduledExecutorService"></resource-ref>
      <resource-ref ref="concurrent/__defaultManagedThreadFactory"></resource-ref>
      <resource-ref ref="jdbc/sample"></resource-ref>
    </server>
  </servers>
  <nodes>
    <node node-host="localhost" name="localhost-domain1" type="CONFIG" install-dir="${com.sun.aas.productRoot}"></node>
  </nodes>
  <configs>
    <config name="server-config">
      <system-property description="Port Number that JMS Service will listen for remote clients connection." name="JMS_PROVIDER_PORT" value="7676"></system-property>
      <http-service>
        <access-log></access-log>
        <virtual-server id="server" network-listeners="http-listener-1,http-listener-2"></virtual-server>
        <virtual-server id="__asadmin" network-listeners="admin-listener"></virtual-server>
      </http-service>
      <iiop-service>
        <orb use-thread-pool-ids="thread-pool-1"></orb>
        <iiop-listener id="orb-listener-1" port="3700" address="0.0.0.0" lazy-init="true"></iiop-listener>
        <iiop-listener id="SSL" port="3820" address="0.0.0.0" security-enabled="true">
          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
        </iiop-listener>
        <iiop-listener id="SSL_MUTUALAUTH" port="3920" address="0.0.0.0" security-enabled="true">
          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" client-auth-enabled="true"></ssl>
        </iiop-listener>
      </iiop-service>
      <admin-service system-jmx-connector-name="system" type="das-and-server">
        <jmx-connector port="8686" address="0.0.0.0" auth-realm-name="admin-realm" name="system">
          <ssl client-auth="want" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
        </jmx-connector>
        <property name="adminConsoleContextRoot" value="/admin"></property>
        <property name="adminConsoleDownloadLocation" value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war"></property>
        <property name="ipsRoot" value="${com.sun.aas.installRoot}/.."></property>
        <das-config></das-config>
      </admin-service>
      <connector-service></connector-service>
      <transaction-service tx-log-dir="${com.sun.aas.instanceRoot}/logs"></transaction-service>
      <batch-runtime-configuration></batch-runtime-configuration>
      <jms-service default-jms-host="default_JMS_host" type="EMBEDDED">
        <jms-host port="${JMS_PROVIDER_PORT}" host="localhost" name="default_JMS_host"></jms-host>
      </jms-service>
      <ejb-container>
        <ejb-timer-service></ejb-timer-service>
      </ejb-container>
      <web-container>
        <session-config>
          <session-manager>
            <manager-properties></manager-properties>
            <store-properties></store-properties>
          </session-manager>
          <session-properties></session-properties>
        </session-config>
      </web-container>
      <rest-config></rest-config>
      <cdi-service></cdi-service>
      <diagnostic-service></diagnostic-service>
      <security-service>
        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
          <property name="file" value="${com.sun.aas.instanceRoot}/config/admin-keyfile"></property>
          <property name="jaas-context" value="fileRealm"></property>
        </auth-realm>
        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
          <property name="file" value="${com.sun.aas.instanceRoot}/config/keyfile"></property>
          <property name="jaas-context" value="fileRealm"></property>
        </auth-realm>
        <auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
        <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
          <property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
        </jacc-provider>
        <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
        <audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
          <property name="auditOn" value="false"></property>
        </audit-module>
        <message-security-config auth-layer="SOAP">
          <provider-config provider-type="client" provider-id="XWS_ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="dynamic.username.password" value="false"></property>
            <property name="debug" value="false"></property>
          </provider-config>
          <provider-config provider-type="client" provider-id="ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="dynamic.username.password" value="false"></property>
            <property name="debug" value="false"></property>
            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
          </provider-config>
          <provider-config provider-type="server" provider-id="XWS_ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="debug" value="false"></property>
          </provider-config>
          <provider-config provider-type="server" provider-id="ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="debug" value="false"></property>
            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
          </provider-config>
        </message-security-config>
        <message-security-config auth-layer="HttpServlet">
          <provider-config provider-type="server" provider-id="GFConsoleAuthModule" class-name="org.glassfish.admingui.common.security.AdminConsoleAuthModule">
            <request-policy auth-source="sender"></request-policy>
            <response-policy></response-policy>
            <property name="loginPage" value="/login.jsf"></property>
            <property name="loginErrorPage" value="/loginError.jsf"></property>
          </provider-config>
        </message-security-config>
        <property name="default-digest-algorithm" value="SHA-256"></property>
      </security-service>
      <java-config debug-options="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="" classpath-suffix="">
        <jvm-options>-XX:MaxPermSize=256m</jvm-options>
        <jvm-options>-client</jvm-options>
        <jvm-options>-Djava.awt.headless=true</jvm-options>
        <jvm-options>-Djdk.corba.allowOutputStreamSubclass=true</jvm-options>
        <jvm-options>-Djavax.management.builder.initial=com.sun.enterprise.v3.admin.AppServerMBeanServerBuilder</jvm-options>
        <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
        <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
        <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
        <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
        <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
        <jvm-options>-Xmx1024m</jvm-options>
        <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
        <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
        <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
        <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
        <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
        <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
        <jvm-options>-Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command,org.apache.felix.shell.remote,org.apache.felix.fileinstall</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.port=6666</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
        <jvm-options>-Dgosh.args=--nointeractive</jvm-options>
        <jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-options>
        <jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
        <jvm-options>-Dfelix.fileinstall.log.level=2</jvm-options>
        <jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
        <jvm-options>-Dfelix.fileinstall.bundles.startTransient=true</jvm-options>
        <jvm-options>-Dfelix.fileinstall.disableConfigSave=false</jvm-options>
        <jvm-options>-XX:NewRatio=2</jvm-options>
      </java-config>
      <network-config>
        <protocols>
          <protocol name="http-listener-1">
            <http request-timeout-seconds="-1" timeout-seconds="-1" connection-upload-timeout-millis="3600000" default-virtual-server="server" max-connections="1500">
              <file-cache></file-cache>
            </http>
          </protocol>
          <protocol security-enabled="true" name="http-listener-2">
            <http default-virtual-server="server" max-connections="250">
              <file-cache></file-cache>
            </http>
            <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" ssl3-enabled="false" cert-nickname="s1as"></ssl>
          </protocol>
          <protocol name="admin-listener">
            <http default-virtual-server="__asadmin" max-connections="250" encoded-slash-enabled="true">
              <file-cache></file-cache>
            </http>
          </protocol>
          <protocol security-enabled="true" name="sec-admin-listener">
            <http default-virtual-server="__asadmin" encoded-slash-enabled="true">
              <file-cache></file-cache>
            </http>
            <ssl client-auth="want" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
          </protocol>
          <protocol name="admin-http-redirect">
            <http-redirect secure="true"></http-redirect>
          </protocol>
          <protocol name="pu-protocol">
            <port-unification>
              <protocol-finder protocol="sec-admin-listener" name="http-finder" classname="org.glassfish.grizzly.config.portunif.HttpProtocolFinder"></protocol-finder>
              <protocol-finder protocol="admin-http-redirect" name="admin-http-redirect" classname="org.glassfish.grizzly.config.portunif.HttpProtocolFinder"></protocol-finder>
            </port-unification>
          </protocol>
        </protocols>
        <network-listeners>
          <network-listener port="80" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
          <network-listener port="8181" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
          <network-listener port="4848" protocol="pu-protocol" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>
        </network-listeners>
        <transports>
          <transport write-timeout-millis="3600000" byte-buffer-type="HEAP" read-timeout-millis="3600000" display-configuration="true" name="tcp"></transport>
        </transports>
      </network-config>
      <thread-pools>
        <thread-pool max-thread-pool-size="50" name="admin-thread-pool" max-queue-size="256"></thread-pool>
        <thread-pool name="http-thread-pool"></thread-pool>
        <thread-pool max-thread-pool-size="200" name="thread-pool-1"></thread-pool>
      </thread-pools>
      <monitoring-service>
        <module-monitoring-levels></module-monitoring-levels>
      </monitoring-service>
      <group-management-service>
        <failure-detection></failure-detection>
      </group-management-service>
      <availability-service></availability-service>
    </config>
    <config name="default-config">
      <http-service>
        <access-log></access-log>
        <virtual-server id="server" network-listeners="http-listener-1, http-listener-2">
          <property name="default-web-xml" value="${com.sun.aas.instanceRoot}/config/default-web.xml"></property>
        </virtual-server>
        <virtual-server id="__asadmin" network-listeners="admin-listener"></virtual-server>
      </http-service>
      <iiop-service>
        <orb use-thread-pool-ids="thread-pool-1"></orb>
        <iiop-listener id="orb-listener-1" port="${IIOP_LISTENER_PORT}" address="0.0.0.0"></iiop-listener>
        <iiop-listener id="SSL" port="${IIOP_SSL_LISTENER_PORT}" address="0.0.0.0" security-enabled="true">
          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
        </iiop-listener>
        <iiop-listener id="SSL_MUTUALAUTH" port="${IIOP_SSL_MUTUALAUTH_PORT}" address="0.0.0.0" security-enabled="true">
          <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" client-auth-enabled="true"></ssl>
        </iiop-listener>
      </iiop-service>
      <admin-service system-jmx-connector-name="system">
        <jmx-connector port="${JMX_SYSTEM_CONNECTOR_PORT}" address="0.0.0.0" auth-realm-name="admin-realm" name="system">
          <ssl client-auth="want" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="glassfish-instance"></ssl>
        </jmx-connector>
        <property name="adminConsoleDownloadLocation" value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war"></property>
        <das-config></das-config>
      </admin-service>
      <web-container>
        <session-config>
          <session-manager>
            <manager-properties></manager-properties>
            <store-properties></store-properties>
          </session-manager>
          <session-properties></session-properties>
        </session-config>
      </web-container>
      <ejb-container>
        <ejb-timer-service></ejb-timer-service>
      </ejb-container>
      <mdb-container></mdb-container>
      <jms-service addresslist-behavior="priority" default-jms-host="default_JMS_host" type="EMBEDDED">
        <jms-host port="${JMS_PROVIDER_PORT}" host="localhost" name="default_JMS_host"></jms-host>
      </jms-service>
      <log-service log-rotation-limit-in-bytes="2000000" file="${com.sun.aas.instanceRoot}/logs/server.log">
        <module-log-levels></module-log-levels>
      </log-service>
      <security-service>
        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
          <property name="file" value="${com.sun.aas.instanceRoot}/config/admin-keyfile"></property>
          <property name="jaas-context" value="fileRealm"></property>
        </auth-realm>
        <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
          <property name="file" value="${com.sun.aas.instanceRoot}/config/keyfile"></property>
          <property name="jaas-context" value="fileRealm"></property>
        </auth-realm>
        <auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
        <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
          <property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
        </jacc-provider>
        <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
        <audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
          <property name="auditOn" value="false"></property>
        </audit-module>
        <message-security-config auth-layer="SOAP">
          <provider-config provider-type="client" provider-id="XWS_ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="dynamic.username.password" value="false"></property>
            <property name="debug" value="false"></property>
          </provider-config>
          <provider-config provider-type="client" provider-id="ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="dynamic.username.password" value="false"></property>
            <property name="debug" value="false"></property>
            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
          </provider-config>
          <provider-config provider-type="server" provider-id="XWS_ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="debug" value="false"></property>
          </provider-config>
          <provider-config provider-type="server" provider-id="ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
            <request-policy auth-source="content"></request-policy>
            <response-policy auth-source="content"></response-policy>
            <property name="encryption.key.alias" value="s1as"></property>
            <property name="signature.key.alias" value="s1as"></property>
            <property name="debug" value="false"></property>
            <property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
          </provider-config>
        </message-security-config>
      </security-service>
      <transaction-service tx-log-dir="${com.sun.aas.instanceRoot}/logs" automatic-recovery="true"></transaction-service>
      <diagnostic-service></diagnostic-service>
      <java-config debug-options="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${JAVA_DEBUGGER_PORT}" system-classpath="" classpath-suffix="">
        <jvm-options>-XX:MaxPermSize=256m</jvm-options>
        <jvm-options>-server</jvm-options>
        <jvm-options>-Djava.awt.headless=true</jvm-options>
        <jvm-options>-Djdk.corba.allowOutputStreamSubclass=true</jvm-options>
        <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
        <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
        <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
        <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
        <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
        <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
        <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
        <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
        <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
        <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
        <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
        <jvm-options>-XX:NewRatio=2</jvm-options>
        <jvm-options>-Xmx1024m</jvm-options>
        <jvm-options>-Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command,org.apache.felix.fileinstall</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.port=${OSGI_SHELL_TELNET_PORT}</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
        <jvm-options>-Dgosh.args=--noshutdown -c noop=true</jvm-options>
        <jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-options>
        <jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
        <jvm-options>-Dfelix.fileinstall.log.level=3</jvm-options>
        <jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
        <jvm-options>-Dfelix.fileinstall.bundles.startTransient=true</jvm-options>
        <jvm-options>-Dfelix.fileinstall.disableConfigSave=false</jvm-options>
      </java-config>
      <availability-service>
        <web-container-availability></web-container-availability>
        <ejb-container-availability sfsb-store-pool-name="jdbc/hastore"></ejb-container-availability>
        <jms-availability></jms-availability>
      </availability-service>
      <network-config>
        <protocols>
          <protocol name="http-listener-1">
            <http default-virtual-server="server">
              <file-cache></file-cache>
            </http>
          </protocol>
          <protocol security-enabled="true" name="http-listener-2">
            <http default-virtual-server="server">
              <file-cache></file-cache>
            </http>
            <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" ssl3-enabled="false" cert-nickname="s1as"></ssl>
          </protocol>
          <protocol name="admin-listener">
            <http default-virtual-server="__asadmin" max-connections="250">
              <file-cache></file-cache>
            </http>
          </protocol>
          <protocol security-enabled="true" name="sec-admin-listener">
            <http default-virtual-server="__asadmin" encoded-slash-enabled="true">
              <file-cache></file-cache>
            </http>
            <ssl client-auth="want" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="glassfish-instance"></ssl>
          </protocol>
          <protocol name="admin-http-redirect">
            <http-redirect secure="true"></http-redirect>
          </protocol>
          <protocol name="pu-protocol">
            <port-unification>
              <protocol-finder protocol="sec-admin-listener" classname="org.glassfish.grizzly.config.portunif.HttpProtocolFinder" name="http-finder"></protocol-finder>
              <protocol-finder protocol="admin-http-redirect" classname="org.glassfish.grizzly.config.portunif.HttpProtocolFinder" name="admin-http-redirect"></protocol-finder>
            </port-unification>
          </protocol>
        </protocols>
        <network-listeners>
          <network-listener port="${HTTP_LISTENER_PORT}" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
          <network-listener port="${HTTP_SSL_LISTENER_PORT}" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
          <network-listener port="${ASADMIN_LISTENER_PORT}" protocol="pu-protocol" transport="tcp" name="admin-listener" thread-pool="http-thread-pool"></network-listener>
        </network-listeners>
        <transports>
          <transport name="tcp"></transport>
        </transports>
      </network-config>
      <thread-pools>
        <thread-pool name="http-thread-pool"></thread-pool>
        <thread-pool max-thread-pool-size="200" name="thread-pool-1"></thread-pool>
        <thread-pool max-thread-pool-size="50" name="admin-thread-pool" max-queue-size="256"></thread-pool>
      </thread-pools>
      <group-management-service>
        <failure-detection></failure-detection>
      </group-management-service>
      <system-property description="Port Number that JMS Service will listen for remote clients connection." name="JMS_PROVIDER_PORT" value="27676"></system-property>
      <system-property name="ASADMIN_LISTENER_PORT" value="24848"></system-property>
      <system-property name="HTTP_LISTENER_PORT" value="28080"></system-property>
      <system-property name="HTTP_SSL_LISTENER_PORT" value="28181"></system-property>
      <system-property name="IIOP_LISTENER_PORT" value="23700"></system-property>
      <system-property name="IIOP_SSL_LISTENER_PORT" value="23820"></system-property>
      <system-property name="IIOP_SSL_MUTUALAUTH_PORT" value="23920"></system-property>
      <system-property name="JMX_SYSTEM_CONNECTOR_PORT" value="28686"></system-property>
      <system-property name="OSGI_SHELL_TELNET_PORT" value="26666"></system-property>
      <system-property name="JAVA_DEBUGGER_PORT" value="29009"></system-property>
      <monitoring-service>
        <module-monitoring-levels></module-monitoring-levels>
      </monitoring-service>
    </config>
  </configs>
  <property name="administrative.domain.name" value="domain1"></property>
  <secure-admin enabled="true" special-admin-indicator="8666d952-1f41-4ba9-a0c0-ec7396d974b7">
    <secure-admin-principal dn="CN=localhost,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST=California,C=US"></secure-admin-principal>
    <secure-admin-principal dn="CN=localhost-instance,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST=California,C=US"></secure-admin-principal>
  </secure-admin>
  <clusters></clusters>
  <applications>
    <application context-root="/vegos" location="file:/D:/NetbeansProjects/VegosPortal/target/VegosPortal-1.0/" name="VegosPortal" directory-deployed="true" object-type="user">
      <property name="archiveType" value="war"></property>
      <property name="appLocation" value="file:/D:/NetbeansProjects/VegosPortal/target/VegosPortal-1.0/"></property>
      <property name="org.glassfish.ejb.container.application_unique_id" value="91995825334714368"></property>
      <property name="defaultAppName" value="VegosPortal-1.0"></property>
      <module name="VegosPortal">
        <engine sniffer="ejb"></engine>
        <engine sniffer="security"></engine>
        <engine sniffer="weld"></engine>
        <engine sniffer="web"></engine>
      </module>
    </application>
  </applications>
</domain>

I tried the exact same code in WildFly 8.1.0 and works perfectly, so I know it's grizzly's NIO configuration.



 Comments   
Comment by raulgd [ 10/Dec/14 ]

This problem doesn't happen in Glassfish 4.1b13 with JDK 8u25 anymore.

Only there are 2 things to specify, first, the http-thread-pool timeout also has to be set to the same timeout as the tcp read timeout and connection upload timeout.

The other one, on the async servlet, right after initiating the async context with:

AsyncContext context = request.startAsync(); 

You have to set the timeout for the context with:

context.setTimeout(3600000);

Just replace the 3600000 with whatever timeout you set.

It would be ideal to just have the servlet get the timeout specified from the domain configuration, but at least is working now setting it by hand.





[GLASSFISH-16304] domain.xml should be in UTF-8 Created: 01/Apr/11  Updated: 22/May/13

Status: Reopened
Project: glassfish
Component/s: configuration
Affects Version/s: 3.1
Fix Version/s: future release

Type: Bug Priority: Major
Reporter: gmurr Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
blocks GLASSFISH-16700 Could not upgrade from ogs-3.1-window... Closed
Tags: 3_1_1-scrubbed, 3_1_2-release-note-added, 3_1_2-release-notes, 3_1_x-exclude

 Description   

currently domain.xml is in native encoding. This could lead to invalid byte sequence and the server will fail to start.
domain.xml should be in UTF-8 to avoid this issue. It is also recommended to have the prolog in the file:
<?xml version="1.0" encoding="UTF-8"?> this way the users are aware of it.



 Comments   
Comment by Tom Mueller [ 04/Apr/11 ]

There have been two issues recently related to this issue:

GLASSFISH-15150 modified the writing of the domain.xml so that it always uses UTF-8. It did not add the header that is suggested in this bug report.

GLASSFISH-15319 requested that UTF-8 encoding for the domain.xml be removed. With this change, the file is written using the default encoding that is in effect for the server.

There was a discussion at the admin iteam meeting on Dec 22, 2010 about these where the consensus was to remove the hard-coding. See:
http://wikis.sun.com/pages/viewpage.action?pageId=235180885

I'm marking this issue as incomplete because the description does not provide any details about the circumstances that "could lead to invalid byte sequence". Clearly one circumstance is that if the user has an incorrect default encoding set for the server. However, that is considered a user error rather than a bug. Are there other circumstances that trigger this problem? If so, please document them and reopen the bug.

Comment by gmurr [ 04/Apr/11 ]

Here are some scenarios that will lead to issues:

1- The server is sunning in EN locale. The user inputs JA data from the admin console. A description field for instance. Since the server is running in EN locale, the default encoding can not handle JA data. domain.xml will contain invlaid byte sequence and the server will fail to restart.

2- The user can always change the system locale. If the new system locale can not handle the domain.xml previous encoding. The server will also fail to start.

3- If we have a cluster with nodes running in different locales. Let's suppose domain.xml contain Chinese data and one of the cluster nodes is running in a non Chinese locale. This node will not be able to handle the Chinese data correctly.

If domain.xml is in UTF-8, we will not face any portability issues with its content. Since UTF-8 supports all languages, we do not need to worry about the system locale as long as we read and write the data in UTF-8.

Comment by Tom Mueller [ 04/Apr/11 ]

Scenario #1 is the scenario that was mentioned in the previous comment. The user has an incorrect default encoding set for the server. This is considered a user error.

Scenario #2 is a difficult one to deal with. When this happens, it is currently necessary for the user to manually convert the encoding of the domain.xml file.

Scenario #3 is not a supported configuration.

I agree that storing the file in UTF-8 with the proper header would be a better solution. Some of the issues raised with this during the admin iteam meeting are:

1. How to deal with users that edit the domain.xml file with an editor that doesn't pay attention to the header? Or, if the header isn't there, it is likely that the editor is going to use some native encoding rather than UTF-8.

2. How to upgrade from previous releases that did not save the file in UTF-8? One solution for this is to assume that the file is using the default encoding if there is no header, and UTF-8 (or whatever encoding is specified) if there is a header.

Comment by scatari [ 17/May/11 ]

Approved for 3.1.1.

Comment by apcuk [ 17/Aug/11 ]

This is still a valid and very serious issue. I just registered to explain my problem. I spent weeks trying to find the solution with no luck, so I'm glad that finally I've found this page.

I am using Windows 7 with Hungarian locale. If I download glassfish and start it, it works fine. After a while, it won't restart/start even if I don't edit domain.xml manually (I don't even open it with a text editor). After this if I add something like <?xml version="1.0"?> as the first line, glassfish will be able to start up again, but this header gets deleted immediately. Also, after editing it can't find my app anymore (when undeploying for example), since I have accents in my name which is in the path of NetBeansProjects.

Comment by Tom Mueller [ 17/Aug/11 ]

Do you have any information about what happened between when it was working and when it stopped working? Was the console used to modify the configuration? Were asadmin commands used? Was an application deployed? Are there configuration changes that involve non-ASCII characters?

Presumably you are using an editor to add the <?xml version="1.0"?>. Is this editor changing the encoding? (Maybe it is the use of the editor rather than the header that is making it work.)

Comment by apcuk [ 18/Aug/11 ]

I used the admin console at localhost:4848 to modify some settings, adding a JAAS context for example. I did not use asadmin commands. Yes, I deployed a web application. The configuration changes did not involve non-ASCII characters. The only non-ASCII characters are in the path of NetBeansProjects (in my name), but I'm not sure if it has anything to do with domain.xml, NetBeans is able to deploy the app (at least for the first time).

I don't think the editor changes the encoding. If I want to save it notepad says the encoding is ANSI. Is there a way to check how the file has been encoded?

I will try to test what happens when in the next few days for more information.

Comment by Tom Mueller [ 18/Aug/11 ]

It would be helpful to see the error message that you get when starting the server (when it fails to start). If this is an encoding problem, you should be receiving some sort of encoding failure message or a parsing error messages for the domain.xml.

When the server fails to start, it would be helpful to see the domain.xml file, if that is something that you can share. By looking at the file, it is possible to tell what encoding is being used (if there are non-ascii characters). If the file is entire ascii characters, then the encoding doesn't matter. Generally, to do this you need an editor which can look at the binary values in the file.

Comment by apcuk [ 18/Aug/11 ]

There are indeed non-ASCII characters in the domain.xml, I didn't realize that before.

<applications>
<application context-root="/" location="file:/C:/Users/Szabó%20András/Documents/NetBeansProjects/.../build/web/" name="..." directory-deployed="true" object-type="user">
<property name="appLocation" value="file:/C:/Users/Szabó%20András/Documents/NetBeansProjects/.../build/web/"></property>
<property ... ></property>
...
</application>
</applications>

When the server fails to start, there is nothing in the log (simply nothing happens when I click "start" in NetBeans). Eclipse says port is out of range, but I guess it is some side effect because of the invalid domain.xml. If I want to open it in Google Chrome, it says "This page contains the following errors: error on line 11 at column 5: Encoding error / Below is a rendering of the page up to the first error." Then it shows nothing. Firefox, however, opens it perfectly.

I found a way to determine the encoding: Visual Studio says it's Central European (Windows) (which is normal if Glassfish uses native encoding, I guess). If I want to save it however, it switches to UTF-8. Weird.

I currently cannot share the xml with you, but I will create one from scratch without my personal data with a new glassfish installation.

Comment by Tom Mueller [ 18/Aug/11 ]

To see the error from GlassFish, use the Command Prompt window to start the domain with the -v option:

...\glassfish\bin\asadmin start-domain -v

You will see the output from the server in the command prompt window. This will probably include a message about finding an invalid character in the domain.xml file.

To work-around this issue, GlassFish must be started with a locale setting that has a default encoding that matches the encoding that is being used to specify the filename.

Comment by apcuk [ 18/Aug/11 ]

"asadmin start-domain -v" says:
... Parse error at [row,col]:[11,64]
Message: invalid byte 2 of 4 byte UTF-8 sequence. ...

So it seems that GlassFish writes the files using Central European encoding but then tries to read it with UTF-8.

The global "locale" textbox in the admin console is blank, since then (if I'm correct) GlassFish will be started using the default OS locale. So it will use the default encoding. I don't see where is the problem, to be honest.

What settings should I change?

Comment by Tom Mueller [ 19/Aug/11 ]

More investigation will be required to understand this fully, specifically to determine how a non-UTF-8 sequence is being written to the file when it is being read with UTF-8. GlassFish uses the same encoding to read and write the file, i.e., the default encoding for the JVM. If the JVM is being started in different ways with different default encodings, that might explain what is happening here.

Comment by apcuk [ 25/Sep/11 ]

Do you have any update on this issue? It seems that it's only me who is facing this problem, which is quite wierd, since I have default settings in Neatbeans, Glassfish, JVM etc.

I set both en_GB and hu_HU to override the default locale in Glassfish, but neither had any effect. Adding <?xml version="1.0" encoding="UTF-8"?> to domain.xml doesn't help either since it gets deleted during startup. So now I have to resave the xml with UTF-8 before every startup.

Thank you for your previous responses.

Comment by Tom Mueller [ 26/Sep/11 ]

I found an easy way to corrupt the GlassFish domain.xml file that produces a failure similar to yours. Just deploy an application, for example named helloworld, and then do the following:

asadmin set applications.application.helloworld.description=hióhi

If GlassFish is configured to use the default encoding on Windows, Cp1252, this command will succeed and the domain.xml file will be written, but the ó will be encoded in Central European Encoding rather than in Cp1252. The next time GlassFish is restarted, it will be unable to read the domain.xml file and the startup will fail.

This is actually a different bug than the one that is recorded here. I created GLASSFISH-17352 to track that bug. See the description of that bug for details about a workaround to the issue reported in the comments of this bug.

Comment by Tom Mueller [ 19/Oct/11 ]

Excluding this from 3.1.x releases. Will consider for 4.0.





[GLASSFISH-912] asadmin users should be able to use properties with empty value Created: 09/Aug/06  Updated: 22/May/13

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 9.1pe
Fix Version/s: future release

Type: Bug Priority: Minor
Reporter: Cheng Fang Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 912

 Description   

This issue was discussed on dev@glassfish.dev.java.net on Aug 9, 2006. In a
nutshell, asadmin treats properties with empty value as removing these
properties, so there is no way to add such properties thru public asadmin GUI
or CLI. There were at least 2 bug reports related to this issue: BT6363330 and
BT6378808. However, users should be able to add such properties without jumping
through the hoops, hence this RFE.

Since I explicitly check the checkbox in front of password property field, so
asadmin GUI knows I do want this property with empty value. Why can't asadmin
gui do some substitution like:
if(propertyXChecked && (propertyXValue == null || propertyXValue.length() == 0))
propertyXValue=SPECIAL_EMPTY_VALUE;

then pass to the asadmin backend for processing?
The following is from email discussion:
I want to create a jdbc connection pool with a username, but empty password. In
admin GUI, I filled in username field and left password field blank. I also
checked (the checkbox) fields including username, password, databaseName, etc.
The pool was successfully created. But in domain.xml, the
<jdbc-connection-pool> element doesn't have a password property. I would expect
a password property with an empty value to be added.

When I ping the pool, it failed: "password credential is required." But in
fact, the database doesn't need any password to connect to.

After I add a empty password property to domain.xml, I was able to use the
datasource.

Then I decided to try 'asadmin add-resource'. I created a resource xml file
(see attached) containing an empty-password property:
<property name="password" value=""/>

I got this error:
=========================
Could not add Resource Type: jdbc-connection-pool. Error Message: Operation
'setProperty' failed in 'jdbc-conn
ection-pool' Config Mbean.
Target exception message: Property password can not be removed.
=========================
Added Resource Type: jdbc-resource
Command add-resources executed successfully.

server.log error:
[#|2006-08-08T15:11:56.480-0400|WARNING|sun-appserver-pe9.1|javax.enterprise.system.stream.err|_ThreadID=12;_ThreadName=httpWorkerThread-4848-1;_RequestID=ba754501-ec34-40e2-a7ee-35872f528a37;|
javax.management.MBeanException: Operation 'setProperty' failed in
'jdbc-connection-pool' Config Mbean.
Target exception message: Property password can not be removed.
at
com.sun.enterprise.admin.MBeanHelper.extractAndWrapTargetException(MBeanHelper.java:419)
at
com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:470)
at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:77)
at $Proxy1.invoke(Unknown Source)
at
com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:297)
at
com.sun.enterprise.admin.mbeans.ResourcesMBean.setProperties(ResourcesMBean.java:830)
at
com.sun.enterprise.admin.mbeans.ResourcesMBean.createResource(ResourcesMBean.java:653)
at
com.sun.enterprise.admin.mbeans.ResourcesMBean.createAResource(ResourcesMBean.java:2016)
at
com.sun.enterprise.admin.mbeans.ResourcesMBean.createResource(ResourcesMBean.java:1886)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:353)
at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:336)
at
com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:448)
at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:77)
at $Proxy1.invoke(Unknown Source)
at
com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:297)
at
com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:56)
at
com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:142)
at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:109)
at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:246)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at
com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:231)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:619)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.processNonBlocked(DefaultProcessorTask.java:550)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:780)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:251)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:205)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
at
com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:103)
Caused by: com.sun.enterprise.admin.config.MBeanConfigException: Property
password can not be removed.
at
com.sun.enterprise.admin.config.ManagedConfigBean.wrapAndThrowMBeanException(ManagedConfigBean.java:1599)
at
com.sun.enterprise.admin.config.ManagedConfigBean.setElementProperty(ManagedConfigBean.java:749)
at
com.sun.enterprise.admin.config.ManagedConfigBean.setProperty(ManagedConfigBean.java:698)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:353)
at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:336)
at
com.sun.enterprise.admin.config.ManagedConfigBean.invokeOperation(ManagedConfigBean.java:1507)
at
com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:454)
... 62 more

======================================
[Kedar Mhaswade]
Hmm. It's tricky, isn't it?
I agree that this is rather ugly, and could be handled better.
You can file an RFE against configuration if the following does
not satisfy you.

First problem: Connector backend (the piece of code that pings
the database) does not default the null value for the password
to mean that there is no password.

Second problem: admin interfaces don't have any way to "explicitly"
remove a "property". This is especially true for admin GUI. It is
a rather hard problem to solve on today's admin GUI.
On the GUI, traditionally when a particular text field is not provided
(i.e. you leave it blank), it is taken to mean that that attribute
and/or property is removed from the configuration, if it is allowed.

Thus, if:

  • an attribute "a1" on an element "e1" is allowed to be empty
  • a property "foo" anywhere in domain.xml is allowed to be empty,

a screen with such values left bank will result in removing the
attribute/property on clicking "Save".

If the value is NOT "allowed" to be empty, it is an error.

Now, properties by design, are never allowed to have empty values.
Thus, an empty value for property always -> removal of the property
from the configuration.

I know, this is rather bad, but the GUI unfortunately does not have
an explicit way to "remove" a property and distinguish it from empty
values.

Should we decide to change the semantics, the GUI (several screens)
will need to be redesigned. (At least that's what I am told).

CLI also falls short here because it treats it the same –
asadmin set "a.b.c.property.xyz=" will make the
<property name="xyx" value="anything"/> disappear from domain.xml

Now comes the work around part of it. Obviously we knew this will
happen. So, there is a special value of a property (I wouldn't tell
which one – for it is an undocumented interface) which when used
will do the "right" thing as you'd expect. As always, there are issues
with this, but I feel they are manageable.

I'd want your RFE to actually make that "special empty value" an
interface.

====================================
[Ludo Champenois]
Please tell us what is this value. If not, I will grep the source code
(published) to find it (waste of my time).
For me, such a behavior is not an RFE, but a bug. UI should when needed make the
distinction between a null value and an empty value.
Null -> delete the property
Empty: treat it as ""
=====================================
[Siraj Ghaffar]
I dont see the need to redesign any GUI screens to handle empty valued
properties. Every GUI screen with additional properties has a "Delete
Properties" button that can be used to actually remove the property. If the
property value is empty then the user should be able to enter a value for the
property name and leave the value empty. If this is not happening then that's a
bug that needs to be fixed. Regardless, there shouldnt be any need to change the
actual UI that the user sees, to resolve this particular case. From what I
remember, this part of the code is reused almost everywhere, so there shouldnt
be a need to make massive changes either. CCing gui team..
============================================
[Anissa Lam]
It is not GUI that prevents empty property value to be saved. Please refer to
http://bt2ws.central.sun.com/CrPrint?id=6378808
Here is from the evaluation of the bug. The solution provied by the backend is
to add the 'unofficial' special string that will be translated to "" by the
backend and write out "" as property value to domain.xml.

Evaluation

Backend treats "" empty String as removal of the property itself. This mean,
unless backend changed the behaviour or have a way for setting property value to
"" empty string, there is not much GUI can do.
I am transferring this bug to 'admin'. Once they design and implemented a way to
set empty string value to Property, then GUI can implement that.
Here is comment from bug# 6363330

> Set empty valued property is treated by backend as request to remove property.
> This is only way to remove property from CLI, as far as it has only 'get' and
'set' command to handle dotted named attributes and properties.
> We can not re-consider this behaviour now because of backward compartibility.
> Kedar and Abhijit proposed to have the special value for property to set it to
"empty" string.
================================
[Kedar Mhaswade]
The point that I was trying to make was it is hard to represent on any
interface. Definitely not on the lines of "It is someone else's problem" or
"something is not done right".

What is true for properties is however not true for attributes, that's
all. For example, if I am modifying an attribute (let's say per the schema,
this is an IMPLIED attribute) of an element on the GUI, then when I
specify an empty value in the text field, that attribute is removed from
domain.xml.

How would we (easily) make this to be distinct from having the attribute with
a value "" in the domain.xml because

<foo a1="" a2="xyz" .../>

could be a configuration different from:

<foo a2="xyz" .../>
==============================
[Siraj Ghaffar]
This particular problem isnt hard for gui. The current gui design does allows
both deleting properties and setting empty values.

> Definitely not on the lines of "It is someone else's problem" or
> "something is not done right".
>
> What is true for properties is however not true for attributes, that's
> all. For example, if I am modifying an attribute (let's say per the schema,
> this is an IMPLIED attribute) of an element on the GUI, then when I
> specify an empty value in the text field, that attribute is removed from
> domain.xml.

I am not sure if we even want to present an interface to the user where the user
can either delete an attribute or set an empty value. Shouldnt the system be
deciding what to do, given that attributes are more 'well known/well understood'
by the appserver itself ?
===============================
[Jagadish Ramu]
AFAIK,in connectors, if "" is sent as password that will be used.
If the 'user' property is null, mcf properties will be looked at.
If they are also null, value for user, password will be "".



 Comments   
Comment by Anissa Lam [ 09/Aug/06 ]

Add 'cc'.

Comment by kenpaulsen [ 09/Aug/06 ]

Adding myself to the cc list.

Comment by km105526 [ 09/Aug/06 ]

.

Comment by km105526 [ 09/Aug/06 ]

Like I said, we will use this issue to formalize the support for the properties
that should appear as

<property name="shouldBeEmpty" value=""/>.

It is rather tricky if it has to work with both GUI and CLI.

Comment by km105526 [ 09/Aug/06 ]

.

Comment by marina vatkina [ 11/Dec/08 ]

Default password for the out-of-the-box MySQL is "". The only work around is
editing domain.xml

Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by Tom Mueller [ 03/Mar/11 ]

The consensus of the Admin Iteam on March 1, 2011 is to implement the following proposal to address this issue:

Create a remote unset command that is used to remove properties, other possible names: delete, clear. Modify the local unset to do the right thing based on what is passed in. Change the behavior of:

asadmin set some.propname=

to mean set the property name to the empty string rather than removing the property.





[GLASSFISH-21231] 'WARNING: Skipping entry because it is not an absolute URI' Message During Startup Caused By osgi Configuration Error Created: 09/Oct/14  Updated: 10/Oct/14

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: jamie_t_macdonald Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows



 Description   

During startup of a fresh install of Glassfish a warning like the following happens:
Oct 09, 2014 19:38:38 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNING: Skipping entry because it is not an absolute URI.

This is happening because BundleProvisioner reads a property named 'glassfish.osgi.auto.start' in the file <glassfish_home>/glassfish/config/osgi.properties.

strong glassfish.osgi.auto.start strong is currently defined as:
glassfish.osgi.auto.start=\
$

{core.bundles}

\
$

{autostart.bundles}

 Comments   
Comment by jamie_t_macdonald [ 10/Oct/14 ]

Sorry. Clicked create by mistake. Ignore the description, I'll add the whole thing in this comment.

During startup of a fresh install of Glassfish a warning like the following happens:

Oct 09, 2014 19:38:38 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNING: Skipping entry because it is not an absolute URI.

This is happening because BundleProvisioner reads a property named glassfish.osgi.auto.start in the file <glassfish_home>/glassfish/config/osgi.properties.

glassfish.osgi.auto.start is currently defined as:

glassfish.osgi.auto.start=\
${core.bundles} \
${autostart.bundles}

core.bundles is currently defined as:

core.bundles=\
${com.sun.aas.installRootURI}modules/endorsed/ \
${obr.bundles} \
${hk2.bundles} \
${com.sun.aas.installRootURI}modules/glassfish.jar

And the key to this problem obr.bundles is currently defined as:

#obr.bundles=${com.sun.aas.installRootURI}modules/org.apache.felix.bundlerepository.jar

The comment is expanded to a space which BundleProvisioner reads and issues a warning about.
Removing the ${obr.bundles} line from core.bundles gets rid of the warning.

The code in BundleProvisioner should be updated to handle whitespaces better.

If you feel that it's useful to inform the user about unnecessary whitespace then osgi.properties should be updated so people don't get warnings from the default configuration.





[GLASSFISH-21247] How to access admin console http instead of https Created: 04/Nov/14  Updated: 06/Nov/14

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.0
Fix Version/s: None

Type: Task Priority: Minor
Reporter: gtulasidhar Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

STAGE



 Description   

Hi Team,
We need access admin console http instead of https.

Could you please give me steps to do this.

Thanks,
Tulasidhar



 Comments   
Comment by smillidge-c2b2 [ 04/Nov/14 ]

Run

asadmin disable-secure-admin
asadmin restart-domain domain1

where domain1 is your domain name

Comment by gtulasidhar [ 05/Nov/14 ]

it is working in same system.i need remote system...could you please help me......

Comment by gtulasidhar [ 05/Nov/14 ]

Just i want use local or remote only with http....please help me on this.......

Comment by Anissa Lam [ 05/Nov/14 ]

For security reason, to access a remote system, it is requried that you enable secure admin and launch the admon console with https.
There is no way to use http for remote access.

Comment by gtulasidhar [ 06/Nov/14 ]

ok thanks for update.In same network computers not working,but working in windows servers.Is there any chance to work all same network systems ?

Thanks,
Tulasidhar

Comment by Anissa Lam [ 06/Nov/14 ]

I am not sure what you mean here. Please clarify.





[GLASSFISH-21158] glassfish does not start with jdk9-ea Created: 07/Aug/14  Updated: 15/Oct/14

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.0_b89_RC5, 4.0
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: AntonIvanov Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 5 minutes
Time Spent: Not Specified
Original Estimate: 5 minutes


 Description   

problem is that osgi.properties has no jre-1.9 value, only jre-1.8=$

{jre-1.7}

such problem occurs every time with new jdk release, as it was with jre-1.8 before..

the simple workaround is to add jre-1.9=$

{jre-1.8}

to osgi.properties

but also I guess it make sense to obtain latest release number from properties if no jre-$

{current-jdk-release}

is found. if it really make sense please file a separate issue for it..



 Comments   
Comment by alan.bateman [ 15/Oct/14 ]

The other thing that is needed to start Glassfish 4.0 on JDK 9 is to drop the MaxPermSize setting from the command line settings in domain.xml.





[GLASSFISH-21262] Jbatch db2 database creaition script is incorrect Created: 01/Dec/14  Updated: 01/Dec/14

Status: Open
Project: glassfish
Component/s: configuration
Affects Version/s: 4.1
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: davidwinters1980 Assignee: Masoud Kalali
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The DB2 jbatch table creation script shipped with GF is not correct:

Here is the corrected script:

DROP TABLE JOBSTATUS;

DROP TABLE STEPSTATUS;

DROP TABLE CHECKPOINTDATA;

DROP TABLE JOBINSTANCEDATA;

DROP TABLE EXECUTIONINSTANCEDATA;

DROP TABLE STEPEXECUTIONINSTANCEDATA;

CREATE TABLE JOBINSTANCEDATA(
jobinstanceid BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) CONSTRAINT JOBINSTANCE_PK PRIMARY KEY,
name VARCHAR(512),
apptag VARCHAR(512)
);

CREATE TABLE EXECUTIONINSTANCEDATA(
jobexecid BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) CONSTRAINT JOBEXECUTION_PK PRIMARY KEY,
jobinstanceid BIGINT,
createtime TIMESTAMP,
starttime TIMESTAMP,
endtime TIMESTAMP,
updatetime TIMESTAMP,
parameters BLOB,
batchstatus VARCHAR(512),
exitstatus VARCHAR(512),
CONSTRAINT JOBINST_JOBEXEC_FK FOREIGN KEY (jobinstanceid) REFERENCES JOBINSTANCEDATA (jobinstanceid)
);

CREATE TABLE STEPEXECUTIONINSTANCEDATA(
stepexecid BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) CONSTRAINT STEPEXECUTION_PK PRIMARY KEY,
jobexecid BIGINT,
batchstatus VARCHAR(512),
exitstatus VARCHAR(512),
stepname VARCHAR(512),
readcount INTEGER,
writecount INTEGER,
commitcount INTEGER,
rollbackcount INTEGER,
readskipcount INTEGER,
processskipcount INTEGER,
filtercount INTEGER,
writeskipcount INTEGER,
startTime TIMESTAMP,
endTime TIMESTAMP,
persistentData BLOB,
CONSTRAINT JOBEXEC_STEPEXEC_FK FOREIGN KEY (jobexecid) REFERENCES EXECUTIONINSTANCEDATA (jobexecid)
);

CREATE TABLE JOBSTATUS (
id BIGINT CONSTRAINT JOBSTATUS_PK PRIMARY KEY NOT NULL,
obj BLOB,
CONSTRAINT JOBSTATUS_JOBINST_FK FOREIGN KEY (id) REFERENCES JOBINSTANCEDATA (jobinstanceid) ON DELETE CASCADE
);

CREATE TABLE STEPSTATUS(
id BIGINT CONSTRAINT STEPSTATUS_PK PRIMARY KEY NOT NULL,
obj BLOB,
CONSTRAINT STEPSTATUS_STEPEXEC_FK FOREIGN KEY (id) REFERENCES STEPEXECUTIONINSTANCEDATA (stepexecid) ON DELETE CASCADE
);

CREATE TABLE CHECKPOINTDATA(
id VARCHAR(512),
obj BLOB
);






Generated at Thu May 07 02:42:29 UTC 2015 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.