[jboss-jira] [JBoss JIRA] (JBVFS-207) Provide way to retrieve VirtualFile instance from VirtualFileURLConnection

Tomas Hofman (Jira) issues at jboss.org
Tue Nov 6 07:05:00 EST 2018


     [ https://issues.jboss.org/browse/JBVFS-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tomas Hofman updated JBVFS-207:
-------------------------------
    Description: 
It is not possible to obtain VirtualFile (and by extensions it's physicalFile) instance wrapped in VirtualFileURLConnection without using reflection.

Code snippet from Drools [1], where they try to get hold of {{VirtualFile#getPhysicalFile()}}:

{code}
    private static Object findVirtualFile( URL url ) throws IOException {
        URLConnection urlConnection = url.openConnection();
        try {
            if ( urlConnection.getClass().getName().equals( "org.jboss.vfs.protocol.VirtualFileURLConnection" ) ) {
                Field f = urlConnection.getClass().getDeclaredField( "file" );
                f.setAccessible( true );
                return f.get( urlConnection );
            }
        } catch (NoSuchFieldException | IllegalAccessException e) {
            // ignored
        }
        return urlConnection.getContent();
    }
{code}

[1] https://github.com/kiegroup/drools/commit/2a36f67a29ed06d0f980a60ff1c81fa897e8147a

  was:
It is not possible to obtain VirtualFile (and by extensions it's physicalFile) instance wrapped in VirtualFileURLConnection without using reflection.

Code snippet from Drools [1]:

{code}
    private static Object findVirtualFile( URL url ) throws IOException {
        URLConnection urlConnection = url.openConnection();
        try {
            if ( urlConnection.getClass().getName().equals( "org.jboss.vfs.protocol.VirtualFileURLConnection" ) ) {
                Field f = urlConnection.getClass().getDeclaredField( "file" );
                f.setAccessible( true );
                return f.get( urlConnection );
            }
        } catch (NoSuchFieldException | IllegalAccessException e) {
            // ignored
        }
        return urlConnection.getContent();
    }
{code}

[1] https://github.com/kiegroup/drools/commit/2a36f67a29ed06d0f980a60ff1c81fa897e8147a



> Provide way to retrieve VirtualFile instance from VirtualFileURLConnection
> --------------------------------------------------------------------------
>
>                 Key: JBVFS-207
>                 URL: https://issues.jboss.org/browse/JBVFS-207
>             Project: JBoss VFS
>          Issue Type: Enhancement
>            Reporter: Tomas Hofman
>            Assignee: Tomas Hofman
>            Priority: Major
>
> It is not possible to obtain VirtualFile (and by extensions it's physicalFile) instance wrapped in VirtualFileURLConnection without using reflection.
> Code snippet from Drools [1], where they try to get hold of {{VirtualFile#getPhysicalFile()}}:
> {code}
>     private static Object findVirtualFile( URL url ) throws IOException {
>         URLConnection urlConnection = url.openConnection();
>         try {
>             if ( urlConnection.getClass().getName().equals( "org.jboss.vfs.protocol.VirtualFileURLConnection" ) ) {
>                 Field f = urlConnection.getClass().getDeclaredField( "file" );
>                 f.setAccessible( true );
>                 return f.get( urlConnection );
>             }
>         } catch (NoSuchFieldException | IllegalAccessException e) {
>             // ignored
>         }
>         return urlConnection.getContent();
>     }
> {code}
> [1] https://github.com/kiegroup/drools/commit/2a36f67a29ed06d0f980a60ff1c81fa897e8147a



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jboss-jira mailing list