You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Deepal Jayasinghe (JIRA)" <ji...@apache.org> on 2006/05/02 08:46:48 UTC

[jira] Resolved: (AXIS2-600) Axis can't perform reflection on updated .class file with hotupdate

     [ http://issues.apache.org/jira/browse/AXIS2-600?page=all ]
     
Deepal Jayasinghe resolved AXIS2-600:
-------------------------------------

    Resolution: Fixed

User confirmed that he doe not have the bug in RC4
(his problem seems to have gone away in 1.0 RC4,)

> Axis can't perform reflection on updated .class file with hotupdate
> -------------------------------------------------------------------
>
>          Key: AXIS2-600
>          URL: http://issues.apache.org/jira/browse/AXIS2-600
>      Project: Apache Axis 2.0 (Axis2)
>         Type: Bug

>   Components: deployment
>     Versions: 0.95
>  Environment: Win XP, Tomcat 5.5.7.
>     Reporter: Kent Tong
>     Assignee: Deepal Jayasinghe

>
> 1) Enable hotupdate by editing axis2.xml.
> 2) Add some code to the service implementation code. For example, from:
> public class SimpleService {
> 	public OMElement echo(OMElement e) {
> 		return e;
> 	}
> }
> To:
> public class SimpleService {
> 	public OMElement echo(OMElement e) {
> 		OMAbstractFactory.getOMFactory();
> 		return e;
> 	}
> }
> 3) Update the .aar.
> 4) Tomcat will throw an exception when trying to redeploy the service (using reflection). The exception may be a EOFException, ZipException or an ArrayIndexOutOfBoundsException. Two sample stack traces are shown below for the first two exceptions. They're all similar. Suggesting the SchemaGenerator may be reading some outdated class data.
> - Undeploying Web service  test.aar
> - Error in schema generating Error looking for paramter names in bytecode: unexpected end of file
> java.io.EOFException: Error looking for paramter names in bytecode: unexpected end of file
>         at org.apache.axis2.wsdl.builder.bytecode.ClassReader.skipFully(ClassReader.java:173)
>         at org.apache.axis2.wsdl.builder.bytecode.ParamReader.readCode(ParamReader.java:100)
>         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 org.apache.axis2.wsdl.builder.bytecode.ClassReader.readAttributes(ClassReader.java:368)
>         at org.apache.axis2.wsdl.builder.bytecode.ParamReader.<init>(ParamReader.java:86)
>         at org.apache.axis2.wsdl.builder.bytecode.ParamReader.<init>(ParamReader.java:39)
>         at org.apache.axis2.wsdl.builder.bytecode.ChainedParamReader.<init>(ChainedParamReader.java:33)
>         at org.apache.axis2.wsdl.builder.bytecode.MethodTable.<init>(MethodTable.java:28)
>         at org.apache.axis2.wsdl.builder.SchemaGenerator.<init>(SchemaGenerator.java:90)
>         at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:165)
>         at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:78)
>         at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:86)
>         at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:128)
>         at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:428)
>         at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:195)
>         at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:195)
>         at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:145)
>         at org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:187)
>         at org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepositary(SchedulerTask.java:61)
>         at org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:68)
>         at org.apache.axis2.deployment.scheduler.Scheduler$SchedulerTimerTask.run(Scheduler.java:76)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)
> - Undeploying Web service  test.aar
> - Error in schema generating ZIP_Read: error reading zip file
> java.util.zip.ZipException: ZIP_Read: error reading zip file
>         at java.util.zip.ZipFile.read(Native Method)
>         at java.util.zip.ZipFile.access$1500(ZipFile.java:35)
>         at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:559)
>         at java.io.FilterInputStream.read(FilterInputStream.java:111)
>         at java.io.FilterInputStream.read(FilterInputStream.java:90)
>         at org.apache.axis2.wsdl.builder.bytecode.ClassReader.getBytes(ClassReader.java:74)
>         at org.apache.axis2.wsdl.builder.bytecode.ParamReader.<init>(ParamReader.java:39)
>         at org.apache.axis2.wsdl.builder.bytecode.ChainedParamReader.<init>(ChainedParamReader.java:33)
>         at org.apache.axis2.wsdl.builder.bytecode.MethodTable.<init>(MethodTable.java:28)
>         at org.apache.axis2.wsdl.builder.SchemaGenerator.<init>(SchemaGenerator.java:90)
>         at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:165)
>         at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:78)
>         at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:86)
>         at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:128)
>         at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:428)
>         at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:195)
>         at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:195)
>         at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:145)
>         at org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:187)
>         at org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepositary(SchedulerTask.java:61)
>         at org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:68)
>         at org.apache.axis2.deployment.scheduler.Scheduler$SchedulerTimerTask.run(Scheduler.java:76)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira