Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001440 [Resin] major always 11-05-06 20:03 11-30-06 12:19
Reporter spoty View Status public  
Assigned To ferg
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 3.1.0 Product Version 3.1.0
  Product Build
Summary 0001440: Persistent bean with 99 attributes creates "code too large" compiler error on __ResinExt class
Description Create a persistent bean over table with 99 columns using property accessors. The generated class is too large and creates a "code too large" compiler error.
Steps To Reproduce
Additional Information
Attached Files

- Relationships

- Notes
(0001577)
gzhu
11-07-06 18:57

the same is true for EJB2 CMP, see following errors when resin started up:

[18:49:44.825] Compiling _ejb/TransportationQuote/TransportationQuoteCMP__Amber.java
[18:49:44.825] Compiling _ejb/TransportationQuote/TransportationQuoteCMP__EJB.java
[18:49:44.825] Compiling _ejb/User/UserCMP__Amber.java
[18:49:44.825] Compiling _ejb/User/UserCMP__EJB.java
[18:49:48.058] com.caucho.config.ConfigException: com.caucho.java.JavaCompileException: /usr/resin-3.1.s061026/webapp/WEB-INF/work/ejb/_ejb/Equipment/EquipmentCMP__Amber.java:8835: code too large
[18:49:48.058] public void __caucho_afterCommit()
[18:49:48.058] ^
[18:49:48.058] Note: * uses or overrides a deprecated API.
[18:49:48.058] Note: Recompile with -Xlint:deprecation for details.
[18:49:48.058] Note: Some input files use unchecked or unsafe operations.
[18:49:48.058] Note: Recompile with -Xlint:unchecked for details.
[18:49:48.058] 1 error
[18:49:48.058] at com.caucho.ejb.cfg.EjbConfig.configure(EjbConfig.java:409)
[18:49:48.058] at com.caucho.ejb.EjbServerManager.build(EjbServerManager.java:552)
[18:49:48.058] at com.caucho.ejb.EjbServerManager.init(EjbServerManager.java:540)
[18:49:48.058] at com.caucho.ejb.EJBServer.manualInit(EJBServer.java:724)
[18:49:48.058] at com.caucho.ejb.EJBServer.init(EJBServer.java:653)
[18:49:48.058] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[18:49:48.058] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[18:49:48.058] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[18:49:48.058] at java.lang.reflect.Method.invoke(Method.java:585)
 
(0001602)
gzhu
11-27-06 00:39
edited on: 11-27-06 01:55

Causes:

1. Java compiler limits max size of 64k byte code per method, read footnote 4 at the bottom of http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html [^]
2. the size of __caucho_afterCommit() increases as the number of fields in an entity increases.


My Fix (in com.caucho.amber.gen.EntityComponent.java):

I re-arranged the generation of __caucho_afterCommit(), the modified file is http://backhoe.ironplanet.com/download/resin/fix1440/EntityComponent.java [^]

I downloaded 3.1.s061026 some time ago, so my work is based on that version.

 
(0001618)
ferg
11-30-06 12:19

jpa/0g0l
 

- Issue History
Date Modified Username Field Change
11-05-06 20:03 spoty New Issue
11-07-06 18:57 gzhu Note Added: 0001577
11-07-06 18:59 gzhu Issue Monitored: gzhu
11-09-06 17:00 spoty Issue Monitored: spoty
11-27-06 00:39 gzhu Note Added: 0001602
11-27-06 00:54 gzhu Note Edited: 0001602
11-27-06 00:55 gzhu Note Edited: 0001602
11-27-06 00:56 gzhu Note Edited: 0001602
11-27-06 00:58 gzhu Note Edited: 0001602
11-27-06 00:59 gzhu Note Edited: 0001602
11-27-06 01:55 gzhu Note Edited: 0001602
11-30-06 12:19 ferg Note Added: 0001618
11-30-06 12:19 ferg Assigned To  => ferg
11-30-06 12:19 ferg Status new => closed
11-30-06 12:19 ferg Resolution open => fixed
11-30-06 12:19 ferg Fixed in Version  => 3.1.0


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
42 total queries executed.
29 unique queries executed.
Powered by Mantis Bugtracker